Tech, ExplainedCloud platforms and developer tools
Product

Configuration management

A thousand servers, set up exactly alike.

BEFORE ITAFTER ITConfiguration managementProgressCOVERSSettings as codeDrift repairThousandsof serversCI/CD pipelineruns itat releaseappliesthe settingsServers↗ DATA CENTRESconfiguresthe systemEnterpriseLinux subscription↗ INFRASTRUCTURE SOFTWAREBEFORE ITAFTER ITConfiguration managementProgressCOVERSSettingsas codeDrift repairThousandsof serversCI/CD pipelineruns itat releaseappliesthe settingsServers↗ DATA CENTRESconfiguresthe systemEnterprise Linuxsubscription↗ INFRASTRUCTURESOFTWAREBEFORE ITCI/CD pipeline↓ runs it at releaseConfiguration managementProgressSettings as codeDrift repairThousands of serversAFTER IT↓ applies the settingsServers↗ DATA CENTRES↓ configures the systemEnterprise Linux subscription↗ INFRASTRUCTURE SOFTWARE
Configuration management reads the reviewed settings file, applies it to 1,200 Linux servers, and changes back any setting that has drifted.
opens a page inside this one a page in the same scene a page in another scene a concept page a label only, with no page

Configuration management is software that describes in code how each server should be set up, and then sets up every server to match, automatically and the same way each time. A server is a computer in a data centre that runs software for many users at once. The description says which software is installed, which settings are switched on and which user accounts exist. Chef, Puppet and Ansible are well-known tools of this kind.

Why is it needed? Setting up a server by hand takes hours, and two people never do it exactly alike. One forgets a security setting; another installs a newer version of a program. Over months, servers that were meant to be identical slowly become different. This is called configuration drift. Drift causes failures that happen on one server but not on its neighbour, and such failures are hard to trace.

With configuration management, the team writes the settings once, in a file kept in a code repository. A change to a setting is then reviewed like any other code change. The tool reads the file and applies it to each server. It then checks each server again at regular intervals. If someone has changed a setting by hand, the tool notices and changes it back.

Take, for example, a telecom operator with 1,200 servers in data centres in Noida and Chennai. The servers run enterprise Linux, a version of the Linux operating system sold with tested updates and support. The security team makes two decisions. No server may accept logins with a password, only with a key file. And every server's clock must match an official time source, because each server writes a log, a line of text for each event, and India's CERT-In rules ask companies to keep accurate times in their logs. An engineer changes a few lines in the configuration file, and a colleague approves the change. Within 30 minutes, the tool has applied it to the servers. Its report shows 1,194 servers changed and 6 not reached, because they were switched off for repair. When those 6 are switched on again, the tool applies the change to them too.

Configuration management is often run from the CI/CD pipeline, so that new servers are set up as part of a release. It is close to infrastructure as code, which creates the servers, networks and storage in a cloud. Configuration management then sets up what runs inside each server. Network teams have a similar need for their routers and switches. Before they make a change, network change verification tries it on a copy of the network.

Tech, Explained is a part of ingrid.fyi. Every page explains one piece of technology in plain words.