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

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

Description

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.

Overview

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

For documentation please see https://docs.puppet.com/mcollective

Developing

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
/usr/local/opt/activemq/libexec/data/activemq.log
.

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

Modify

client.cfg
to work on the local machine: * Change the
ssl_server_public
,
ssl_client_private
,
ssl_client_public
paths to point to
~/.puppetlabs/etc/mcollective/{server.crt,client.key,client.pem}
. * Change the
activemq.pool.1.ssl.{ca,cert,key}
paths to
~/.puppetlabs/etc/mcollective/{ca_crt.pem,client.crt,client.key}
. Note that
~
needs to be expanded to the full path. Also, that
client.pem
doesn't point to an actual file is intentional (I don't fully understand why).

Create

server.cfg
, 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 plugin.activemq.pool.1.host = 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 plugin.activemq.pool.1.ssl.ca = /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

activemq
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
activemq
must be redirected to the local host. On most machines, that can be accomplished with
sudo echo "127.0.0.1   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

loglevel
in
client.cfg
to debug issues with
mco ping
.

To enable specific plugins, you may need to set

libdir
in
server.cfg
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.