[arch-projects] Configuration Management

Paul Mattal paul at mattal.com
Sat Aug 28 23:13:33 EDT 2004

It would be nice to have a system within Arch to manage configuration 
files. I'd really like to be able to express my Arch Linux systems 
setups as a set of installed packages and a number of configuration sets 
and then not have to back up all the system files. This allows a 
sysadmin to create another Arch box just like the one he's already got 
in minutes.

This system would allow one to easily package up configurations and 
deploy them to multiple machines. For instance, I set up each desktop 
user box in my office for printing in the same way, and I set up nfs to 
mount the same filesystems, and even enscript to use letter rather than 
A4 paper. It would be nice to be able to point each box at a "config 
repo" with configurations associated with packages, and then have pacman 
automatically pick up those configurations when I install the 
corresponding packages.

I'd like to hear people's input on how to make this work best in Arch 
and whether or not they'd think it useful. I can describe
something I've worked on for the arch-toaster by way of example of the
kind of thing I'm talking about, which led me to desire a more 
general-purpose tool.

For the toaster, I have an "arch-toaster" package which contains a lot
of dependencies on packages the toaster needs, plus default
configuration files and a fairly reusable perl script which had 2 main 

1) to deploy the "default" configuration files to "current" locations 
(if there's no "current" version already) where they can be further 
customized, if desired

2) to deploy the "current" configuration files to their real "field" 
locations on the filesystem after editing, or after updating the system 
(since configuration files must in some cases replace package files), 
making backups as it does so to avoid ever destroying any intended 
changes made directly in the field

Additionally, I added a third function to the script, useful in 
development: to roll the configuration files from the field back into 
"current" and store them in a tar.gz which I could then roll back into 
my package build as I refined the arch-toaster package. This was my 
means of collecting my changes as I went along. Then all I had to 
continue to maintain was the list of files that would be under control 
of my configuration management system, and it handled the rest.

Anyhow, I'm mostly curious if people think this is a good idea, or if 
they think there is a better way, or both. This would be a sizeable 
project, but not that awfully complex, I don't think.

- P

More information about the arch-projects mailing list