Puppet: System Administration Automated

Support

Ticket #1214: puppetmaster-mongrel

File puppetmaster-mongrel, 3.2 kB (added by fs, 7 months ago)

Red Hat? init script with mongrel support

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