forked from redhat-openstack/openstack-puppet-modules
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add an initscript for sentinel on apt-based systems
Until an initscript is available for redis-sentinel in its package[1] we need to roll our own. This change adds that by creating a templated initscript with the sentinel config file and service owner and group as template variables that get filled in. Testing this revealed some bugs and misfeatures that are also addressed in this change: * apt systems want the redis and redis-sentinel processes to daemonize (systemd-based) rpm does not. This was not reflected in the params defaults, nor reflected in the sentinel configuration template. Now it is. * the package_name for redis-sentinel was not being passed in as a parameter, instead it was just using the params.pp default for redis server. When [1] is resolve, it will likely mean a different package for redis-sentinel so we need there to be a separate parameter for the sentinel package that gets installed. For now the name of the existing package is used. [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=775414
- Loading branch information
Showing
5 changed files
with
136 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
#! /bin/sh | ||
### BEGIN INIT INFO | ||
# Provides: redis-sentinel | ||
# Required-Start: $syslog $remote_fs | ||
# Required-Stop: $syslog $remote_fs | ||
# Should-Start: $local_fs | ||
# Should-Stop: $local_fs | ||
# Default-Start: 2 3 4 5 | ||
# Default-Stop: 0 1 6 | ||
# Short-Description: redis-server - Persistent key-value db | ||
# Description: redis-server - Persistent key-value db | ||
### END INIT INFO | ||
|
||
|
||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | ||
DAEMON=/usr/bin/redis-sentinel | ||
DAEMON_ARGS=<%= @config_file %> | ||
NAME=redis-sentinel | ||
DESC=redis-senitnel | ||
|
||
RUNDIR=/var/run/redis | ||
PIDFILE=$RUNDIR/redis-sentinel.pid | ||
|
||
test -x $DAEMON || exit 0 | ||
|
||
if [ -r /etc/default/$NAME ] | ||
then | ||
. /etc/default/$NAME | ||
fi | ||
|
||
. /lib/lsb/init-functions | ||
|
||
set -e | ||
|
||
case "$1" in | ||
start) | ||
echo -n "Starting $DESC: " | ||
mkdir -p $RUNDIR | ||
touch $PIDFILE | ||
chown <%= @service_user %>:<%= @service_group %> $RUNDIR $PIDFILE | ||
chmod 755 $RUNDIR | ||
|
||
if [ -n "$ULIMIT" ] | ||
then | ||
ulimit -n $ULIMIT | ||
fi | ||
|
||
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid <%= @service_user %>:<%= @service_group %> --exec $DAEMON -- $DAEMON_ARGS | ||
then | ||
echo "$NAME." | ||
else | ||
echo "failed" | ||
fi | ||
;; | ||
stop) | ||
echo -n "Stopping $DESC: " | ||
if start-stop-daemon --stop --retry forever/TERM/1 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON | ||
then | ||
echo "$NAME." | ||
else | ||
echo "failed" | ||
fi | ||
rm -f $PIDFILE | ||
sleep 1 | ||
;; | ||
|
||
restart|force-reload) | ||
${0} stop | ||
${0} start | ||
;; | ||
|
||
status) | ||
echo -n "$DESC is " | ||
if start-stop-daemon --stop --quiet --signal 0 --name ${NAME} --pidfile ${PIDFILE} | ||
then | ||
echo "running" | ||
else | ||
echo "not running" | ||
exit 1 | ||
fi | ||
;; | ||
|
||
*) | ||
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2 | ||
exit 1 | ||
;; | ||
esac | ||
|
||
exit 0 |