87 lines
2.6 KiB
Bash
87 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
|
|
if [[ (! -z "${VARNISH_DAEMON_USER}" ) && ( "${VARNISH_DAEMON_USER}" != "root" ) ]]; then
|
|
useradd -r -s /bin/false $VARNISH_DAEMON_USER
|
|
if [[ ! -z "${VARNISH_DAEMON_USER_UID}" ]]; then
|
|
usermod -u $VARNISH_DAEMON_USER_UID $VARNISH_DAEMON_USER
|
|
fi
|
|
if [[ ! -z "${VARNISH_DAEMON_USER_GID}" ]]; then
|
|
groupmod -g $VARNISH_DAEMON_USER_GID $VARNISH_DAEMON_USER
|
|
fi
|
|
fi
|
|
|
|
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
|
|
chown -R $(id -u ${VARNISH_DAEMON_USER}):$(id -g ${VARNISH_DAEMON_USER}) /var/lib/varnish
|
|
setcap 'cap_net_bind_service=+ep' /usr/sbin/varnishd
|
|
fi
|
|
|
|
if [[ (! -z "${HOSTNAMESTOCHECK}" ) ]]; then
|
|
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
|
|
runuser -u ${VARNISH_DAEMON_USER} -- varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
|
|
else
|
|
varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
|
|
fi
|
|
|
|
declare -A HOSTNAMESIP
|
|
IFS="," read -a HOSTNAMESTOCHECKARRAY <<< "${HOSTNAMESTOCHECK}"
|
|
for HOST in "${HOSTNAMESTOCHECKARRAY[@]}"
|
|
do
|
|
HOSTIP=`dig +short $HOST`
|
|
HOSTIP=`echo "$HOSTIP" | tr ' ' '\n' | sort | tr '\n' ' '`
|
|
HOSTNAMESIP[$HOST]=$HOSTIP
|
|
echo IP FOR $HOST $HOSTIP
|
|
done
|
|
|
|
sleep 10
|
|
|
|
while true
|
|
do
|
|
IPCHANGED=0
|
|
for HOST in "${HOSTNAMESTOCHECKARRAY[@]}"
|
|
do
|
|
NEWHOSTIP=`dig +short $HOST`
|
|
NEWHOSTIP=`echo "$NEWHOSTIP" | tr ' ' '\n' | sort | tr '\n' ' '`
|
|
OLDHOSTIP=${HOSTNAMESIP[$HOST]}
|
|
if [ "$NEWHOSTIP" != "$OLDHOSTIP" ]; then
|
|
if [ "$IPCHANGED" = 0 ]; then
|
|
IPCHANGED=1
|
|
fi
|
|
HOSTNAMESIP[$HOST]=$NEWHOSTIP
|
|
echo NEW IP FOR $HOST $NEWHOSTIP
|
|
fi
|
|
done
|
|
if [ "$IPCHANGED" = 1 ]; then
|
|
if [[ `ps -acx|grep varnishd|wc -l` > 0 ]]; then
|
|
echo "RELOADING VARNISH"
|
|
TIME=$(date +%s)
|
|
varnishadm -S /run/secrets/varnish_password -T localhost:6082 vcl.load varnish_$TIME /etc/varnish/default.vcl
|
|
varnishadm -S /run/secrets/varnish_password -T localhost:6082 vcl.use varnish_$TIME
|
|
else
|
|
echo "RESTARTING VARNISH"
|
|
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
|
|
runuser -u ${VARNISH_DAEMON_USER} -- varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
|
|
else
|
|
varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
|
|
fi
|
|
fi
|
|
fi
|
|
sleep 10
|
|
done
|
|
|
|
else
|
|
|
|
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
|
|
runuser -u ${VARNISH_DAEMON_USER} -- varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@"
|
|
else
|
|
varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@"
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|