Report abuse

[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