Browse Source

clean up scripts and resolve permissions errors in centos 7

4.0
bitbashing 10 years ago
parent
commit
eb9c9fd0b2
13 changed files with 386 additions and 295 deletions
  1. +1
    -1
      haproxy/haproxy.cfg
  2. +50
    -69
      system/sbin/kazoo-applications
  3. +62
    -47
      system/sbin/kazoo-bigcouch
  4. +50
    -69
      system/sbin/kazoo-ecallmgr
  5. +55
    -13
      system/sbin/kazoo-freeswitch
  6. +58
    -48
      system/sbin/kazoo-haproxy
  7. +53
    -35
      system/sbin/kazoo-kamailio
  8. +25
    -7
      system/sbin/kazoo-rabbitmq
  9. +6
    -1
      system/systemd/kazoo-bigcouch.service
  10. +7
    -2
      system/systemd/kazoo-freeswitch.service
  11. +8
    -3
      system/systemd/kazoo-haproxy.service
  12. +6
    -0
      system/systemd/kazoo-kamailio.service
  13. +5
    -0
      system/systemd/kazoo-rabbitmq.service

+ 1
- 1
haproxy/haproxy.cfg View File

@ -3,7 +3,7 @@ global
log 127.0.0.1 local1 notice log 127.0.0.1 local1 notice
maxconn 4096 maxconn 4096
user haproxy user haproxy
group haproxy
group daemon
stats socket /tmp/haproxy.sock mode 777 stats socket /tmp/haproxy.sock mode 777
defaults defaults


+ 50
- 69
system/sbin/kazoo-applications View File

@ -23,33 +23,34 @@ fi
export NAME_ARG="-name ${NAME}" export NAME_ARG="-name ${NAME}"
start() {
cd ${HOME}
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
RETVAL=1
return
fi
prepare() {
mkdir -p /tmp/erl_pipes/${NAME} mkdir -p /tmp/erl_pipes/${NAME}
chown -R ${USER} /tmp/erl_pipes/${NAME} chown -R ${USER} /tmp/erl_pipes/${NAME}
mkdir -p /var/log/kazoo mkdir -p /var/log/kazoo
chown -R ${USER} /var/log/kazoo chown -R ${USER} /var/log/kazoo
chown -R ${USER} /opt/kazoo /opt/kazoo/.* chown -R ${USER} /opt/kazoo /opt/kazoo/.*
}
start() {
cd ${HOME} cd ${HOME}
if sudo -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then
echo "Kazoo ${NAME} is already running!"
RETVAL=1
return
fi
export CODE_LOADING_MODE=interactive export CODE_LOADING_MODE=interactive
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} $@
exec "$@"
else else
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
exec sudo -u ${USER} "$@"
fi fi
RETVAL=$?
WAIT_TIME=0
until su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1 || [ ${WAIT_TIME} -eq 4 ]; do
sleep $(( WAIT_TIME++ ))
done
if ! su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start Kazoo ${NAME}!"
RETVAL=1 RETVAL=1
fi fi
} }
@ -57,9 +58,10 @@ start() {
stop() { stop() {
cd ${HOME} cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} stop" ${USER}
sudo -u ${USER} ${BIN_FILE} stop
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
if sudo -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then
echo "Failed to stop Kazoo ${NAME}!"
RETVAL=1 RETVAL=1
fi fi
} }
@ -72,89 +74,71 @@ restart() {
status() { status() {
cd ${HOME} cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} eval 'kz_nodes:status().'" ${USER} | sed \$d
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
sudo -u ${USER} ${BIN_FILE} eval 'kz_nodes:status().' | sed \$d
RETVAL=$?
} }
connect() { connect() {
cd ${HOME} cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
export COOKIE_ARG="-setcookie ${COOKIE}" export COOKIE_ARG="-setcookie ${COOKIE}"
su -s /bin/bash -c "${BIN_FILE} remote_console" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
sudo -u ${USER} ${BIN_FILE} remote_console
RETVAL=$?
} }
attach() { attach() {
cd ${HOME} cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} attach" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
echo "WARNING: You are now directly attached to the running ${NAME} Erlang node."
echo " It is safer to use: $0 connect"
sudo -u ${USER} ${BIN_FILE} attach
RETVAL=$?
} }
ping() { ping() {
cd ${HOME} cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
export COOKIE_ARG="-setcookie ${COOKIE}" export COOKIE_ARG="-setcookie ${COOKIE}"
su -s /bin/bash -c "${BIN_FILE} ping" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
sudo -u ${USER} ${BIN_FILE} ping
RETVAL=$?
} }
pid() { pid() {
cd ${HOME} cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
export COOKIE_ARG="-setcookie ${COOKIE}" export COOKIE_ARG="-setcookie ${COOKIE}"
su -s /bin/bash -c "${BIN_FILE} pid" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
}
foreground() {
cd ${HOME}
export CODE_LOADING_MODE=interactive
su -s /bin/bash -c "${BIN_FILE} foreground" ${USER}
sudo -u ${USER} ${BIN_FILE} pid
RETVAL=$?
} }
case "$1" in case "$1" in
prepare)
prpeare
;;
start) start)
start "start" start "start"
;;
;;
foreground)
start "foreground"
;;
stop) stop)
stop stop
;;
status)
status
;;
;;
restart) restart)
restart restart
;;
;;
status)
status
;;
connect) connect)
connect connect
;;
;;
attach) attach)
attach attach
;; ;;
@ -164,12 +148,9 @@ case "$1" in
pid) pid)
pid pid
;; ;;
foreground)
foreground
;;
*) *)
echo "Usage: $0 (start|stop|restart|status|connect|attach|ping|pid|foreground)"
echo "Usage: $0 (prpeare|start|foreground|stop|restart|status|connect|attach|ping|pid)"
RETVAL=1 RETVAL=1
esac esac
exit ${RETVAL}
exit ${RETVAL}

