Skip to main content
RunBook Academy

← All checklists in Linux

Before deploymentchange-management

Checklist: Change management readiness

16 items ·13 critical ·3 warn ·0 info

Use this checklist before any change to production. Critical items must be confirmed before proceeding.

How to run it

Most items above carry a command. Run it and keep the output — that is the difference between a checklist and a declaration of intent. “Pre-checks completed” is an assertion; systemctl list-units --state=failed returning 0 is evidence, and it is evidence with a timestamp you can put in the change record.

Three of the commands need values from your environment before they will run:

# Substitute your own values
CHANGE_REPO=/srv/git/infra
CHANGE_PLAN=changes/2026-08-11-postgres-minor.md
RUNBOOK_REPO=/srv/git/runbooks
CHANGE_PR=1421
BMC=node01-bmc.example.com
BMC_USER=changecontrol
PKG=postgresql-16

The three that get skipped

Every item here exists because a change went wrong without it, but three are skipped far more often than the rest.

Drift. git -C /etc status --short returning nothing is the check. A host with hand-edited config is not the host your change was reviewed against, and your rollback restores the committed state — silently discarding whatever an engineer fixed by hand at 3am last quarter and never committed.

Somewhere to roll back to. “Rollback tested” is worth nothing if the previous package version has aged out of the repository, or the previous container image was pruned. Confirm the artefact still exists before you need it.

Out-of-band access, tested today. Any change that can touch networking, sshd, the firewall or the kernel can remove your own access to the host. The console you have not used in a year is the one whose credentials expired. Confirm it answers before the change, not after.

Sign-off

  • Operator: _________________ Date: ___________
  • Reviewer: ________________ Date: ___________

Critical13 items

  1. git -C "$CHANGE_REPO" log -1 --format=%H%n%cd -- "$CHANGE_PLAN"
  2. gh pr view "$CHANGE_PR" --json reviewDecision,reviews
  3. git -C /etc status --short; git -C /etc log -1 --format=%cd
  4. systemctl is-system-running; systemctl list-units --state=failed --no-legend | wc -l
  5. df -h /; df -i /; free -h
  6. apt-cache policy "$PKG" 2>/dev/null || dnf --showduplicates list "$PKG"
  7. curl -sf http://prometheus.example.com:9090/-/healthy && amtool alert query --active
  8. ipmitool -I lanplus -H "$BMC" -U "$BMC_USER" -f /etc/ipmi/bmc.pw chassis power status

Warning3 items

  1. systemctl list-timers --all --no-pager
  2. git -C "$RUNBOOK_REPO" log -1 --format=%cd -- runbooks/