Requirements ------------ - 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 Installation ------------ 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: http://www.neuhalfen.name/blog/2011/07/02/Solaris11-Packaging-IPS_simple_packages/ 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/prefix=legrand.im # pkgrepo -s /IPS/Solaris11 refresh # svcadm refresh application/pkg/server # svcadm enable application/pkg/server # pkg set-publisher -O http://localhost:80 legrand.im To create and send the package itself, from the guide above: # mkdir ~/package # cd /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 > ../send.sh << "EOF" #!/bin/sh 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}" EOF # gfind . -type d -not -name . -printf "\$PKGSEND add dir mode=%m owner=${user} group=${group} path=$ROOT/%h/%f \n" >> ../send.sh # gfind . -type f -not -name LICENSE -printf "\$PKGSEND add file %h/%f mode=%m owner=${user} group=${group} path=$ROOT/%h/%f \n" >> ../send.sh # gfind . -type l -not -name LICENSE -printf "\$PKGSEND add link path=%h/%f target=%l \n" >> ../send.sh # echo '$PKGSEND close' >> ../send.sh # sh -x ../send.sh The package can then be installed with: # pkg install pkg://legrand.im/mcollective Configuration ------------- There is no packaged configuration; you can use the following example: # cat > /etc/mcollective/client.cfg << "EOF" main_collective = mcollective collectives = mcollective libdir = /usr/share/mcollective/plugins logfile = /dev/null loglevel = info # Plugins securityprovider = psk plugin.psk = unset connector = stomp plugin.stomp.host = mqserver plugin.stomp.port = 6163 plugin.stomp.user = mcollective plugin.stomp.password = changeme # Facts factsource = yaml plugin.yaml = /etc/mcollective/facts.yaml EOF License ------ http://creativecommons.org/publicdomain/zero/1.0/ 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.