Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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

share|improve this question

3 Answers 3

up vote 4 down vote accepted

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

http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/AgentPuppetd

http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/ToolPuppetcommander

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.

share|improve this answer
    
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. –  Domster Mar 13 '12 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.

share|improve this answer
    
Puppet works great so far. And I already wrote some Modules with Puppet. –  markus Mar 5 '11 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:

/etc/rabbitmq/rabbitmq.config:

 [
   {
    rabbitmq_stomp, [{tcp_listeners, [{"127.0.0.1", 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
mc-find-hosts

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

http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/InstallingPlugins

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.