I have to administrate a big cluster of servers in the cloud and now I want to automate the installation process of these machines. Therefore I use puppet as configuration management system.

I want to push configurations from the master node to the cluster nodes very fast and heard, that MCollective can do this. But I don't know how the interaction and setup between MCollective, RabbitMQ and Puppet has to be.

Is there a good tutorial about that on the Internet or can someone give me a short intro about this?

This would be great!

Thanks, Markus

3 Answers 3


The easiest integration between puppet and mcollective is with the Puppetd Agent and, optionally, puppet commander -



Don't use rabbitmq, especially if you have any significant scale. ActiveMQ is the best supported, best documented queuing system for use with mcollective.

To get started check out RI Pienaar's screencasts page -- the docs are pretty good but the screencasts will get you a handle on the concepts much faster. I especially recommend the Message Flow, Components, and Middleware screencast.

  • In my experience, there's just as much documentation for using RabbitMQ as there is for ActiveMQ: little to none. The docs just say: point this part at your stomp server. As they should. Mar 13, 2012 at 4:45

My advice is to start learning Puppet first, and then worry about implementing MCollective later. Until you have a fairly complete Puppet environment setup, mcollective is really no better than cssh. http://sourceforge.net/projects/clusterssh/

Once you have Puppet working, and you have implemented custom facts and classification, then MCollective will really be useful.

So, start simple, with just Puppet.

  • Puppet works great so far. And I already wrote some Modules with Puppet.
    – markus
    Mar 5, 2011 at 11:38

I just recently set up puppet + mcollective + rabbitmq. Stack Exchange has other answers that compare RabbitMQ and ActiveMQ. Google offers many anecdotes that suggest RabbitMQ scales well. I preferred it because I could apt-get install Ubuntu packages from the rabbitmq site and get up and running quickly, and it seems to work fine so far.

Some suggestions:

. Install puppet and mcollective packages from puppetlabs, and configure apt preferences to Pin to their repository. . Install rabbitmq packages from the rabbitmq apt repo, similarly Pinned.

In Ubuntu Lucid, with rabbitmq installed, you set up a configuration file:


    rabbitmq_stomp, [{tcp_listeners, [{"", 6163}]},
                     {default_user, [{login, "guest"},{passcode, "guest"}]}

Then for mcollective you have /etc/mcollective/{server,client}.cfg that specify the host, port, and credentials to talk to rabbit:

... snip ...
connector = stomp
plugin.stomp.host = rabbitmq.yourdomain
plugin.stomp.port = 6163
plugin.stomp.user = guest
plugin.stomp.password = guest

Then you should be able to see them interact:

mco ping

Mcollective doesn't come with much, you have to add plugins:


including one for interacting with puppet, services, processes, etc.

  • I'm getting: error 2015/08/12 14:50:10: pluginmanager.rb:171:in `rescue in loadclass' Failed to load Mcollective::Connector::Stomp: cannot load such file -- mcollective/connector/stomp.rb Failed to generate application list: LoadError: cannot load such file -- mcollective/connector/stomp.rb
    – nicoX
    Aug 12, 2015 at 14:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .