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 purposes:
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.