Using source control to manage system configs

David Robillard david.robillard at gmail.com
Wed Feb 28 17:56:18 UTC 2007


On 2/27/07, Rob <freebsd at deathbeforedecaf.net> wrote:
> 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?

Hi Rob,

Well, I'm not quite sure that it will answer all of your questions,
but take a look at Luke Kanies's article called ''Using version
control in system administration''.

It's available from the USENIX website at
http://www.usenix.org/publications/login/2005-12/pdfs/kanies.pdf

HTH,

David
-- 
David Robillard
UNIX systems administrator & Oracle DBA
CISSP, RHCE & Sun Certified Security Administrator
Montreal: +1 514 966 0122


More information about the freebsd-questions mailing list