Need help with marionette-collective?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

207 Stars 202 Forks Apache License 2.0 1.9K Commits 1 Opened issues


The Marionette Collective

Services available


Need anything else?

Contributors list

The Marionette Collective

Deprecation Notice

This repository holds legacy code related to The Marionette Collective project. That project has been deprecated by Puppet Inc and the code donated to the Choria Project.

Please review the Choria Project Website and specifically the MCollective Deprecation Notice for further information and details about the future of the MCollective project.


The Marionette Collective aka. mcollective is a framework to build server orchestration or parallel job execution systems.

For documentation please see


The documentation above details how MCollective works and many of its extension points.

Spec Tests

To run spec tests

bundle install
bundle exec rake test

Acceptance Tests

To run acceptance tests, see [this][acceptance].

Development Environment (MacOS)

Setup ActiveMQ using acceptance config:

brew install activemq
cp acceptance/files/activemq.* /usr/local/opt/activemq/libexec/conf
activemq start

ActiveMQ can later by stopped with

activemq stop
. ActiveMQ logs are located at

Setup MCollective with acceptance config:

mkdir -p ~/.puppetlabs/etc/mcollective/ssl-clients
cp acceptance/files/client.* ~/.puppetlabs/etc/mcollective
cp acceptance/files/server.* ~/.puppetlabs/etc/mcollective
cp acceptance/files/ca_crt.pem ~/.puppetlabs/etc/mcollective
cp acceptance/files/client.crt ~/.puppetlabs/etc/mcollective/ssl-clients/client.pem
ln -s ~/.puppetlabs/etc/mcollective/client.cfg ~/.mcollective


to work on the local machine: * Change the
paths to point to
. * Change the
paths to
. Note that
needs to be expanded to the full path. Also, that
doesn't point to an actual file is intentional (I don't fully understand why).


, updating
maincollective = mcollective
collectives = mcollective
loggertype = console
loglevel = info
daemonize = 0

securityprovider = ssl plugin.sslserverprivate = /Users//.puppetlabs/etc/mcollective/server.key plugin.sslserverpublic = /Users//.puppetlabs/etc/mcollective/server.crt plugin.sslclientcert_dir = /Users//.puppetlabs/etc/mcollective/ssl-clients

connector = activemq plugin.activemq.pool.size = 1 = activemq plugin.activemq.pool.1.port = 61613 plugin.activemq.pool.1.user = mcollective plugin.activemq.pool.1.password = marionette plugin.activemq.pool.1.ssl = true = /Users//.puppetlabs/etc/mcollective/ca_crt.pem plugin.activemq.pool.1.ssl.cert = /Users//.puppetlabs/etc/mcollective/server.crt plugin.activemq.pool.1.ssl.key = /Users//.puppetlabs/etc/mcollective/server.key ```

The configuration above uses

as the name of the ActiveMQ broker. MCollective will enforce that the SSL certificate presented by the server matches the name it's trying to connect to. To use the configuration above, traffic to
must be redirected to the local host. On most machines, that can be accomplished with
sudo echo "   activemq" >> /etc/hosts

From the root of this repository, test the setup by running a server

RUBYLIB=lib bundle exec bin/mcollectived --config ~/.puppetlabs/etc/mcollective/server.cfg
and client
RUBYLIB=lib bundle exec bin/mco ping

Note that it may be useful to change the

to debug issues with
mco ping

To enable specific plugins, you may need to set

and add plugin-specific configuration.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.