-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
puppetmaster.init
137 lines (118 loc) · 3.74 KB
/
puppetmaster.init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#! /bin/sh
### BEGIN INIT INFO
# Provides: puppetmaster
# Required-Start: $network $named $remote_fs $syslog
# Required-Stop: $network $named $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/puppet
DAEMON_OPTS=""
NAME=master
DESC="puppet master"
test -x $DAEMON || exit 0
[ -r /etc/default/puppetmaster ] && . /etc/default/puppetmaster
. /lib/lsb/init-functions
if [ ! -d /var/run/puppet ]; then
mkdir -p /var/run/puppet
fi
chown puppet:puppet /var/run/puppetlabs
mongrel_warning="The mongrel servertype is no longer built-in to Puppet. It
appears as though mongrel is being used, as the number of puppetmasters is
greater than one. Starting the puppetmaster service will not behave as expected
until this is resolved. Only the first port has been used in the service, and
only one puppetmaster has been started. These settings are defined in
/etc/default/puppetmaster"
# Warn about removed and unsupported mongrel servertype
if ([ -n "$PUPPETMASTERS" ] && [ ${PUPPETMASTERS} -gt 1 ]) || [ "${SERVERTYPE}" = "mongrel" ]; then
echo $mongrel_warning
echo
fi
is_true() {
if [ "x$1" = "xtrue" -o "x$1" = "xyes" -o "x$1" = "x0" ] ; then
return 0
else
return 1
fi
}
start_puppet_master() {
if is_true "$START" ; then
start-stop-daemon --start --quiet --pidfile /var/run/puppetlabs/${NAME}.pid \
--startas $DAEMON -- $NAME $DAEMON_OPTS --masterport=$PORT
else
echo ""
echo "puppetmaster not configured to start, please edit /etc/default/puppetmaster to enable"
fi
}
stop_puppet_master() {
start-stop-daemon --stop --retry TERM/10/KILL/5 --quiet --oknodo --pidfile /var/run/puppetlabs/${NAME}.pid
}
status_puppet_master() {
if ( ! type status_of_proc > /dev/null 2>&1 ) ; then
status_of_proc() {
local pidfile daemon name status
pidfile=
OPTIND=1
while getopts p: opt ; do
case "$opt" in
p) pidfile="$OPTARG";;
esac
done
shift $(($OPTIND - 1))
if [ -n "$pidfile" ]; then
pidfile="-p $pidfile"
fi
daemon="$1"
name="$2"
status="0"
pidofproc $pidfile $daemon >/dev/null || status="$?"
if [ "$status" = 0 ]; then
log_success_msg "$name is running"
return 0
elif [ "$status" = 4 ]; then
log_failure_msg "could not access PID file for $name"
return $status
else
log_failure_msg "$name is not running"
return $status
fi
}
fi
if is_true "$START" ; then
status_of_proc -p "/var/run/puppetlabs/${NAME}.pid" "${DAEMON}" "${NAME}"
else
echo ""
echo "puppetmaster not configured to start"
status_of_proc -p "/var/run/puppetlabs/${NAME}.pid" "${DAEMON}" "${NAME}"
fi
}
case "$1" in
start)
log_begin_msg "Starting $DESC"
start_puppet_master
log_end_msg $?
;;
stop)
log_begin_msg "Stopping $DESC"
stop_puppet_master
log_end_msg $?
;;
reload)
# Do nothing, as Puppetmaster rechecks its config automatically
;;
status)
status_puppet_master
;;
restart|force-reload)
log_begin_msg "Restarting $DESC"
stop_puppet_master
start_puppet_master
log_end_msg $?
;;
*)
echo "Usage: $0 {start|stop|status|restart|force-reload}" >&2
exit 1
;;
esac
# vim: tabstop=4:softtabstop=4:shiftwidth=4:expandtab