+ 62
- 47
system/sbin/kazoo-bigcouch View File

@ -5,7 +5,7 @@ if [ -f /etc/default/bigcouch ]; then
fi fi
if [ -f /etc/sysconfig/bigcouch ]; then if [ -f /etc/sysconfig/bigcouch ]; then
. /etc/sysconfig/bigcouch
. /etc/sysconfig/bigcouch
fi fi
RETVAL=0 RETVAL=0
@ -13,69 +13,84 @@ USER=${BIGCOUCH_USER:-bigcouch}
BIN_FILE=${BIGCOUCH_BIN:-/opt/bigcouch/bin/bigcouch} BIN_FILE=${BIGCOUCH_BIN:-/opt/bigcouch/bin/bigcouch}
export HOME=${BIGCOUCH_HOME:-/srv} export HOME=${BIGCOUCH_HOME:-/srv}
[ -f ${BIN_FILE} ] || exit 1
# Detect core count # Detect core count
CORES=`grep -E "^processor" /proc/cpuinfo |wc -l` CORES=`grep -E "^processor" /proc/cpuinfo |wc -l`
if [ "${CORES}" = "1" ]; then if [ "${CORES}" = "1" ]; then
BEAM=beam
BEAM=beam
else else
BEAM=beam.smp
BEAM=beam.smp
fi fi
prepare() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
}
start() { start() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
cd ${HOME}
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE}
else
exec su -s /bin/bash -c "${BIN_FILE}" ${USER}
fi
RETVAL=$?
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start BigCouch!"
RETVAL=1
fi
} }
stop() { stop() {
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
}
restart() {
stop
start
} }
status() { status() {
RETVAL=1
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
echo "bigcouch (pid $i) is running..."
if which curl &>/dev/null; then
curl localhost:5984/_membership
fi
RETVAL=0
fi
done
if [ ${RETVAL} -eq 1 ]; then
echo "bigcouch is not running!"
fi
RETVAL=1
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
echo "BigCouch (pid $i) is running..."
if which curl &>/dev/null; then
curl localhost:5984/_membership
fi
RETVAL=0
fi
done
if [ ${RETVAL} -eq 1 ]; then
echo "BigCouch is not running!"
fi
} }
case "$1" in case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (start|stop|status)"
RETVAL=1
prepare)
prpeare
;;
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (prpeare|start|stop|restart|status)"
RETVAL=1
esac esac
exit ${RETVAL} exit ${RETVAL}


