diff --git a/nodemgmt-scripts.sh b/nodemgmt-scripts.sh index 9432c510..aec88198 100755 --- a/nodemgmt-scripts.sh +++ b/nodemgmt-scripts.sh @@ -727,9 +727,12 @@ HAPROXY-CONFIG() { } SINGLE_SERVER_SERVICE_CHECK(){ - if [ "${1}" = "web" ]; then + servicestocheck=${1}_SINGLESRVR_SERVICES + dockerstocheck=${1}_SINGLESRVR_DOCKERS + hosts=${1}_HOSTS + + if [ "${!servicestocheck}" != "" ] || [ "${!dockerstocheck}" != "" ]; then local_ips=$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | awk '/inet/ {print $2}' | cut -d'/' -f1); - # local_ips=$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1); local_ip=$(/sbin/ip -o -4 addr list eth0 |grep 255 | awk '{print $4}' | cut -d/ -f1) if [[ ${local_ips} = *10.10.1.120* ]]; then if [ ! -f /mnt/web-data/mounted ]; then @@ -737,13 +740,14 @@ SINGLE_SERVER_SERVICE_CHECK(){ sleep 5s fi if [ -f /mnt/web-data/mounted ]; then - for stc in "${WEB_SINGLESRVR_SERVICES[@]}"; do + for stc in "${!servicestocheck[@]}"; do + echo "stc: $stc" if [ "$(systemctl is-active ${stc}.service)" != "active" ]; then SENDNOTICE "Node-Balancing Notice" "Starting ${stc} on ${NM_NODETYPES["WEB"]}-Node${local_ip: -1} (${local_ip}), stopping on the other Nodes" echo "$(date) - ${NM_NODETYPES["WEB"]}-Node${local_ip: -1} - Starting ${stc} on ${local_ip}, stopping on the other Nodes" >> ${LOGFILE} [ "${stc}" = "pdnsadmin" ] && stc="pdnsadmin.socket pdnsadmin.service" - for nip in "${WEB_HOSTS[@]}"; do + for nip in "${!hosts[@]}"; do if [[ "${local_ip}" != *"${nip}"* ]]; then ssh root@${nip} /bin/systemctl stop ${stc} fi @@ -752,16 +756,17 @@ SINGLE_SERVER_SERVICE_CHECK(){ /bin/systemctl start ${stc} & fi done - for docker in "${WEB_SINGLESRVR_DOCKERS[@]}"; do - for nip in "${WEB_HOSTS[@]}"; do + for docker in "${!dockerstocheck[@]}"; do + echo "docker: $docker" + for nip in "${!hosts[@]}"; do if [[ "${local_ip}" = *"${nip}"* ]]; then [ ! "$(/usr/bin/docker ps -q -f name=${docker})" ] && /usr/bin/docker start ${docker} & >/dev/null 2>&1 [ "${docker}" == "authelia" ] && [ ! "$(/usr/bin/docker ps -q -f name=${docker}_redis)" ] && /usr/bin/docker start ${docker}_redis & >/dev/null 2>&1 - # [ ! "$(/usr/bin/docker ps -q -f name=${docker})" ] && echo "starting local" || echo "already started local" + [ ! "$(/usr/bin/docker ps -q -f name=${docker})" ] && echo "starting local" || echo "already started local" else [ "$(ssh root@${nip} /usr/bin/docker ps -q -f name=${docker})" ] && ssh root@${nip} /usr/bin/docker stop ${docker} & >/dev/null 2>&1 [ "${docker}" == "authelia" ] && [ "$(ssh root@${nip} /usr/bin/docker ps -q -f name=${docker}_redis)" ] && ssh root@${nip} /usr/bin/docker stop ${docker}_redis & >/dev/null 2>&1 - # [ "$(ssh root@${nip} /usr/bin/docker ps -q -f name=${docker})" ] && echo "stopping on $nip" || echo "already stopped on $nip" + [ "$(ssh root@${nip} /usr/bin/docker ps -q -f name=${docker})" ] && echo "stopping on $nip" || echo "already stopped on $nip" fi done done @@ -769,11 +774,11 @@ SINGLE_SERVER_SERVICE_CHECK(){ else - for stc in "${WEB_SINGLESRVR_SERVICES[@]}"; do + for stc in "${!servicestocheck[@]}"; do [ "${stc}" = "pdnsadmin" ] && stc="pdnsadmin.socket pdnsadmin.service" /bin/systemctl stop ${stc} & done - for docker in "${WEB_SINGLESRVR_DOCKERS[@]}"; do + for docker in "${!dockerstocheck[@]}"; do # echo "DOCKER: $docker" [ "$(/usr/bin/docker ps -q -f name=${docker})" ] && /usr/bin/docker stop ${docker} & >/dev/null 2>&1 # [ "$(/usr/bin/docker ps -q -f name=${docker})" ] && echo "stopping" || echo "already stopped"