CSCF Linux Configuration Management
Purpose
The purpose of this project is to deploy a functioning BCfg2 server and associated infrastructure elements in order to automate the management of configuration files in our Linux environment.
Sponsors
Team members
- Phil Beldowski
- Anthony Brennan
- Fraser Gunn (lead)
- Adrian Pepper
Definition of "configuration management"
Various definitions of "configuration management" so we use the following:
- configuration management is a process whereby a repository of standardized configuration elements (such as text files) is maintained and available to be distributed and installed on specified computer systems (or groups of systems). If a configuration element is associated with a particular software package, and that package is not present on the target system, the configuration manager will install packages as required (we will exploit the existing interaction capabilities between BCfg2 and the Linux "apt" package-management suite).
Note that this definition does not include:
- generation of the configuration elements (deciding what the contents of the configuration files are)
- creating the underlying software system packages
In the former case, decisions about appropriate configurations are made by system/application experts. In the latter case, the packages are created independently of the configuration management by experts in the particular software to be packaged.
Plan
Target completion date: April 15 or thereabouts
Limited scope
The initial delivery scope for this project requires that the system be able to store, manage and deploy a limited set of files, namely:
- /etc/ssh/known_hosts
- /etc/ntp.conf
- /etc/resolv.conf
to the set of Linux systems that are planned to be deployed by May 1, 2012
Successful completion of this scope will be an appropriate proof-of-concept, after which added configuration elements can be added, as required.
Major components
The project team contemplates the following major components of the configuration-management system:
- Bcfg2 server
- Bcfg2 clients pre-installed on target systems
- GIT server to act as the configuration element repository
A side-effect of using GIT is that it can serve as a change-management process for the configuration elements. Once again, specification and management of the contents of the elements is outside the scope of this project.
Independent components related to this project
In order to produce meaningful results in support of CSCF's larger goals, we are introducing into the scope of this project activities that are not truly necessary for a successful configuration management project.
We will use as-yet-to-be-created target systems (upgraded Ubuntu servers running version 12.04). This is not essential to the central work of the project, but will serve the larger goals. If this component becomes an impediment, the configuration-management work will use an existing target for testing and initial deployment.
CSCF master ST item:
Milestones / to do list
The following tasks are identified:
- Dave: standard student image for Ubuntu 12.04 including the bcfg2 client
- Fraser: bcgf2 server
- Anthony: GIT server (done); Anthony to confirm backup status
- Anthony and Fraser: create a software process to extract configuration elements from GIT, store them somewhere such that the bcfg2 server can use them as master elements for distribution
- Phil and Dave: acquire, image and deploy hardware for target systems
- Dave: allocate DNS for the ubuntu 12.04 standard image and for the bcfg2
- Trevor: create inventory and eDocs entries for ubuntu 12.04 and bcfg2
- Ryan: target existing know-hosts generator to GIT master configuration element repository
2012-2-24 Action items
- by 2012-3-2:
- standard 12.04 image (Dave)
- DNS entries (Dave)
- following that
- edocs and inventory (Trevor)
- in parallel
- GIT extraction process (Anthony)
- bcfg2 server (Fraser).