Puppet: System Administration Automated

Support

Ticket #1214: puppetmaster-mongrel2

File puppetmaster-mongrel2, 3.4 kB (added by fs, 7 months ago)
Line 
1 #!/bin/bash
2 # puppetmaster  This shell script enables the puppetmaster server.
3 #
4 # Author:       Duane Griffin <d.griffin@psenterprise.com>
5 #
6 # chkconfig: - 65 45
7 #
8 # description: Server for the puppet system management tool.
9 # processname: puppetmaster
10
11 PATH=/usr/bin:/sbin:/bin:/usr/sbin
12 export PATH
13
14 # Source function library.
15 . /etc/rc.d/init.d/functions
16
17 if [ -f /etc/sysconfig/puppetmaster ]; then
18         . /etc/sysconfig/puppetmaster
19 fi
20
21 prog=puppetmasterd
22 PUPPETMASTER=/usr/sbin/$prog
23 RUNDIR=/var/run/puppet
24 LOCKDIR=/var/lock/subsys/
25 lockfile=${LOCKDIR}/puppetmaster
26 PUPPETMASTERPORTS="8150 8151 8152 8153 8154"
27 PUPPETMASTER_OPTS=""
28
29 [ -n "$PUPPETMASTER_MANIFEST" ] && PUPPETMASTER_OPTS="--manifest=${PUPPETMASTER_MANIFEST}"
30 [ -n "$PUPPETMASTER_LOG" ] && PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} --logdest=${PUPPETMASTER_LOG}"
31 [ -n "$PUPPETMASTER_PORTS" ] && PUPPETMASTERPORTS=${PUPPETMASTER_PORTS}
32 case "$PUPPETMASTER_SERVER_TYPE" in
33         MONGREL)
34             FP="m"
35             ;;
36         *) # implied WEBBRICK
37             FP="wb"
38 esac
39 PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} ${PUPPETMASTER_EXTRA_OPTS}"
40
41 RETVAL=0
42
43
44 # wb_* functions => webbrick specific
45 # m_* functions  => mongrel specific
46
47 wb_start() {
48         echo -n $"Starting puppetmaster: "
49
50         # Confirm the manifest exists
51         if [ -r $PUPPETMASTER_MANIFEST ]; then
52                 daemon $PUPPETMASTER $PUPPETMASTER_OPTS
53                 RETVAL=$?
54         else
55                 failure $"Manifest does not exist: $PUPPETMASTER_MANIFEST"
56                 echo
57                 return 1
58         fi
59         [ $RETVAL -eq 0 ] && touch "$lockfile"
60         echo
61         return $RETVAL
62 }
63
64 wb_stop() {
65         echo -n  $"Stopping puppetmaster: "
66         killproc $PUPPETMASTER
67         RETVAL=$?
68         echo
69         [ $RETVAL -eq 0 ] && rm -f "$lockfile"
70         return $RETVAL
71 }
72
73 wb_status() {
74         status $PUPPETMASTER
75         RETVAL=$?
76 }
77
78 m_start() {
79         local daemonargs=' --check $base --pidfile $pidfile'
80
81         for pmp in $PUPPETMASTERPORTS ; do
82                 local pmargs="${PUPPETMASTER_OPTS} --servertype mongrel --masterport $pmp --pidfile \$pidfile"
83                 local base=puppetmaster-$pmp
84                 local pidfile=$RUNDIR/$base.pid
85                 local lockfile=$LOCKDIR/$base
86        
87                 echo -n $"Starting $base: "
88
89                 eval daemon $daemonargs puppetmasterd $pmargs
90                 RETVAL=$?
91                 [ $RETVAL = 0 ] && touch ${lockfile}
92
93                 echo
94         done
95 }
96
97 m_stop() {
98         for pmp in $PUPPETMASTERPORTS ; do
99             local base=puppetmaster-$pmp
100             local pidfile=$RUNDIR/$base.pid
101             local lockfile=$LOCKDIR/$base
102
103             echo -n  $"Stopping $base: "
104
105             killproc -p $pidfile $base
106             RETVAL=$?
107             [ $RETVAL -eq 0 ] && rm -f "$lockfile"
108
109             echo
110         done
111 }
112
113 m_status() {
114         for pmp in $PUPPETMASTERPORTS ; do
115
116             local base=puppetmaster-$pmp
117             local pidfile=$RUNDIR/$base.pid
118
119             status -p $pidfile $base
120         done
121 }
122
123 start() {
124     if [ "x${FP}" = "xm" ] ; then
125         m_start
126     elif  [ "x${FP}" = "xwb" ] ; then
127         wb_start
128     fi
129 }
130
131 stop() {
132     if [ "x${FP}" = "xm" ] ; then
133         m_stop
134     elif  [ "x${FP}" = "xwb" ] ; then
135         wb_stop
136     fi
137 }
138
139 p_status() {
140     if [ "x${FP}" = "xm" ] ; then
141         m_status
142     elif  [ "x${FP}" == "xwb" ] ; then
143         wb_status
144     fi
145 }
146
147 restart() {
148     if [ "x${FP}" = "xm" ] ; then
149         m_stop
150         m_start
151     elif  [ "x${FP}" = "xwb" ] ; then
152         wb_stop
153         wb_start
154     fi
155 }
156
157 case "$1" in
158   start)
159         start
160         ;;
161   stop)
162         stop
163         ;;
164   restart|reload|force-reload)
165         restart
166         ;;
167   condrestart)
168         [ -f "$lockfile" ] && restart
169         ;;
170   status)
171         p_status
172         ;;
173   *)
174         echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
175         exit 1
176 esac
177
178 exit $RETVAL