Slaughter

 


Slaughter : System Administration & Automation Tool

slaughter is a simple tool which will allow policies to be downloaded, via HTTP, from a central server and executed upon a local machine. The intention is that these local policies may be written in a portable fashion and used to automate the administration of a large number of Linux machines..

The policies themselves are easy to write, and because they're backed via the power of Perl you have an awful lot of freedom and expression in the things you can write. To ensure that many tasks don't need to be implemented by hand the package comes with a collection of built in "primitives".

The supplied primitives allow you to easily carry out common tasks, such as installing files located upon the central server.

top
Comparisons to CFEngine, Puppet, & Chef

In short all those systems are more mature, more popular, more complete and more mature.

However there is a lot to be said for using this system:

  • We use only a standard transport for transfers (HTTP) which is simple to manage, and very commonly available.
    • There is no notion of using Keys or two-way authentication.
  • There is no need to learn a particular syntax or mini-language.
  • The supplied primitive operations allow most of the automation tasks you'll need to be completed
    • Those that are missing are trivial to add.
  • Everything here is client-pull rather than server-push
    • This might be a drawback, or a plus, depending on where your feelings lie.
  • The system is inherantly replication and failover-ready.

In short if you're used to coding simple automation scripts in perl this is a logical progression and it doesn't stop you from moving to something more complex and complicated in the future.

top
The Primitives

There are many useful primitives made available to any policy files that you might write. These primitives were selected as being the most obviously useful - if you have a suggestion for something that you'd appreciation please do get in touch.

Of course because the full power of Perl is available from within your policy files you might find you don't need any new additions!

The primitive documentation should demonstrate what facilities are available along with examples. Similarly you can view the pre-defined variables and see some examples.

Further examples are also available.

top
Download

There are binary packages for the Lenny release of Debian GNU/Linux available upon the slaughter repository.

Failing that you may obtain it via:

The following two files might be useful reference:

top
Installing

To install you need to do three things:

  • Configure a HTTP server to serve the contents of http://you.example.com/slaughter/
  • Install the client package upon the nodes you wish to manage.

The setup of the HTTP server should be mostly trivial, you just need to ensure that the following locations return appropriate content:

  • http://you.example.com/slaughter/policies/default.policy
    • This is the policy file that each client will fetch.
  • http://you.example.com/slaughter/files
    • This is the prefix from which all centrally stored files will be served.
top