+ 50
- 69
system/sbin/kazoo-ecallmgr View File

@ -23,33 +23,34 @@ fi
export NAME_ARG="-name ${NAME}" export NAME_ARG="-name ${NAME}"
start() {
cd ${HOME}
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
RETVAL=1
return
fi
prepare() {
mkdir -p /tmp/erl_pipes/${NAME} mkdir -p /tmp/erl_pipes/${NAME}
chown -R ${USER} /tmp/erl_pipes/${NAME} chown -R ${USER} /tmp/erl_pipes/${NAME}
mkdir -p /var/log/kazoo mkdir -p /var/log/kazoo
chown -R ${USER} /var/log/kazoo chown -R ${USER} /var/log/kazoo
chown -R ${USER} /opt/kazoo /opt/kazoo/.* chown -R ${USER} /opt/kazoo /opt/kazoo/.*
}
start() {
cd ${HOME} cd ${HOME}
if sudo -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then
echo "Kazoo ${NAME} is already running!"
RETVAL=1
return
fi
export CODE_LOADING_MODE=interactive export CODE_LOADING_MODE=interactive
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} $@
exec "$@"
else else
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
exec sudo -u ${USER} "$@"
fi fi
RETVAL=$?
WAIT_TIME=0
until su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1 || [ ${WAIT_TIME} -eq 4 ]; do
sleep $(( WAIT_TIME++ ))
done
if ! su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start Kazoo ${NAME}!"
RETVAL=1 RETVAL=1
fi fi
} }
@ -57,9 +58,10 @@ start() {
stop() { stop() {
cd ${HOME} cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} stop" ${USER}
sudo -u ${USER} ${BIN_FILE} stop
if su -s /bin/bash -c "${BIN_FILE} pid" ${USER} > /dev/null 2>&1; then
if sudo -u ${USER} ${BIN_FILE} pid > /dev/null 2>&1; then
echo "Failed to stop Kazoo ${NAME}!"
RETVAL=1 RETVAL=1
fi fi
} }
@ -72,89 +74,71 @@ restart() {
status() { status() {
cd ${HOME} cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} eval 'kz_nodes:status().'" ${USER} | sed \$d
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
sudo -u ${USER} ${BIN_FILE} eval 'kz_nodes:status().' | sed \$d
RETVAL=$?
} }
connect() { connect() {
cd ${HOME} cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
export COOKIE_ARG="-setcookie ${COOKIE}" export COOKIE_ARG="-setcookie ${COOKIE}"
su -s /bin/bash -c "${BIN_FILE} remote_console" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
sudo -u ${USER} ${BIN_FILE} remote_console
RETVAL=$?
} }
attach() { attach() {
cd ${HOME} cd ${HOME}
su -s /bin/bash -c "${BIN_FILE} attach" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
echo "WARNING: You are now directly attached to the running ${NAME} Erlang node."
echo " It is safer to use: $0 connect"
sudo -u ${USER} ${BIN_FILE} attach
RETVAL=$?
} }
ping() { ping() {
cd ${HOME} cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
export COOKIE_ARG="-setcookie ${COOKIE}" export COOKIE_ARG="-setcookie ${COOKIE}"
su -s /bin/bash -c "${BIN_FILE} ping" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
sudo -u ${USER} ${BIN_FILE} ping
RETVAL=$?
} }
pid() { pid() {
cd ${HOME} cd ${HOME}
COOKIE=`su -s /bin/bash -c "${BIN_FILE} eval 'erlang:get_cookie()'" ${USER}`
COOKIE=`sudo -u ${USER} ${BIN_FILE} eval 'erlang:get_cookie()'`
export COOKIE_ARG="-setcookie ${COOKIE}" export COOKIE_ARG="-setcookie ${COOKIE}"
su -s /bin/bash -c "${BIN_FILE} pid" ${USER}
if [ $? != 0 ]; then
(>&2 echo "${NAME} is not running!")
RETVAL=1
fi
}
foreground() {
cd ${HOME}
export CODE_LOADING_MODE=interactive
su -s /bin/bash -c "${BIN_FILE} foreground" ${USER}
sudo -u ${USER} ${BIN_FILE} pid
RETVAL=$?
} }
case "$1" in case "$1" in
prepare)
prpeare
;;
start) start)
start "start" start "start"
;;
;;
foreground)
start "foreground"
;;
stop) stop)
stop stop
;;
status)
status
;;
;;
restart) restart)
restart restart
;;
;;
status)
status
;;
connect) connect)
connect connect
;;
;;
attach) attach)
attach attach
;; ;;
@ -164,12 +148,9 @@ case "$1" in
pid) pid)
pid pid
;; ;;
foreground)
foreground
;;
*) *)
echo "Usage: $0 (start|stop|restart|status|connect|attach|ping|pid|foreground)"
echo "Usage: $0 (prpeare|start|foreground|stop|restart|status|connect|attach|ping|pid)"
RETVAL=1 RETVAL=1
esac esac
exit ${RETVAL}
exit ${RETVAL}

