LISA’11: Hallway track – How to steal ideas

Print Friendly, PDF & Email

Just a quick note I’ve confirmed that there shouldn’t really be any problem with stealing from Puppet (well we’re not stealing as such just borrowing). For a couple of years I’ve really liked the idea of a message queue to orchestrate command execution across nodes. At the moment I use a simple fabric script to pull host class members out with bcfg2-admin and perform simple push over SSH to clients specifying options such as bundles or whitelists. The way fabric works is that you define a function in some python code and that becomes a command line argument which you chain together to create a sequence of events to execute across those hosts. The main problem with this is that you can’t (easily) perform parallel execution where there is no dependency. It would be nice to do somethings out of band and carry on with other stuff while you wait. Everything is sequential. Well it seems that the MCollective is the perfect replacement to facilitate this. I’ve known about mcollective for a while, just not gotten around to doing anything with it. In MCollective you can define any number of Agent modules which act as an equivalent to the commands we use in fabric. MCollective is java based service which runs on a single machine, which inserts jobs onto the message queue and then distributes them to the clients.
Got to be worth a go.