Version Control for Important System Files? 71
TokyoCrusaders92 asks: "Like a lot of other organizations (800 staff, 5000 students) we have a mix of Windows, Novell & Linux (primarily Linux) for our IT infrastructure. We now have a multitude of config files, firewall rule bases, shell scripts, and so forth which are managed by multiple people and groups. Recently, we started using RCS for version control of the firewall rule-base, but this doesn't seem like it would scale up to larger groups of users. While thinking about this, it would seem that the critical features would include: version control; logging; multiple users; secure authentication; and integrity checking. What are other people using to manage their config files?"
Distributed SCM (Score:3, Informative)
I keep my config files in a directory structure in my home directory on my laptop which mirrors the structure of the systems I maintain. I use the mercurial [selenic.com] DSCM for version control and push revisions to a user account on each server. From there I run a script as root which recursively copies the files into the target directory tree.
A CVS server (Score:5, Informative)
Subversion (Score:3, Informative)
puppet... maybe (not yet at least) (Score:3, Informative)
Using something like subversion or any other version control system for such a task just leads to Yet Another Homebrew Administration System, that will probably lead your successors to tears and insanity. Use tools already there, and that are pertinent to the job.
Problem for your situation is that it has no Windows or Novell support as of yet, but recently work on Windows at least seems to have started. And if your first priority is mainly config file management: that part should be fairly trivial.
Re:Notepad (Score:4, Informative)
Those who don't know VMS... (Score:4, Informative)
See Files-11 [wikipedia.org] for a flashback.
Re:Subversion (Score:4, Informative)
SVK is better, but it is not as widely supported as SVN.
rsnapshot (Score:4, Informative)
I use rsnapshot [rsnapshot.org] to do version control of my entire system. From the description:
rsnapshot is a filesystem snapshot utility for making backups of local and remote systems.
Using rsync and hard links, it is possible to keep multiple, full backups instantly available. The disk space required is just a little more than the space of one full backup, plus incrementals.
Personally, I configure rsnapshot to generate snapshots every 4 hours, and then daily, weekly, and monthly.
In your case, since you only want versioning for your configuration files, you can point rsnapshot at just the configuration directories (probably just /etc).
Re:Our system is great (Score:3, Informative)
How in the world did this get modded interesting?
It should be clear to anyone that you were being sarcastic :p
Darcs (Score:2, Informative)
Only drawback is that it is quite slow with really big repositories (e.g. linux kernel).
Use SVN instead (Score:3, Informative)
Re:Subversion (Score:2, Informative)
svn trick (Score:5, Informative)
PATH train [nynj.net] schedule online
cfengine (Score:4, Informative)
http://www.cfengine.org/ [cfengine.org]