Class Index [+]

Quicksearch

#!/bin/bash

MPATH=” BETCDIR=‘/etc/mcollective’ BRUBYDIR=‘/Library/Ruby/Site/1.8’ BSBINDIR=‘/usr/sbin’ BBINDIR=‘/usr/bin’ BLIBEXECDIR=‘/usr/libexec/mcollective’ BDOCDIR=‘/usr/share/doc/mcollective’ BLAUNCHDIR=‘/Library/LaunchDaemons’

if [ -z $1 ]; then

echo 'Please give the path to the MCollective source directory'
exit 1

else

MPATH=$1

fi

function msg_stomp {

echo 'It is recommended to install stomp on this system using ruby gems'
exit 2

}

function msg_xcode {

echo 'It is required to have the latest XCode installed'
exit 3

}

#Make sure we have stomp so we can load mcollective /usr/bin/ruby <<EOF || msg_stomp require ‘rubygems’ require ‘stomp’ EOF

#Make sure we have PackageMaker installed

-x /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker

|| msg_xcode

#Get the MCollective version export RUBYLIB=$RUBYLIB:$MPATH/lib mcversion=$(/usr/bin/ruby <<EOF require ‘mcollective’ puts MCollective.version EOF )

#Make our tmp directory tmpbase=`basename $0` common_tmpdir=`mktemp -d /tmp/${tmpbase}-common_$mcversion.XXXX` || exit 1 client_tmpdir=`mktemp -d /tmp/${tmpbase}-client_$mcversion.XXXX` || exit 1 tmpdir=`mktemp -d /tmp/${tmpbase}_$mcversion.XXXX` || exit 1

#Build the common environment mkdir -p “$common_tmpdir/$BRUBYDIR” mkdir -p “$common_tmpdir/$BLIBEXECDIR” mkdir -p “$common_tmpdir/$BDOCDIR”

cp -r $MPATH/lib/mcollective $common_tmpdir/$BRUBYDIR/ cp $MPATH/lib/mcollective.rb $common_tmpdir/$BRUBYDIR/ cp -r $MPATH/plugins/mcollective $common_tmpdir/$BLIBEXECDIR/

#Build the server environment mkdir -p “$tmpdir/$BSBINDIR” mkdir -p “$tmpdir/$BETCDIR” mkdir -p “$tmpdir/$BETCDIR/ssl/clients” mkdir -p “$tmpdir/$BLAUNCHDIR”

cp $MPATH/mcollectived.rb $tmpdir/$BSBINDIR/mcollectived cp $MPATH/etc/facts.yaml.dist $tmpdir/$BETCDIR/facts.yaml cp $MPATH/etc/server.cfg.dist $tmpdir/$BETCDIR/server.cfg #This is needed for macs since launchd will handle the daemonizing perl -i -pe ‘s/daemonize = 1/daemonize = 0/’ $tmpdir/$BETCDIR/server.cfg

#Build the client environment mkdir -p “$client_tmpdir/$BETCDIR” mkdir -p “$client_tmpdir/$BSBINDIR”

cp $MPATH/etc/client.cfg.dist $client_tmpdir/$BETCDIR/client.cfg cp $MPATH/etc/rpc-help.erb $client_tmpdir/$BETCDIR/ cp $MPATH/mc-call-agent $client_tmpdir/$BSBINDIR/ cp $MPATH/mc-controller $client_tmpdir/$BSBINDIR/ cp $MPATH/mc-facts $client_tmpdir/$BSBINDIR/ cp $MPATH/mc-find-hosts $client_tmpdir/$BSBINDIR/ cp $MPATH/mc-inventory $client_tmpdir/$BSBINDIR/ cp $MPATH/mc-ping $client_tmpdir/$BSBINDIR/ cp $MPATH/mc-rpc $client_tmpdir/$BSBINDIR/

#Build our launchd property list file cat - > $tmpdir/$BLAUNCHDIR/org.marionette-collective.mcollective.plist <<EOF <?xml version=“1.0” encoding=“UTF-8”?> <!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “www.apple.com/DTDs/PropertyList-1.0.dtd”> <plist version=“1.0”> <dict>

<key>EnvironmentVariables</key>
<dict>
        <key>PATH</key>
        <string>/sbin:/usr/sbin:/bin:/usr/bin</string>
        <key>RUBYLIB</key>
        <string>/Library/Ruby/Site/1.8</string>
</dict>
<key>Label</key>
<string>org.marionette-collective.mcollective</string>
<key>OnDemand</key>
<false/>
<key>KeepAlive</key>
<true/>
<key>ProgramArguments</key>
<array>
        <string>/usr/sbin/mcollectived</string>
        <string>--config=/etc/mcollective/server.cfg</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>MCollective Server</string>
<key>ServiceIPC</key>
<false/>

</dict> </plist> EOF

launchd complains if the permissions aren’t right chmod 644 $tmpdir/$BLAUNCHDIR/org.marionette-collective.mcollective.plist

#Make our Packages. This requires XCode be installed /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker -r $tmpdir –version $mcversion –title “MCollective” -l / -o MCollective_$mcversion.pkg -i org.marionette-collective.mcollective /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker -r $common_tmpdir –version $mcversion –title “MCollective Common” -l / -o MCollective-Common_$mcversion.pkg -i org.marionette-collective.mcollective-common /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker -r $client_tmpdir –version $mcversion –title “MCollective Client” -l / -o MCollective-Client_$mcversion.pkg -i org.marionette-collective.mcollective-client

#Clean up rm -rf $tmpdir rm -rf $common_tmpdir rm -rf $client_tmpdir

[Validate]

Generated with the Darkfish Rdoc Generator 2.