We are using config-package-dev to manage the configuration of shared services.
1. Rationale
Using config-package-dev has several advantages for HCoop:
They can be used to automate installation
- Our changes to config are kept in an executable format
- Basic Debian packaging is straightforward to pick up
- Distribution of configuration occurs through the same channel as our general software updates
- Everyone is forced to formalize their changes rather than leaving a trail of undocumented changes
A system like Puppet might make sense in the future.
2. Current Config Packages
We are managing our configuration packages in git, at /afs/hcoop.net/user/h/hc/hcoop/.hcoop-git/debian, or you can view the list of configuration packages using gitweb.
3. Creating a Config Package
See DebianPackaging#Creating_a_Configuration_Package for the low-level details of creating a config package and our general packaging workflow with git-buildpackage.
The Debathena documentation describes the new primitives. Primarily, config packages will consist of files installed with dh_install, a few diversions, and some transformations. Use what makes sense: dh_installcron et al are your friends. The hcoop-apache2-config package is a good example.
4. Services Changed But Unpackaged
- php5 config (changed a few variables, disabled some suhosin stuff at least).