LinuxXXXIV · Configuration ManagementWhy CM
Why manual does not scale - the case for configuration management
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
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 installon 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
| Tool | Style | Language |
|---|---|---|
| Ansible | Push, agentless | YAML |
| Puppet | Pull, agent | Puppet DSL |
| Chef | Pull, agent | Ruby |
| Salt | Push or pull | YAML / Python |
| cloud-init | First-boot | YAML |
| Terraform | Infrastructure | HCL |
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:
- Document the current state of one host.
- Capture it in CM (Ansible playbook).
- Test on a non-production host.
- Apply to one production host.
- Verify.
- Roll out to the fleet.
The first CM-managed host takes days. The hundredth takes minutes.
Knowledge check
Knowledge check · 3 questions
Q1. What is the main problem with manual configuration at scale?
Q2. Configuration management is a replacement for monitoring.
Q3. Which of the following are valid configuration management tools? Select all that apply.
Passing score: 75%. Answers are checked in this browser.