From 4190bbc70e796e36293ea203646209c6335c37e6 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Thu, 7 Feb 2019 10:05:36 -0600 Subject: [PATCH] Update nodemgmt-scripts.sh --- nodemgmt-scripts.sh | 75 ++++++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 22 deletions(-) diff --git a/nodemgmt-scripts.sh b/nodemgmt-scripts.sh index 517e3a28..327f53e8 100755 --- a/nodemgmt-scripts.sh +++ b/nodemgmt-scripts.sh @@ -66,7 +66,34 @@ STATUS() { if [[ $(/sbin/ip -o -4 addr list ens192 | awk '{print $4}' | cut -d/ -f1) != *"${nip}"* ]]; then echo -e "Node hostname: ${idsST[Bold]}${idsCL[LightCyan]}iDS-Node${nid} (${nip})${idsST[Reset]}${idsCL[Default]}" DIVIDER false green - + for rcheck in "${!REPL_CHECKS[@]}" + do + rm -f ${FOLDER}/test.repl + daterun=`date +%Y-%m-%d-%H-%M` + echo -e "iDS-Node${nid} (${nip})\n${daterun}" > ${FOLDER}/test.repl + yes | cp -rfH ${FOLDER}/test.repl ${REPL_CHECKS[${rcheck}]}/test.repl + declare -i cw; declare -i spc1; declare -i c + c=0; cw=20; spc='' + spc1=${cw}-${#SUBJECT} + until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done + echo -en "${REPL_DESC[${rcheck}]}${spc}: " + checked=false + until [ "${checked}" = "" ]; do + checked=`ssh root@${nip} "cat ${REPL_CHECKS[${rcheck}]}/test.repl" | diff - ${REPL_CHECKS[${rcheck}]}/test.repl` + if [ "`date +%s`" -gt "$timeout" ]; then + if [ "${STATUS_CHECK_EMAIL}" != "" ]; then + echo "Timeout occurred in waiting for replication between nodes." | mail -s "Status-Check" ${STATUS_CHECK_EMAIL} + fi + timeout=true + break + fi + done + if [ "${timeout}" = "true" ]; then + echo -e "${idsCL[Red]}Timeout${idsCL[Default]}" + else + echo -e "${idsCL[Green]}Good${idsCL[Default]}" + fi + done fi echo nid=`expr $nid + 1` @@ -145,10 +172,10 @@ NEWCERT(){ if [ -f /etc/letsencrypt/live/${MAIN_CERT}/cert.pem ]; then do_with_root chown -R root:letsencrypt /etc/letsencrypt do_with_root chmod -R 6775 /etc/letsencrypt - # rm -f /opt/idssys/nodemgmt/cert-request.lastrun + # rm -f ${FOLDER}/cert-request.lastrun # daterun=`date +%Y-%m-%d-%H-%M` - # echo -e "${NEW_CERT}\n${daterun}" > /opt/idssys/nodemgmt/cert-request.lastrun - # yes | cp -rfH /opt/idssys/nodemgmt/cert-request.lastrun /etc/letsencrypt/cert-request.lastrun + # echo -e "${NEW_CERT}\n${daterun}" > ${FOLDER}/cert-request.lastrun + # yes | cp -rfH ${FOLDER}/cert-request.lastrun /etc/letsencrypt/cert-request.lastrun # DIVIDER true # echo -en "${idsCL[LightYellow]}Waiting for certificate replication between the nodes... ${idsCL[Default]}" # checked=false @@ -197,10 +224,10 @@ NEWCERT(){ CERTRENEW(){ echo -e "${idsCL[LightGreen]}Renewing Certificates...${idsCL[Default]}" echo - do_with_root $CERT_DAEMON renew --webroot -w /var/www/html 2>&1 | tee /opt/idssys/nodemgmt/cert-renewal.lastrun - do_with_root chown -R root:letsencrypt /etc/letsencrypt 2>&1 | tee -a /opt/idssys/nodemgmt/cert-renewal.lastrun - do_with_root chmod -R 6775 /etc/letsencrypt 2>&1 | tee -a /opt/idssys/nodemgmt/cert-renewal.lastrun - yes | cp -rfH /opt/idssys/nodemgmt/cert-renewal.lastrun /etc/letsencrypt/cert-renewal.lastrun + do_with_root $CERT_DAEMON renew --webroot -w /var/www/html 2>&1 | tee ${FOLDER}/cert-renewal.lastrun + do_with_root chown -R root:letsencrypt /etc/letsencrypt 2>&1 | tee -a ${FOLDER}/cert-renewal.lastrun + do_with_root chmod -R 6775 /etc/letsencrypt 2>&1 | tee -a ${FOLDER}/cert-renewal.lastrun + yes | cp -rfH ${FOLDER}/cert-renewal.lastrun /etc/letsencrypt/cert-renewal.lastrun daterun=`date +%Y-%m-%d-%H-%M` echo -e "${daterun}" >> /etc/letsencrypt/cert-renewal.lastrun DIVIDER true @@ -221,7 +248,9 @@ CERTRENEW(){ if [ "`date +%s`" -gt "$timeout" ]; then echo -e "${idsCL[Red]}Timeout${idsCL[Default]}" timeout=true - echo "Timeout occurred in waiting for replication between nodes." | mail -s "Cert-Renewal" ${STATUS_CHECK_EMAIL} + if [ "${STATUS_CHECK_EMAIL}" != "" ]; then + echo "Timeout occurred in waiting for replication between nodes." | mail -s "Status-Check" ${STATUS_CHECK_EMAIL} + fi break fi done @@ -229,7 +258,7 @@ CERTRENEW(){ echo -e "${idsCL[Green]}Completed${idsCL[Default]}" fi echo - SERVICE nginx reload 2>&1 | tee -a /opt/idssys/nodemgmt/cert-renewal.lastrun + SERVICE nginx reload 2>&1 | tee -a ${FOLDER}/cert-renewal.lastrun echo -e "${idsCL[LightGreen]}The certificates have been renewed.${idsCL[Default]}" echo "" if [ -z $action ] || [ "${action}" = "gui" ]; then @@ -238,11 +267,11 @@ CERTRENEW(){ fi } NIGHTLYRENEW(){ - rm -f /opt/idssys/nodemgmt/cert-renewal.lastrun - do_with_root $CERT_DAEMON renew --webroot -w /var/www/html &>> /opt/idssys/nodemgmt/cert-renewal.lastrun - do_with_root chown -R root:letsencrypt /etc/letsencrypt &>> /opt/idssys/nodemgmt/cert-renewal.lastrun - do_with_root chmod -R 6775 /etc/letsencrypt &>> /opt/idssys/nodemgmt/cert-renewal.lastrun - yes | cp -rfH /opt/idssys/nodemgmt/cert-renewal.lastrun /etc/letsencrypt/cert-renewal.lastrun + rm -f ${FOLDER}/cert-renewal.lastrun + do_with_root $CERT_DAEMON renew --webroot -w /var/www/html &>> ${FOLDER}/cert-renewal.lastrun + do_with_root chown -R root:letsencrypt /etc/letsencrypt &>> ${FOLDER}/cert-renewal.lastrun + do_with_root chmod -R 6775 /etc/letsencrypt &>> ${FOLDER}/cert-renewal.lastrun + yes | cp -rfH ${FOLDER}/cert-renewal.lastrun /etc/letsencrypt/cert-renewal.lastrun daterun=`date +%Y-%m-%d-%H-%M` echo -e "${daterun}" >> /etc/letsencrypt/cert-renewal.lastrun checked=false @@ -258,12 +287,12 @@ NIGHTLYRENEW(){ fi done checked=${tchecked} - if [ "`date +%s`" -gt "$timeout" ]; then + if [ "`date +%s`" -gt "$timeout" ] && [ "${STATUS_CHECK_EMAIL}" != "" ]; then echo "Timeout occurred in waiting for replication between nodes." | mail -s "Nightly-Cert-Renewal" ${STATUS_CHECK_EMAIL} break fi done - SERVICE nginx reload &>> /opt/idssys/nodemgmt/cert-renewal.lastrun + SERVICE nginx reload &>> ${FOLDER}/cert-renewal.lastrun } LISTCERTS(){ @@ -666,11 +695,11 @@ NEWSITE(){ NEWCERT ${NEW_SITE} fi - rm -f /opt/idssys/nodemgmt/new-site.lastrun + rm -f ${FOLDER}/new-site.lastrun daterun=`date +%Y-%m-%d-%H-%M` - echo -e "${NEW_SITE}\n${daterun}" > /opt/idssys/nodemgmt/new-site.lastrun - yes | cp -rfH /opt/idssys/nodemgmt/new-site.lastrun /etc/nginx/new-site.lastrun - yes | cp -rfH /opt/idssys/nodemgmt/new-site.lastrun /var/www/new-site.lastrun + echo -e "${NEW_SITE}\n${daterun}" > ${FOLDER}/new-site.lastrun + yes | cp -rfH ${FOLDER}/new-site.lastrun /etc/nginx/new-site.lastrun + yes | cp -rfH ${FOLDER}/new-site.lastrun /var/www/new-site.lastrun daterun=`date +%Y-%m-%d-%H-%M` echo -e "${daterun}" >> /etc/nginx/new-site.lastrun DIVIDER true @@ -692,7 +721,9 @@ NEWSITE(){ if [ "`date +%s`" -gt "$timeout" ]; then echo -e "${idsCL[Red]}Timeout${idsCL[Default]}" timeout=true - echo "Timeout occurred in waiting for replication between nodes." | mail -s "New-Site" ${STATUS_CHECK_EMAIL} + if [ "${STATUS_CHECK_EMAIL}" != "" ]; then + echo "Timeout occurred in waiting for replication between nodes." | mail -s "Status-Check" ${STATUS_CHECK_EMAIL} + fi break fi done