Using source control to manage system configs
Rob
freebsd at deathbeforedecaf.net
Tue Feb 27 13:44:59 UTC 2007
On 27/02/2007, at 5:16 AM, David Robillard wrote:
> If you simply want to track changes and be able to roll back your
> configuration files, then go with a more simple approach like using
> RCS locally. RCS is part of the base FreeBSD system.
David & Chuck,
I'm already using RCS, and I've built a somewhat clunky mechanism
around it.
One machine holds the master copies of
- site-wide files (/etc/ntp.conf, /etc/resolv.conf, /etc/syslog.conf)
- host-specific files (/etc/hosts, /etc/passwd, /etc/rc.conf) for
each server
At install time, both sets of files are tarred up and copied to the
new server. If there's a conflict, the host-specific files win.
Problem:
It's a good system for installs, but then I update the files on the
working server. I always mean to merge the changes back to the master
copy, but it never quite happens.
Solution:
CVS with a remote repository looks good - updates on the server, and
a central record of all changes. Reinstalling a server should be as
easy as 'cvs co $HOST'.
Problem:
I don't want 6 identical copies of /etc/ntp.conf under version
control, so the site-wide files and host-specific files should be in
separate modules. But they have the same working directory, and this
is where I run into problems with CVS - it's impossible to check them
both out to the same server.
Is there some way to do this with Subversion? Or can a file be shared
by different modules? Or am I going about this all wrong?
> Now if you want to keep your changes on another machine, then it's
> just a simple question of running a backup of your machines. (you do
> backup right? ;)
Absolutely - I dump /home from each server to an old iPod (it's a
small network).
But backups are for preserving entire filesystems. I want my system
configs to be version controlled, as well as saved.
> Have fun,
Of course - that's why I do this :-)
Rob.
More information about the freebsd-questions
mailing list