About Archive Tags RSS Feed

 

Dammit, Martin! This is compressed air!

17 January 2010 21:50

So I previously mentioned I'd knocked up a simple automation tool, for deploying policies (read "scripts") from a central location to a number of distinct machines.

There seemed to be a small amount of interest, so I've written it all up:

  • slaughter - Perl System Administration & Automation tool

Why slaughter? I have no idea. Yesterday evening it made sense, somehow, on the basis it rhymed with auto - (auto as in automation). This morning it made less sense. But meh.

This list of primitives has grown a little and the brief examples probably provide a little bit of flavour.

In short you:

  • Install the package upon a client you wish to manage.
  • When "slaughter" is invoked it will fetch http://example.com/slaughter/default.policy
    • This file may include other policy files via "IncludePolicy" statements.
  • Once all the named policies have been downloaded/expanded they'll be written to a local file.
  • The local file will have Perl-fu wrapped around it such that the Slaughter::linux module is available
    • This is where the definitions for "FetchFile", "Mounts", etc are located.
  • The local file will be executed then removed.

All in all its probably more complex than it needs to be, but I've managed to get interesting things primarily with these new built-in primitives and none of it is massively Debian, or even Linux, specific.

ObSubject: Jaws

| 3 comments

 

Comments on this entry

icon Pedro Melo at 06:45 on 17 January 2010

Hi,

this looks a lot like CFEngine and Puppet...

Best regards,

icon Jeff Schroeder at 08:40 on 17 January 2010

While initial setup takes a bit of work, one of the most elegant and easy to use configuration management systems I've ever used was spine from ticketmaster.
http://code.ticketmaster.com/index.php?page=spine-overview

Granted, I was in their systems engineering department and we managed a tinge under 3k systems with it at the time (2008-ish) so I might be a bit biased towards it. That being said, the engineers working on it are really friendly and exceedingly helpful to anyone trying to set it up. The documentation could use a bit of love, but again, it works very well for all of ticketmaster.com, why not for you? :)

icon Steve Kemp at 16:57 on 17 January 2010

Pedro I've written about CFEngine and Puppet a fair bit in the past and used both.

On the whole it isn't too like either:

  • No key setup/management/use.
  • Everything is initiated from the client.
  • No formal classes or factor facts, just a few variables such as $fqdn, $kvm, $raid.

Of course some of the primitives have been based specifically on things I do with CFEngine like "AppendLineIfMissing", or "FetchFile".

Jeff that does look interesting - I'm going to explore the documentation some more. Though I think my comments previously about choosing a system apply here. (e.g. No *BSD support, no Solaris support.)