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 _______________________________________________ Help-cfengine mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-cfengine
