What remedies exist to permit the usage of alteration control for web server arrangement documents?
In a setting with numerous system managers, I see a couple of benefits to including the web server config submits right into an alteration control system. The majority of remarkable are the capacity to track adjustments, that made them, and also certainly having the ability to curtail to recognized functioning configs.
I'm mostly curious about Unix/Linux remedies, yet would certainly wonder to Windows executions too.
I have actually been checking into Chef recently. Not just does it maintain templatable (. erb) configs in version control, yet permits you to execute activities (like restarting a service after you posted the configs to the node). Cook aids with plan monitoring so you can verify dependencies with any kind of node you user interface with (i.e. needs to have actually sudo plan mounted). Cook appears to be conveniently extensible in Ruby, so if you have any kind of personalized refines you can simply manuscript it out within the structure given.
Yet still have actually not attempted it and also you do need to install Ruby on the customer and also server with the ideal treasures (this actually isn't that tough). Total appearances actually very easy to take care of several web servers simultaneously.
I've developed a task a couple of years ago to do specifically this: Savon
It makes use of subversion to store documents, and also has some added attributes, like tracking possession, approvals, and also SELinux context. It additionally permits you to practically divide your documents system adjustments in layers, so you can as an example track adjustments that need to most likely to all your internet servers independently.
It is added work with the front - end, yet making use of an energy like Puppet permits you to instantly restore and also set up a web server with really little human treatment.
I have actually been trying out etckeeper which appears to function rather well. I does not call for a central web server, which might be necessary in some scenarios. You can make use of numerous various DVCS backends, so you can pick the one you are most accustomed to. It appears to function quite possibly for me, yet I have not attempted obtaining the various other technologies where I function to start utilizing it yet.
Most of our adjustments are taken care of with our Help Desk system, also for regular upkeep type things. We have actually been gradually relocating our documents right into a wiki for our very own usage, and also what we release to end customers. Uploading the arrangement adjustments and also the conversation behind it, behaves to have open on our intranet.
Here is a the real world usage instance : Used Subversion to take care of arrangement documents on 4 various web servers. I would certainly advise making use of version control for arrangement apply for the very same factor you would certainly utilize them with code - it is a back-up and also an undo switch done in one. If I were taking care of a much bigger quantity of web servers and also they were a lot more detailed in terms on arrangement I would certainly be making use of something like Puppet as described in berberich is solution.
The suggestion is that you can have one database that you can check out details folders on the web servers (eg./ var/named/) so I both have a background and also a back-up of arrangement documents (the back-up is an incentive if you make the blunder of making use of a GUI arrangement application that cleans your hand modified enhancements cough Server Admin in Mac OS X Server coughing ). It is after that very easy to examine it on an examination web server and also ultimately upgrade the manufacturing web server with documents that job without by hand replicating documents.
I remain in the procedure of applying Puppet throughout our framework, and also it is really for maintaining its information in version control.
I favor Mercurial given that it is simply a collection of documents with some metadata saved in surprise directory sites (very easy to take care of, understandable, very easy to make use of).
My Puppet documents go to/ usr/local/etc/ creature/ (FreeBSD 7.1). All it required to add Mercurial to it:
> cd /usr/local/etc/puppet > hg init
All adjustments are devoted with a straightforward "hg devote." If an adjustment hoses something, I can curtail each and every single web server to an offered variation of the documents (claim, sudoers) with a solitary command.
For years I made use of rcs for documents I began changing, yet a number of years ago I began placing the entire/ etc under git control. It calls for some job to sign in documents in granular mass (times I consider a massive "numerous updates" checkin), and also I have actually created some manuscripts to aid with this, yet etckeeper stated appears really intriguing, I will certainly experiment with quickly.
I have actually examined this in the house (~ 3 hosts) for time currently, attempting various.
scms (RCS, Subversion, git). The arrangement that functions flawlessly for me now is git with.
Points you require to take into consideration:
Handling of documents approvals and also possession
- RCS : does this natively
- Subversion : last I attempted, you required a wrapper around
svnto do this
- git : the
setgitpermshook manages this transparently (requires a rather current variation of git with assistance for
Also, if you do not intend to every one of your
/etc under version control, yet just
the documents that you in fact changed (like me), you'll require an scm that
assistances this sort of usage.
- RCS : functions just on files anyhow.
- Subversion : I located this to be complicated.
- git : no probem, placed "
*" in the leading - degree
.gitignoredocuments and also add just those documents you desire making use of
git add --force
Finally, there are some bothersome directory sites under
/etc where plans can go down
config fragments that are after that read by some program or daemon (
/etc/modprobe.d, etc). Several of these programs are clever adequate to overlook.
RCS documents (as an example cron), some are not (as an example modprobe). Very same point with
directory sites. Once more a large plus for git (just develops one leading - degree
I have actually been making use of Subversion on the web servers I take care of. Functions penalty. I have actually additionally set up a. Trac instance, so we have a timeline sight, ticketing system, surfing, etc
Using symlinks, cron and also subversion I have actually additionally arrangement automated arrangement circulation based upon the subversion database, where every Linux web server updates a database making use of
svn update with manuscripts (as an example firewall program manuscripts).