Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


  • Ruby (pkg install pkg:/runtime/ruby-18)
  • Header files (pkg install system/header)
  • GCC to install JSON (pkg install developer/gcc-3)
  • Stomp: gem install stomp
  • Ruby-JSON: gem install json


Clone the github repository and install as root:

$ cd marionette-collective
$ make -f ext/solaris11/Makefile install

This will use / as a default destination root directory.

IPS package

To create an IPS package, follow the excellent guide at:

To create a basic IPS repository (and start the associated services):

# zfs create rpool/IPS
# zfs set atime=off rpool/IPS
# zfs set mountpoint=/IPS rpool/IPS
# mkdir /IPS/Solaris11
# svcadm enable application/pkg/server
# svccfg -s application/pkg/server setprop pkg/inst_root=/IPS/Solaris11
# svccfg -s application/pkg/server setprop pkg/readonly=false
# pkgrepo create /IPS/Solaris11/
# pkgrepo set -s /IPS/Solaris11 publisher/
# pkgrepo -s /IPS/Solaris11 refresh
# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server
# pkg set-publisher -O http://localhost:80

To create and send the package itself, from the guide above:

# mkdir ~/package
# cd <GITHUB>/marionette-collective
# cat Makefile | sed 's/DESTDIR=$/DESTDIR=~\/package/' > Makefile.package
# make -f ext/solaris11/Makefile.package install
# pkg install pkg:/file/gnu-findutils
# export ROOT=/
# export description="MCollective"
# export user="root"
# export group="root"
# cd ~/package
# cat > ../ << "EOF"
export PKGSEND="pkgsend -s http://localhost:80"
eval `$PKGSEND open mcollective@1.1-1`
$PKGSEND add license ./COPYING license=lorem_ipsum
$PKGSEND add set name=description value="${description}"
# gfind . -type d -not -name . -printf "\$PKGSEND add dir mode=%m owner=${user} group=${group} path=$ROOT/%h/%f \n"  >> ../
# gfind . -type f -not -name LICENSE   -printf "\$PKGSEND add file %h/%f mode=%m owner=${user} group=${group} path=$ROOT/%h/%f \n" >> ../
# gfind . -type l -not -name LICENSE   -printf "\$PKGSEND add link path=%h/%f target=%l \n" >> ../
# echo '$PKGSEND close' >> ../
# sh -x ../

The package can then be installed with:

# pkg install pkg://


There is no packaged configuration; you can use the following example:

# cat > /etc/mcollective/client.cfg << "EOF"
topicprefix = /topic/
main_collective = mcollective
collectives = mcollective
libdir = /usr/share/mcollective/plugins
logfile = /dev/null
loglevel = info
# Plugins
securityprovider = psk
plugin.psk = unset
connector = stomp = mqserver
plugin.stomp.port = 6163
plugin.stomp.user = mcollective
plugin.stomp.password = changeme
# Facts
factsource = yaml
plugin.yaml = /etc/mcollective/facts.yaml


To the extent possible under law, Mathieu Legrand has waived all copyright and related or neighboring rights to this work. This work is published from: Singapore.

Something went wrong with that request. Please try again.