+ 55
- 13
system/sbin/kazoo-freeswitch View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
if [ -f /etc/default/freeswitch ]; then if [ -f /etc/default/freeswitch ]; then
. /etc/default/freeswitch
. /etc/default/freeswitch
fi fi
if [ -f /etc/sysconfig/freeswitch ]; then if [ -f /etc/sysconfig/freeswitch ]; then
@ -18,21 +18,38 @@ if [ -z "${FREESWITCH_ARGS}" ]; then
FREESWITCH_ARGS="-nonat -conf ${CFG_FILE} -db /var/lib/kazoo-freeswitch/db -log /var/log/freeswitch -cache /var/lib/kazoo-freeswitch/cache -sounds /var/lib/kazoo-freeswitch/sounds -storage /var/lib/kazoo-freeswitch/storage" FREESWITCH_ARGS="-nonat -conf ${CFG_FILE} -db /var/lib/kazoo-freeswitch/db -log /var/log/freeswitch -cache /var/lib/kazoo-freeswitch/cache -sounds /var/lib/kazoo-freeswitch/sounds -storage /var/lib/kazoo-freeswitch/storage"
fi fi
start() {
mkdir ${HOME}
chown -R ${USER} ${HOME}
prepare() {
mkdir ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/freeswitch mkdir -p /var/log/freeswitch
chown -R ${USER} /var/log/freeswitch chown -R ${USER} /var/log/freeswitch
mkdir -p /var/lib/kazoo-freeswitch/{db,cache,sounds,storage} mkdir -p /var/lib/kazoo-freeswitch/{db,cache,sounds,storage}
chown -R ${USER} /var/lib/kazoo-freeswitch chown -R ${USER} /var/lib/kazoo-freeswitch
}
start() {
cd ${HOME} cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} $@
if fs_cli -x 'status' > /dev/null 2>&1; then
echo "FreeSWITCH is already running!"
RETVAL=1
return
fi
/usr/bin/epmd -daemon
set -- ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else else
exec su -s /bin/bash -c "exec ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} $@" ${USER}
exec sudo -u ${USER} "$@"
fi fi
RETVAL=$? RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start FreeSWITCH!"
RETVAL=1
fi
} }
stop() { stop() {
@ -43,19 +60,34 @@ stop() {
} }
status() { status() {
fs_cli -x 'status'
fs_cli -x 'erlang status'
fs_cli -x 'status' && fs_cli -x 'erlang status'
RETVAL=$? RETVAL=$?
} }
restart() {
stop
start
}
pause() {
fs_cli -x 'fsctl pause'
}
resume() {
fs_cli -x 'fsctl resume'
}
case "$1" in case "$1" in
prepare)
prepare
;;
start) start)
shift shift
start "-ncwait $@"
start "-ncwait" $@
;; ;;
foreground) foreground)
shift shift
start "$@"
start $@
;; ;;
stop) stop)
stop stop
@ -63,9 +95,19 @@ case "$1" in
status) status)
status status
;; ;;
restart)
restart
;;
pause)
pause
;;
resume)
resume
;;
*) *)
echo "Usage: freeswitch {start|stop|status}"
echo "Usage: freeswitch {prepare|start|foreground|stop|restart|status|pause|resume}"
RETVAL=1 RETVAL=1
;; ;;
esac esac
exit ${RETVAL}
exit ${RETVAL}

