Configuration management (rant #1)

I’ve been on a lookout for a good configuration management solution (technique, tool, ANYTHING!) for quite a while. However most of them have been geared towards managing fleets of identical machines, while in my case each machine is fairly unique. Here are the tools I’ve seen so far:

I’ve tried to integrate some config management into CPacMan for a while now with variable success. I think mainly because I was trying to peg old practices into a new paradigm…

I came across the great post and that got me thinking… One should be able to manage configs by simply using… Git 🙂 Setup is fairly simple:

  • each host has it’s own Git repository of /etc (and all the other locations??)
  • centralized version of configs should be branched from each host
  • based on above operating git with pull/push and adding some clever hooks it should be possible to maintain config files asynchronously in 2 places periodically re-syncing centralized versions…

Maybe it should be SVN though, as cetralized version can’t be anything else but branches of remote ones… hmm…

 

2 thoughts on “Configuration management (rant #1)”

  1. Using Git to manage system configuration has its merits, I recommend against using branches to manage different config versions for each host. In theory, Git seems like the right tool for this. You can manage common configuration definitions in a ‘master’ branch and merge modifications into the host-specific branches as needed. When conflicts occur, they are solved once and Git always tries to do the right thing in future merges.

    The problem, however, with using branches for this is that as the Git history gets longer,
    it becomes harder to identify the differences between the branches when conflicts occur. In a complex system, someone new to the project will be completely overwhelmed.

    Trust me, we did this in a project and while it went fine for a few years, it became too clumbsy and magical. Testing and deploying is a big hassle, especially when conflicts arise.

    1. Agreed. I was thinking of host/etc/service/configfile kind of hierarchy and branching would happen only when I experiment with config for that specific host

Leave a Reply

Your email address will not be published. Required fields are marked *