Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a bunch of *nix servers in production. I would like to put it's important configuration files in version control

The basic idea I had was to

  • Put a distributted version control system so that each system's configurations are saved on its own drive.

  • The way configurations are changed are either through an editor or through an external source.

  • Assuming that $EDITOR is used in shell, it would be possible to add an extra command upon saving the file (so the file is then added to git). This could be problematic as it is not always that a user would do vim /etc/my.cnf , it could be opening my.cnf from within vim

  • The other source of change can be captured via a cron script, which runs say every one hour and adds stuff to version control (this is good enough). Then the git repo can be pulled into a central place for safekeeping. 1 hour is good enough as it is assumed that first way of capturing changes will work most of the time.

I would like to know that if there is some tool which already does this (or does it better). It would be ideal that on each configuration change initiated by a user, s/he is propted to add the change into the local repo.

share|improve this question

I did something similar to this. However we would manage configuration files in Puppet which would then be stored in SVN. I have two other linux admins on a server farm of 160 servers and this worked well. It provided change history (SVN) as well as configuration management via Puppet.

share|improve this answer
yeah, i looked into the tools, but was hoping for some thing even simpler with lesser dependencies to install (i dont have ruby in production). – geoaxis Oct 10 '11 at 13:33
If Python is in production, then consider Bcfg2. I have no experience with it, though. – Mike Renfro Oct 10 '11 at 13:41
Yes, the Ruby part was a negative for me. However it worked great. – Sean Milheim Oct 10 '11 at 14:37

Take a look at etckeeper - it's pretty close to what you're looking for.

share|improve this answer

look into tools such as puppet or cfengine. Its usually a better outcome, imho.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.