System administrators are responsible for the maintenance and operation of a computer system and network. This is a major task with a huge number of decisions to be made regarding the configuration of the system.
Configuration Management is a term that may not be familiar to many Linux users. But for system administrators the concept will be well known. In a nutshell, Configuration Management software enables administrators to automatically manage the entire configuration of one or multiple computers. An IT team’s main responsibility is to maintain, secure, and operate an organization’s systems and networks. This, in itself, carries a huge responsibility. IT teams that maintain technology infrastructure, deploy applications, and provisioning environments with many manual tasks are inefficient. In modern environments, services are rarely deployed in isolation. Simple applications may need several services to run – such as a web server and a database. Deploying more complex systems, many services may need installing, configuring, and linked together.
Why is this type of software important? By having tools that automate the configuration and software infrastructure, an organization’s server administration costs are reduced. Furthermore, this type of software enables a large complicated infrastructure to be supported with fewer system administrators. There are also efficiency improvements made by helping to reduce the amount of repetitive tasks performed by the administrator. Moreover, configuration management software help organizations to be able to scale up their computer infrastructure more easily and to instill flexibility in server configuration.
Configuration Management tools work by changing the state of the system. The goal is to get a system from whatever state it is in, into the desired state. The state of a system is mostly described by all the configuration files in the file system, and by the programs and processes that are running. Configuration management software are the tools of choice for many system administrators and DevOps professionals.
The software featured in this article are declarative configuration management system. Here the system administrator decides what state the system is to be in, and a runtime pushes the system into that state.
Here’s our verdict captured in a legendary LinuxLinks-style ratings chart..
Click the links in the table below to learn more about each configuration management tool.
Configuration Management | |
---|---|
Ansible | Software provisioning, configuration management, and application deployment |
Salt | Python-based configuration management software and remote execution engine |
Chef | Automate IT Infrastructure for Hardened, Consistent Configuration |
Puppet | Centralized configuration management for networks |
CFEngine | IT infrastructure automation and Continuous Operations framework |
Juju | Simple, secure devops tooling |
pyinfra | Automates infrastructure super fast at massive scale. |
Rudder | Continuous configuration for effective compliance |
Quattor | Complex set of tools for automated machine management |
cdist | Configuration management tool that uses the Bourne Shell for scripting |
ZooKeeper | Centralized service for maintaining configuration information |
Rex | Friendly automation framework |
Bcfg2 | Produce a consistent, reproducible, and verifiable description |
This article has been revamped in line with our recent announcement.
Read our complete collection of recommended free and open source software. Our curated compilation covers all categories of software. The software collection forms part of our series of informative articles for Linux enthusiasts. There are hundreds of in-depth reviews, open source alternatives to proprietary software from large corporations like Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. There are also fun things to try, hardware, free programming books and tutorials, and much more. |