+ 58
- 48
system/sbin/kazoo-haproxy View File

@ -15,37 +15,41 @@ PID_FILE=${HAPROXY_PID:-/var/run/haproxy/kazoo-haproxy.pid}
BIN_FILE=${HAPROXY_BIN:-/usr/sbin/haproxy} BIN_FILE=${HAPROXY_BIN:-/usr/sbin/haproxy}
export HOME=${HAPROXY_HOME:-/var/lib/haproxy} export HOME=${HAPROXY_HOME:-/var/lib/haproxy}
check() {
/usr/sbin/haproxy -c -V -f ${CFG_FILE} ${OPTIONS}
prepare() {
mkdir -p /var/run/haproxy
chown -R ${USER} /var/run/haproxy
mkdir -p /var/log/haproxy
chown -R ${USER} /var/log/haproxy
touch ${PID_FILE}
chown ${USER} ${PID_FILE}
} }
start() { start() {
/usr/sbin/haproxy -c -q -f ${CFG_FILE} ${OPTIONS}
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with haproxy check."
RETVAL=1
cd ${HOME}
check_config
if [ ${RETVAL} -ne 0 ]; then
return return
fi fi
if echo "show stat" | nc -U /tmp/haproxy.sock > /dev/null 2>&1; then if echo "show stat" | nc -U /tmp/haproxy.sock > /dev/null 2>&1; then
echo "HAProxy is already running!" echo "HAProxy is already running!"
RETVAL=1 RETVAL=1
return return
fi fi
mkdir -p /var/run/haproxy
chown -R ${USER} /var/run/haproxy
mkdir -p /var/log/haproxy
chown -R ${USER} /var/log/haproxy
touch ${PID_FILE}
chown ${USER} ${PID_FILE}
cd ${HOME}
set -- ${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} "$@"
if [ "$(whoami)" == "${USER}" ]; then if [ "$(whoami)" == "${USER}" ]; then
exec "${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} $@"
exec "$@"
else else
exec su -s /bin/bash -c "${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} $@" ${USER}
exec sudo -u ${USER} "$@"
fi fi
RETVAL=$? RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start HAProxy!"
RETVAL=1
fi
} }
stop() { stop() {
@ -54,37 +58,23 @@ stop() {
} }
restart() { restart() {
/usr/sbin/haproxy -c -q -f ${CFG_FILE} ${OPTIONS}
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with haproxy check."
RETVAL=1
check_config
if [ ${RETVAL} -ne 0 ]; then
return return
fi fi
stop stop
start start
} }
reload() {
/usr/sbin/haproxy -c -q -f ${CFG_FILE} ${OPTIONS}
if [ $? -ne 0 ]; then
echo "Errors in configuration file, check with haproxy check."
RETVAL=1
return
fi
${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} -sf $(cat ${PID_FILE}) $@
retval=$?
echo
return $retval
}
status() { status() {
local STATS="pxname svname qcur qmax scur smax slim stot bin bout dreq dresp ereq econ eresp wretr wredis status weight act bck chkfail chdown lastchg downtime qlimit pid iid sid throttle lbtot tracked type rate rate_lim rate_max check_status check_code check_duration hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx hrsp_other hanafail req_rate req_rate_max req_tot cli_abrt srv_abrt" local STATS="pxname svname qcur qmax scur smax slim stot bin bout dreq dresp ereq econ eresp wretr wredis status weight act bck chkfail chdown lastchg downtime qlimit pid iid sid throttle lbtot tracked type rate rate_lim rate_max check_status check_code check_duration hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx hrsp_other hanafail req_rate req_rate_max req_tot cli_abrt srv_abrt"
local TABLE_HEADER="Host|25 Backend|15 Status Active Rate 1xx 2xx 3xx 4xx 5xx Ping" local TABLE_HEADER="Host|25 Backend|15 Status Active Rate 1xx 2xx 3xx 4xx 5xx Ping"
local TABLE_VARS="svname|25 pxname|15 status scur req_rate hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx check_duration" local TABLE_VARS="svname|25 pxname|15 status scur req_rate hrsp_1xx hrsp_2xx hrsp_3xx hrsp_4xx hrsp_5xx check_duration"
if ! echo "show stat" | nc -U /tmp/haproxy.sock > /dev/null 2>&1; then if ! echo "show stat" | nc -U /tmp/haproxy.sock > /dev/null 2>&1; then
echo "Unable to connect to haproxy, ensure it is running!"
echo "Unable to connect to HAProxy, ensure it is running!"
RETVAL=1 RETVAL=1
return 1
return
fi fi
echo -n "|" echo -n "|"
for HEADER in $TABLE_HEADER; do for HEADER in $TABLE_HEADER; do
@ -131,35 +121,55 @@ status() {
done done
} }
restart() {
stop
start
reload() {
check_config
if [ ${RETVAL} -ne 0 ]; then
return
fi
${BIN_FILE} -f ${CFG_FILE} -p ${PID_FILE} ${OPTIONS} -sf $(cat ${PID_FILE}) $@
RETVAL=$?
}
check_config() {
/usr/sbin/haproxy -c -V -f ${CFG_FILE} ${OPTIONS}
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "ERROR: Invalid/incorrect configuration file!"
fi
} }
case "$1" in case "$1" in
prepare)
prepare
;;
start) start)
shift shift
start "-D $@" start "-D $@"
;; ;;
stop)
stop
;;
restart|reload)
restart
;;
foreground) foreground)
shift shift
start "$@" start "$@"
;; ;;
check)
check
stop)
stop
;;
restart)
restart
;; ;;
status) status)
status status
;; ;;
reload)
reload
;;
check)
check_config
;;
*) *)
echo $"Usage: $0 {start|stop|restart|foreground|reload|check|status}"
echo $"Usage: $0 {prepare|start|foreground|stop|restart|status|reload|check}"
RETVAL=1 RETVAL=1
esac esac
exit ${RETVAL}
exit ${RETVAL}

