[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RCSs and CFEngine

From: Matthew Palmer
Subject: Re: RCSs and CFEngine
Date: Wed, 18 Jan 2006 08:03:22 +1100
User-agent: Mutt/1.5.9i

On Tue, Jan 17, 2006 at 11:54:03AM -0500, Jason Martin wrote:
> Has anyone had any good / bad experiences when using a revision
> control system (cvs, arch, subversion, etc) to store CFEngine
> configuration? I know CVS is rather picky about adding /
> deleting directories, and was wondering what experiences others
> have had with various systems.

Mmm, combining two of my favourite toys -- revision control and automated
systems administration.  <grin>

We use the baz branch of GNU Arch to revision control our cfengine configs. 
I love distributed revision control in general, but what makes svn and CVS
completely useless for our purposes in this case is that we've got multiple
disconnected repositories for different clients and systems, and a common
"trunk" which stores classes, config files, and scripts which are common to
all of our clients.

So, we're currently working on a lighttpd class, which will manage
more-or-less everything related to our deployment of lighty/FCGI systems for
running Rails apps.  Within an hour of having completed that, I'll have
pulled those changes (maybe a dozen changesets) into our global trunk, and
it'll be available for other client sites to merge into their repositories. 

At the same time, I *don't* pull changes from client to trunk which are
either (a) local config (machine-specific config, stuff that's not
appropriate for global distribution), or (b) not ready for prime-time yet.

GNU Arch's superior changeset tracking makes this stuff pretty
straightforward -- I can, at any time, ask trunk what it's missing from any
particular client, and I can ask a client what it's missing from the trunk,
and merge the various changes back and forth, or record that I don't want a
particular changeset moved.

If you're only managing one infrastructure, and will only ever be managing
one, subversion is probably a passable choice for managing your cfengine
config.  I certainly wouldn't recommend CVS in any circumstance other than
for compatibility with legacy systems, and that doesn't appear to be the
case for you.

I would *certainly* recommend using a revision control system for *any* size
cfengine deployment -- there's just too much useful info that an RCS stores,
along with the opportunity to keep track of when, why, and by whom a change
was made.  There's also no fundamental incompatibility between what an RCS
can do and what cfengine needs.

Of course, we're available on a commercial basis to help you set any or all
of this sort of thing up if you need it.  <grin>

- Matt

reply via email to

[Prev in Thread] Current Thread [Next in Thread]