Configuration management is the process of handling changes to a system in a way that assures integrity over time, typically involving tools and processes that facilitate automation and observability. Even though this concept didn’t originate in the IT industry, the term is broadly used to refer to server configuration management.
In the context of servers, configuration management is also commonly referred to as IT Automation or Server Orchestration. These terms highlight the practical aspects of configuration management and the ability to control multiple systems from a central server.
There are a number of configuration management tools to choose from, with varying levels of complexity and diverse architectural styles. Popular options include Ansible, Chef, Puppet, and Salt. Although each of these tools have their own characteristics and requirements, their function is essentially to assert and enforce that a system state matches the state described by a set of provisioning scripts.
The following resources provide a good starting point if you want to learn more about configuration management:
- Getting Started with Configuration Management
- Infrastructure as Code Explained
- All posts under the Configuration Management tag