Skip to main content
RunBook Academy

LinuxXXXIV · Configuration ManagementWhy CM

Why manual does not scale - the case for configuration management

Foundation⏱ ~10 minbash

What you'll learn

  • Describe the problems manual configuration causes at scale
  • Recognise snowflake servers and configuration drift
  • Identify the discipline that fixes it
  • Compare configuration management options

Prerequisites

Verified against Ubuntu 24.04 LTS · Debian 12 (Bookworm) · RHEL 9.x · Rocky Linux 9.x · AlmaLinux 9.x · Linux kernel 6.1 LTS / 6.6 LTS · systemd 255+ · OpenSSH 8.7p1 (RHEL 9) / 9.6p1 (Ubuntu 24.04) · nftables 1.0.x · chrony 4.x · Pacemaker 2.1.x · Corosync 3.1.x · 2026-08-09

Not yet marked complete on this device.

A single host configured manually is manageable. Ten hosts configured manually is annoying. A hundred is impossible. At scale, manual configuration is the source of every snowflake server, every drift, and every “works on my host” bug.

The problems with manual configuration

  • Drift: two hosts that started identical end up different because someone ran apt install on one.
  • Snowflakes: each host is unique; you cannot reason about the fleet.
  • Reproducibility: a new host takes hours to set up manually.
  • Auditability: no record of what was changed.
  • Error-prone: typos, missed steps, partial configuration.
  • Recovery: a disaster recovery requires rebuilding manually.

The discipline: configuration management

Configuration management (CM) is the discipline of:

  • Desired state: declare what a host should look like.
  • Idempotency: applying the same configuration multiple times yields the same result.
  • Version control: configuration is in git, with history and review.
  • Drift detection: regularly check that reality matches the declared state.
  • Automation: changes go through automation, not manual edits.

CM tools

ToolStyleLanguage
AnsiblePush, agentlessYAML
PuppetPull, agentPuppet DSL
ChefPull, agentRuby
SaltPush or pullYAML / Python
cloud-initFirst-bootYAML
TerraformInfrastructureHCL

For most Linux sysadmin work, Ansible is the right choice: agentless (just SSH), YAML (declarative), and large ecosystem.

What CM does

  • Provisioning: install packages, create users, configure services.
  • Configuration: write config files with the right contents.
  • Idempotency: applying twice does not break anything.
  • Orchestration: roll out changes across the fleet.
  • Drift detection: detect when reality differs from declared.

What CM does not do

CM is not:

  • A replacement for monitoring (CM configures; monitoring observes).
  • A replacement for backup (CM restores state; backup protects state).
  • A replacement for change management (CM automates; change management approves).

CM is the substrate. It enforces what was approved.

The migration path

Most teams do not start with CM. They start with a script, then a bigger script, then a framework. The migration:

  1. Document the current state of one host.
  2. Capture it in CM (Ansible playbook).
  3. Test on a non-production host.
  4. Apply to one production host.
  5. Verify.
  6. Roll out to the fleet.

The first CM-managed host takes days. The hundredth takes minutes.

Knowledge check

Knowledge check · 3 questions

  1. Q1. What is the main problem with manual configuration at scale?

  2. Q2. Configuration management is a replacement for monitoring.

  3. Q3. Which of the following are valid configuration management tools? Select all that apply.

Passing score: 75%. Answers are checked in this browser.