Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Feb 2007 00:14:53 +1030
From:      Rob <freebsd@deathbeforedecaf.net>
To:        David Robillard <david.robillard@gmail.com>, Chuck Swiger <cswiger@mac.com>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: Using source control to manage system configs
Message-ID:  <934FF44E-39F5-410B-B235-5F5709B4340A@deathbeforedecaf.net>
In-Reply-To: <226ae0c60702261046m671647bbwc9aef6b1f6475522@mail.gmail.com>
References:  <226ae0c60702261046m671647bbwc9aef6b1f6475522@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?934FF44E-39F5-410B-B235-5F5709B4340A>