Configuration Management
Overview
Configuration management:
- Drastically eases management of multiple machines
- Provides full audit trail of all changes
- Prevents lost organisational knowledge
Managing multiple systems is a daunting task; manging multiple systems with multiple system administrators even more so. Configuration management solves two major pain points for system administrators - system documentation and repeatable configuration.
As consultants, at Bashton we feel very acutely the pain of lost organisational knowledge. Rarely a week goes by where someone is not confronted with a system where the member of staff who set it up has left, and the documentation of its configuration is out of date or non-existent.
Configuration management solves this problem by providing a full change history of a all machines on the network. By defining ‘classes’ for all machines, we can build other machines to perform the same role simply by adding the new server to the same classes.
Puppet
Who, what, where, why
Puppet configurations are stored using the industry standard Git distributed revision control software, developed by Linus Torvalds, creator of Linux. This provides a full audit trail of every single change made to a system - who made the change, the exact specifics of what was changed, and a comment from the person making the change as to why the change was made.
Reproducible configuration
Puppet removes the typically error-prone process of labriously listing every step required to configure a server and/or application.
When using Puppet, one doesn’t configure a machine, but rather configures one or more roles that the machine will perform. This means that configuring another machine to perform the same role is straight forward.
If configurations need to be slightly different for each machine, Puppet provides a full templating engine to cater for this.