+ 53
- 35
system/sbin/kazoo-kamailio View File

@ -13,7 +13,7 @@ USER=${KAMAILIO_USER:-kamailio}
GROUP=${KAMAILIO_GROUP:-kamailio} GROUP=${KAMAILIO_GROUP:-kamailio}
BIN_FILE=${KAMAILIO_BIN:-/usr/sbin/kamailio} BIN_FILE=${KAMAILIO_BIN:-/usr/sbin/kamailio}
CFG_FILE=${KAMAILIO_CONFIG:-/etc/kazoo/kamailio/kamailio.cfg} CFG_FILE=${KAMAILIO_CONFIG:-/etc/kazoo/kamailio/kamailio.cfg}
PID_FILE=/var/run/kazoo-kamailio/kamailio.pid
PID_FILE=${KAMAILIO_PID:-/var/run/kazoo-kamailio/kamailio.pid}
export HOME=${KAMAILIO_HOME:-/var/run/kamailio} export HOME=${KAMAILIO_HOME:-/var/run/kamailio}
OPTIONS="-P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS}" OPTIONS="-P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS}"
@ -26,43 +26,31 @@ if test "$DUMP_CORE" = "yes" ; then
ulimit -c unlimited ulimit -c unlimited
fi fi
# Do not start kamailio if fork=no is set in the config file
# otherwise the boot process will just stop
check_fork ()
{
if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFG_FILE; then
echo "Not starting Kamailio: fork=no specified in config file"
exit 1
fi
}
check_kamailio_config ()
{
local ERRORS=$($BIN_FILE -c 2>&1 > /dev/null)
RETVAL=$?
if [ "${RETVAL}" != '0' ]; then
echo "Not starting Kamailio: invalid configuration file!"
echo -e "\n${ERRORS}\n"
RETVAL=1
fi
}
start() {
check_kamailio_config
check_fork
prepare() {
mkdir -p /var/run/kazoo-kamailio mkdir -p /var/run/kazoo-kamailio
chown -R ${USER} /var/run/kazoo-kamailio chown -R ${USER} /var/run/kazoo-kamailio
mkdir -p /var/run/kamailio mkdir -p /var/run/kamailio
chown -R ${USER} /var/run/kamailio chown -R ${USER} /var/run/kamailio
}
start() {
cd ${HOME} cd ${HOME}
check_config
check_fork
set -- ${BIN_FILE} -f ${CFG_FILE} -P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS} "$@"
if [ "$(whoami)" == "${USER}" ]; then if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} -f ${CFG_FILE} -P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS} $@
exec "$@"
else else
exec su -s /bin/bash -c "${BIN_FILE} -f ${CFG_FILE} -P ${PID_FILE} -m ${SHM_MEMORY} -M ${PKG_MEMORY} -u ${USER} -g ${GROUP} ${EXTRA_OPTIONS} $@" ${USER}
exec sudo -u ${USER} "$@"
fi fi
RETVAL=$? RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start BigCouch!"
RETVAL=1
fi
} }
stop() { stop() {
@ -70,35 +58,65 @@ stop() {
RETVAL=$? RETVAL=$?
} }
restart() {
stop
start
}
status() { status() {
kamctl fifo ds_list kamctl fifo ds_list
RETVAL=$? RETVAL=$?
} }
# Do not start kamailio if fork=no is set in the config file
# otherwise the boot process will just stop
check_fork ()
{
if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFG_FILE; then
echo "WARNING: fork=no specified in config file"
exit 1
fi
}
check_config ()
{
local ERRORS=$($BIN_FILE -c -f ${CFG_FILE} 2>&1 > /dev/null)
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "ERROR: Invalid configuration file ${CFG_FILE}!"
echo -e "\n${ERRORS}\n"
else
echo "No errors found in ${CFG_FILE}"
fi
}
case "$1" in case "$1" in
prepare)
prepare
;;
start) start)
shift shift
start $@ start $@
;; ;;
foreground) foreground)
shift shift
start "-DD -E"
start -DD -E $@
;; ;;
stop) stop)
stop stop
;; ;;
check)
check_kamailio_config
restart)
restart
;; ;;
status) status)
status status
;; ;;
restart)
stop
start
check)
check_config
;; ;;
*) *)
echo $"Usage: $0 {start|stop|restart|status}"
echo $"Usage: $0 {prepare|start|foreground|stop|restart|status|check}"
RETVAL=1 RETVAL=1
esac esac


