[root@dukesrvi01 httpd]# cat /etc/init.d/puppetmaster
#!/bin/bash
#Puppet master using Mongrel init script for use on RedHat systems.
# This script controls all of the process which comprise the Puppet master.
# Specifically, an Apache httpd front end configured to reverse proxy to
# several Puppetmasters using Mongrel.
# chkconfig: - 65 45
export PATH=/usr/bin:/sbin:/bin:/usr/sbin
# Redhat functions
. /etc/rc.d/init.d/functions
RETVAL=0
# Run multiple puppetmasters on these ports
PUPPETMASTERPORTS="8150 8151 8152 8153 8154"
# Locking and run stuff
RUNDIR=/var/lib/puppet/run
LOCKDIR=/var/lock/subsys/
start() {
local daemonargs=' --check $base --pidfile $pidfile'
for pmp in $PUPPETMASTERPORTS ; do
local pmargs="--servertype mongrel --masterport $pmp --pidfile \$pidfile"
start_proc puppetmaster-$pmp $daemonargs puppetmasterd $pmargs
done
httpdargs="-f /etc/puppet/httpd.conf"
start_proc puppet-httpd $daemonargs httpd $httpdargs
}
start_proc() {
local base=$1
local pidfile=$RUNDIR/$base.pid
local lockfile=$LOCKDIR/$base
shift
echo -n $"Starting $base: "
eval daemon $*
RETVAL=$?
[ $RETVAL = 0 ] && touch ${lockfile}
echo
return $RETVAL
}
stop() {
stop_proc puppet-httpd
for pmp in $PUPPETMASTERPORTS ; do
stop_proc puppetmaster-$pmp
done
}
stop_proc() {
local base=$1
local pidfile=$RUNDIR/$base.pid
local lockfile=$LOCKDIR/$base
echo -n $"Stopping $base: "
killproc -p $pidfile $base
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f "$lockfile"
echo
return $RETVAL
}
status_pm() {
for pmp in $PUPPETMASTERPORTS ; do
status_proc puppetmaster-$pmp
done
status_proc puppet-httpd
}
status_proc() {
local base=$1
local pidfile=$RUNDIR/$base.pid
local lockfile=$LOCKDIR/$base
status -p $pidfile $base
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
stop
start
;;
status)
status_pm
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload}"
exit 1
esac
exit $RETVAL