[NZLUG] Managing multiple-machine application configs with DVCS
daniel at meta.net.nz
Thu Jun 6 19:24:47 NZST 2013
> > For the OP: I think your best answer is a configuration management tool like puppet, chef, cfengine, etc.
> Config management is fine; high setup costs but good payback. However I'm not yet aware of good ways to allow changes made directly on a host to be integrated post hoc with the config management system. Perhaps I haven't looked hard enough ... Basically, post hoc workflow control is very appropriate in this environment.
I'm not sure that any tool will be better for allow local changes in a nice way. If your configs are all in git, you'll still need to remember to commit any local changes - which is more or less the same as committing them to your puppet repo and pushing the change out via puppet instead, for example. If you think you need config file management, you really need to enforce some discipline on your admins - one of the key points of config file management is that you don't want ad hoc changes to managed configuration files.
> Anyway, I've got to the stage of not being able to find any clean way to manage the inevitable merge conflicts without having some processing. In order to have a quick hack, I'm going to do nasty things with symlinks ...
> So, given the contended file 'httpd.conf' over 5 machines, I'll have httpd.conf.server and an untracked symlink pointing to the relevant one on each server. All 5 config files will be present on all machines
If it's just httpd.conf you're worried about, you could look at using machine-specific include files for those lines (e.g., each machine has an httpd.conf-servername file, which contains "ServerName whatever", and you do "include /path/to/httpd.conf-servername" wherever you'd put the ServerName directive. You can then populate each of those per-machine files however you like. This won't extend generally, but it might be a reasonable solution, although pretty ugly. It gets you some level of standardised configuration file, while still allowing local configs, without having to implement a complete template engine. If you're tracking more than about 5 or so changes per machine it'll probably get far too unwieldy to use though.. :)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NZLUG