Glossary · Cloud & Hosting

Configuration Management

Configuration management is the practice of defining and enforcing the intended state of servers and software so systems stay consistent and reproducible.

Updated October 6, 2026

Configuration management is the practice of describing how servers and applications should be set up, and using automation to apply and keep that state. Packages, files, users, services and settings are defined in code, and a tool checks and corrects each machine against the definition.

Why it matters

Hand-configured servers drift apart over time, and nobody remembers why one behaves differently. Configuration management makes changes repeatable and reviewable, speeds up rebuilding a failed server, and reduces the "works on one machine" class of outage. Well-known tools include Ansible, Puppet, Chef and Salt. Some run an agent that regularly re-applies the desired state, while others push changes when you run them.

Example

A definition that says "nginx is installed and a specific config file is in place" can be applied to ten servers in one run. If someone edits the file by hand on one server, the next run either restores the declared version or flags the difference, depending on the tool and mode.

desired: package nginx present, /etc/nginx/nginx.conf = template v12
actual:  package nginx present, nginx.conf modified manually
result:  drift detected -> file restored

Common mistakes

  • Making manual fixes on production and never recording them in the code.
  • Mixing configuration management with images or scripts without a clear owner of each setting.
  • Skipping a staging run before applying a change to every server.

Get notified when this term updates

Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.

This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.