Using source control to manage system configs
freebsd at deathbeforedecaf.net
Sun Feb 25 22:03:12 UTC 2007
I'd like some advice on managing config files on multiple servers
with a source control system. The idea is to update files locally,
and commit them back to a central repository.
I know that CVS is the usual choice, but there are a couple of things
that I can't get CVS to do.
Some files (/etc/ntp.conf, /etc/resolv.conf) are identical across a
site. Instead of duplicating these in the repository, I'd like to
create a module like
that gets installed on every server.
Then each server has a module like
that adds to or overwrites these files. If a file is updated locally,
it is committed back to the correct module.
CVS (quite reasonably) won't checkout 2 modules to the same working
Filemodes & symlinks
CVS only works with regular files, and doesn't preserve permissions.
I can work around this with mtree(8) and module programs, but it
would be nice to have it built-in.
So... has anyone come up with a neat way to do these things in CVS,
or an SCM system that does it better?
More information about the freebsd-questions