+ 25
- 7
system/sbin/kazoo-rabbitmq View File

@ -22,22 +22,40 @@ export RABBITMQ_CONFIG_FILE=/etc/kazoo/rabbitmq/rabbitmq
export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins
export RABBITMQ_NODENAME=kazoo-rabbitmq export RABBITMQ_NODENAME=kazoo-rabbitmq
start() {
prepare() {
mkdir -p ${HOME} mkdir -p ${HOME}
chown -R ${USER} ${HOME} chown -R ${USER} ${HOME}
mkdir -p /var/log/rabbitmq mkdir -p /var/log/rabbitmq
chown -R ${USER} /var/log/rabbitmq chown -R ${USER} /var/log/rabbitmq
}
start() {
cd ${HOME} cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE} $@
else
exec su -s /bin/bash -c "${BIN_FILE} $@" ${USER}
fi
if /usr/lib/rabbitmq/bin/rabbitmqctl status > /dev/null 2>&1; then
echo "RabbitMQ is already running!"
RETVAL=1
return
fi
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else
exec sudo -u ${USER} "$@"
fi
RETVAL=$? RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start RabbitMQ!"
RETVAL=1
fi
} }
case "$1" in case "$1" in
prepare)
prepare
;;
start) start)
shift shift
start "-detached $@" start "-detached $@"
@ -52,4 +70,4 @@ case "$1" in
;; ;;
esac esac
exit ${RETVAL}
exit ${RETVAL}

+ 6
- 1
system/systemd/kazoo-bigcouch.service View File

