There are many system administration and configuration management tools available, I've mentioned them in the past and we're probably all familiar with our pet favourites.
The "biggies" include CFEngine, Puppet, Chef, BFG2. The "minis" are largely in-house tools, or abuses of existing software such as fabric.
My own personal solution manages my home network, and three dedicated servers I pay for in various ways.
Currently I've been setting up some configuration "stuff" for a friend and I've elected to manage some of the setup with this system of my own, and I guess I need to decide what I'm going to do going forward.
slaughter is well maintained, largely by virtue of not doing too much. The things it does are genuinely useful and entirely sufficient to handle a lot of the common tasks - and because the server-side requirement is a HTTP server, and the only client-side requirement is CRON it is trivial to deploy.
In the past I've thought of three alternatives that would make it more complex:
- Stop using HTTP and have a mini-daemon to both serve and schedule.
- Stop using HTTP and use rsync instead.
Each approaches have their appeal. I like the idea of only executing GPG-signed policies, and that would be trivial if there was a real server in place. It could also use SSL because that's all you need for security (ha!).
On the other hand using rsync allows me to trivially implement the only missing primitive I actually miss at times - the ability to recursively download and install a remote directory tree. (I solve this problem by downloading a .tar file and unpacking it. Not good. Doesn't cope with template expansion and is fiddlier than I like).
In the lifetime of the project I think I've had 20-50 feature requests or comments, which suggests it might actually be used by 50-100 people. (Ha! Optimism)
In the meantime I'll keep a careful eye on the number of people who download the tarball & the binary packages...
ObQuote: "I have vermin to kill. " - Kill Bill