Config files in etc need updating
The first step is to put the system configuration files into a revision control system (RCS).An RCS allows us to track the history of files by storing information about changes such as the date/time a change was made, what the change was, who made it, and a free-text field explaining why the change was made.With all of this setup done, it is finally time to make use of this configuration management infrastructure.
The RCS will want to act on a single directory tree, but in most cases our configuration files are spread out over the file system. (The portage “world” file, a record of everything installed on your system, for instance, is in /var/lib/portage.) What we do is create a directory called /server-rcs that will be managed by the RCS, and in that directory is copies or links to all of the configuration files on the system.We want to track things like the ‘phpmyadmin’ configuration file, for instance.We could use the mount ‘bind’ trick to put individual files into the /server-rcs space, but that seems overly complicated.Besides, that oral history tradition is difficult to maintain and harder to sustain as the number of machines grows.This essay describes a practice for maintaining a Gentoo Linux distribution using GLCU, Subversion, and Trac that is lightweight (doesn’t impose a large burden on the sysadmin staff), effective (although it is lightweight it better documents and makes accessible the state of our systems over the oral history tradition), and cheap (no operating budget dollars were harmed in the creation of this process — only staff time overhead).