@ -4,9 +4,14 @@ After=syslog.target network.target
[Service] [Service]
Type=forking Type=forking
User=bigcouch
Group=daemon
WorkingDirectory=/srv WorkingDirectory=/srv
PermissionsStartOnly=true
ExecStartPre=/usr/sbin/kazoo-bigcouch prepare
ExecStart=/usr/sbin/kazoo-bigcouch start ExecStart=/usr/sbin/kazoo-bigcouch start
ExecStop=/usr/sbin/kazoo-bigcouch stop ExecStop=/usr/sbin/kazoo-bigcouch stop
Restart=on-abort
[Install] [Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

+ 7
- 2
system/systemd/kazoo-freeswitch.service View File

@ -4,12 +4,17 @@ After=syslog.target network.target
After=postgresql.service postgresql-9.3.service postgresql-9.4.service mysqld.service httpd.service After=postgresql.service postgresql-9.3.service postgresql-9.4.service mysqld.service httpd.service
[Service] [Service]
User=freeswitch
Group=daemon
WorkingDirectory=/var/run/kazoo-freeswitch
PermissionsStartOnly=true
# RuntimeDirectory is not yet supported in CentOS 7. A workaround is to use /etc/tmpfiles.d/freeswitch.conf # RuntimeDirectory is not yet supported in CentOS 7. A workaround is to use /etc/tmpfiles.d/freeswitch.conf
#RuntimeDirectory=/run/freeswitch #RuntimeDirectory=/run/freeswitch
#RuntimeDirectoryMode=0750 #RuntimeDirectoryMode=0750
WorkingDirectory=/run/freeswitch
ExecStartPre=/usr/sbin/kazoo-freeswitch prepare
ExecStart=/usr/sbin/kazoo-freeswitch foreground -nc -nf ExecStart=/usr/sbin/kazoo-freeswitch foreground -nc -nf
ExecReload=/usr/bin/kill -HUP $MAINPID ExecReload=/usr/bin/kill -HUP $MAINPID
Restart=on-abort
[Install] [Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

+ 8
- 3
system/systemd/kazoo-haproxy.service View File

@ -3,11 +3,16 @@ Description=HAProxy Load Balancer Configured for Kazoo
After=syslog.target network.target After=syslog.target network.target
[Service] [Service]
User=haproxy
Group=daemon
WorkingDirectory=/var/lib/haproxy
PermissionsStartOnly=true
PIDFile=/var/run/haproxy/kazoo-haproxy.pid
Environment=HAPROXY_BIN=/usr/sbin/haproxy-systemd-wrapper Environment=HAPROXY_BIN=/usr/sbin/haproxy-systemd-wrapper
Environment=HAPROXY_PID=/run/haproxy.pid
ExecStartPre=/usr/sbin/kazoo-haproxy prepare
ExecStart=/usr/sbin/kazoo-haproxy foreground ExecStart=/usr/sbin/kazoo-haproxy foreground
ExecReload=/bin/kill -USR2 $MAINPID ExecReload=/bin/kill -USR2 $MAINPID
Restart=on-abort
[Install] [Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

+ 6
- 0
system/systemd/kazoo-kamailio.service View File

@ -3,6 +3,12 @@ Description=Kamailio (OpenSER) - the Open Source SIP Server Configured for Kazoo
After=syslog.target network.target After=syslog.target network.target
[Service] [Service]
User=kamailio
Group=daemon
WorkingDirectory=/var/run/kamailio
PermissionsStartOnly=true
PIDFile=/var/run/kazoo-kamailio/kamailio.pid
ExecStartPre=/usr/sbin/kazoo-kamailio prepare
ExecStart=/usr/sbin/kazoo-kamailio foreground ExecStart=/usr/sbin/kazoo-kamailio foreground
ExecReload=/usr/bin/kill -HUP $MAINPID ExecReload=/usr/bin/kill -HUP $MAINPID
Restart=on-abort Restart=on-abort


+ 5
- 0
system/systemd/kazoo-rabbitmq.service View File

@ -4,9 +4,14 @@ After=syslog.target network.target
[Service] [Service]
Type=notify Type=notify
User=rabbitmq
Group=daemon
WorkingDirectory=/var/lib/rabbitmq WorkingDirectory=/var/lib/rabbitmq
PermissionsStartOnly=true
ExecStartPre=/usr/sbin/kazoo-rabbitmq prepare
ExecStart=/usr/sbin/kazoo-rabbitmq start ExecStart=/usr/sbin/kazoo-rabbitmq start
ExecStop=/usr/sbin/kazoo-rabbitmq stop ExecStop=/usr/sbin/kazoo-rabbitmq stop
Restart=on-abort
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

Loading…
Cancel
Save