summaryrefslogtreecommitdiff
path: root/files/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'files/cluster')
-rwxr-xr-xfiles/cluster/init.d/puppetmaster.Gentoo60
1 files changed, 60 insertions, 0 deletions
diff --git a/files/cluster/init.d/puppetmaster.Gentoo b/files/cluster/init.d/puppetmaster.Gentoo
new file mode 100755
index 0000000..effd3fc
--- /dev/null
+++ b/files/cluster/init.d/puppetmaster.Gentoo
@@ -0,0 +1,60 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+ before puppet
+ use dns logger
+}
+
+PORTS=[ 18140 18141 18142 18143]
+
+checkconfig() {
+ if [[ ! -d "${PUPPETMASTER_PID_DIR}" ]] ; then
+ eerror "Please make sure PUPPETMASTER_PID_DIR is defined and points to a existing directory"
+ return 1
+ fi
+
+ local site_manifest="/etc/puppet/manifests/site.pp"
+ [[ -n "${PUPPETMASTER_MANIFEST}" ]] && site_manifest="${PUPPETMASTER_MANIFEST}"
+
+ if [ ! -f "${site_manifest}" ] ; then
+ eerror "Please create ${site_manifest} before running puppet"
+ return 1
+ fi
+
+ return 0
+}
+
+start() {
+ checkconfig || return $?
+
+ local options=""
+ [[ -n "${PUPPETMASTER_MANIFEST}" ]] && options="${options} --manifest=${PUPPETMASTER_MANIFEST}"
+ [[ -n "${PUPPETMASTER_LOG}" ]] && options="${options} --logdest=${PUPPETMASTER_LOG}"
+ [[ -n "${PUPPETMASTER_EXTRA_OPTS}" ]] && options="${options} ${PUPPETMASTER_EXTRA_OPTS}"
+
+ for port in $PORTS; do
+ ebegin "Starting puppetmaster on port ${port}"
+ start-stop-daemon --start --quiet --exec /usr/bin/puppetmasterd \
+ --pidfile=${PUPPETMASTER_PID_DIR}/puppetmasterd.${port}.pid \
+ --servertype=mongrel \
+ --masterport="${port}" \
+ -- ${options}
+ a=$? || $a
+ done
+ eend $a "Failed to start puppetmaster"
+}
+
+stop() {
+ for port in $PORTS; do
+ ebegin "Stopping puppetmaster on port ${port}"
+ start-stop-daemon --stop --quiet \
+ --pidfile ${PUPPETMASTER_PID_DIR}/puppetmasterd.${port}.pid
+ local ret=$? || $ret
+ done
+ eend ${ret} "Failed to stop puppetmaster"
+ rm -f ${PUPPETMASTER_PID_DIR}/puppetmasterd.pid
+ return ${ret}
+}