From e2f51e0fb1e11a656272d53580f7596a621a56d1 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Mon, 3 Jul 2023 19:16:53 -0500 Subject: [PATCH] update --- defaults.inc | 45 +++++------------------- defaults.local.inc | 20 ++++++++--- nodemgmt-scripts.sh | 83 ++------------------------------------------- 3 files changed, 26 insertions(+), 122 deletions(-) diff --git a/defaults.inc b/defaults.inc index a1c3d790..a33b1044 100755 --- a/defaults.inc +++ b/defaults.inc @@ -18,6 +18,8 @@ declare -i errtime NM_SRVCOPT=(start stop restart reload enable disable) +echo "1: ${NM_HOSTS['MYSQL']}" + if [ -f ${FOLDER}/defaults.local.inc ]; then source ${FOLDER}/defaults.local.inc @@ -35,7 +37,6 @@ if [ -f ${FOLDER}/defaults.local.inc ]; then PW_HOSTS=(${PWHOSTS}) WM_HOSTS=(${WMHOSTS}) - NODE_SERVICES=(${NODESERVICES}) MYSQL_SERVICES_CHECK=(${MYSQLSERVICES_CHECK}) WEB_SERVICES_CHECK=(${WEBSERVICES_CHECK}) LB_SERVICES_CHECK=(${LBSERVICES_CHECK}) @@ -54,11 +55,18 @@ if [ -f ${FOLDER}/defaults.local.inc ]; then WEB_SINGLESRVR_SERVICES=(${WEB_SINGLESRVRSERVICES}) WEB_SINGLESRVR_DOCKERS=(${WEB_SINGLESRVRDOCKERS}) + + for ntype in "${NODE_TYPES[@]}"; do + ${NM_HOSTS[${ntype}]}=(${NM_HOSTS[${ntype}]}) + done unset IFS fi +echo "2: ${NM_HOSTS['MYSQL']}" + + GET-CHECKCERT-DOMAINS(){ declare -A CHECKCERT_DOMAINS @@ -80,41 +88,6 @@ DISP_HEADER(){ echo echo -e "${idsCL[LightGreen]} NodeMgmt - Node Monitoring & Management${idsCL[Default]} ${idsCL[DarkGray]}(ver-${VERS})${idsCL[Default]}" DIVIDER . lightGreen - if [ "$2" = true ]; then - echo -e " Node hostname : ${idsST[Bold]}${idsCL[LightCyan]}${NODE_HOSTNAME}${idsCL[Default]}${idsST[Reset]}" - if [ -z ${LOCAL_SERVICES+x} ]; then SERVICES=$( IFS=$','; echo "${NODE_SERVICES[*]}" ) - else SERVICES=$( IFS=$','; echo "${LOCAL_SERVICES[*]}" ) - fi - IFS=,; SERVICES2=(${SERVICES}); unset IFS - for srvc in "${SERVICES2[@]}"; do - c=0; cw=18; spc='' - spc1=${cw}-${#NM_SERVICES[${srvc}]} - until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done - echo -en " ${NM_SERVICES[${srvc}]}$spc: " - if [ $(pgrep ${srvc} | wc -l) -gt "0" ]; then - echo -e "${idsCL[Green]}Running${idsCL[Default]}" - else echo -e "${idsCL[Red]}Not Running${idsCL[Default]}" - fi - done - DIVIDER - if [ $(ls -1 ${FOLDER}/*.lastrun 2>/dev/null | wc -l) != 0 ];then - echo -e "${idsST[Bold]}Lastrun Items:${idsST[Reset]}" - for lastrun in ${FOLDER}/*.lastrun ; do - IFS='/'; lastrun_item=(${lastrun}); unset IFS - lastrun_item=$(echo ${lastrun_item[4]} | sed "s/.lastrun//g") - lastrun_item=$(echo ${lastrun_item} | sed "s/-/ /g") - lastrun_date=$(stat -c %y ${lastrun}) - IFS=' '; lastrun_date=(${lastrun_date}); unset IFS - IFS='.'; lastrun_time=(${lastrun_date[1]}); unset IFS - c=0; cw=18; spc='' - spc1=${cw}-${#lastrun_item} - until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done - echo -e " ${lastrun_item~}${spc}: ${lastrun_date[0]} ${lastrun_time}" - done - - DIVIDER - fi - fi echo } diff --git a/defaults.local.inc b/defaults.local.inc index 66600233..7a2d3d90 100755 --- a/defaults.local.inc +++ b/defaults.local.inc @@ -1,6 +1,7 @@ # NODETYPES=WEB NODETYPES=LB,LPD,MM,MYSQL,NC,PW,WPD,WM,WEB + MYSQLHOSTS=10.10.1.51,10.10.1.52 WEBHOSTS=10.10.1.121,10.10.1.122 LBHOSTS=10.10.10.81,10.10.10.82 @@ -8,15 +9,24 @@ NCHOSTS=10.10.10.42 WPDHOSTS=100.100.55.2,100.100.55.3,10.10.1.28 LPDHOSTS=10.10.10.10,10.10.10.11,10.2.1.2 MMHOSTS=10.10.1.24 -PRIMARYHOST=10.10.1.51 -MYSQLMANAGER=10.10.10.50 +NODEMANAGER=10.10.10.50 GLHOSTS=10.10.1.41,10.10.1.42,10.10.1.121,10.10.1.122 PWHOSTS=10.10.0.240 WMHOSTS=100.100.55.5 -NODESERVICES="mariadb,mysql,nginx,gitea,pdnsadmin,pdnsadmin.socket,haproxy,keepalived,maxscale,postgresql,web,php5.6-fpm,php7.2-fpm,php7.3-fpm" -NODESERVICES="${NODESERVICES},php7.4-fpm,syncthing,pdns,proxysql,radarr,sonarr,jackett,qbittorrent,snap.tautulli.tautulli,ombi,glusterd" -NODESERVICES="${NODESERVICES},redis-server,mosquitto,tailscaled,cmon,monitor-power,monitor-temp" +NODEMANAGER=10.10.10.50 + +declare -A NM_HOSTS +NM_HOSTS['MYSQL']=10.10.1.51,10.10.1.52 +NM_HOSTS['WEB']=10.10.1.121,10.10.1.122 +NM_HOSTS['LB']=10.10.10.81,10.10.10.82 +NM_HOSTS['NC']=10.10.10.42 +NM_HOSTS['WPD']=100.100.55.2,100.100.55.3,10.10.1.28 +NM_HOSTS['LPD']=10.10.10.10,10.10.10.11,10.2.1.2 +NM_HOSTS['MM']=10.10.1.24 +# NM_HOSTS['GL']=10.10.1.41,10.10.1.42,10.10.1.121,10.10.1.122 +NM_HOSTS['PW']=10.10.0.240 +NM_HOSTS['WM']=100.100.55.5 MYSQLSERVICES_CHECK=mariadb,proxysql,keepalived WEBSERVICES_CHECK=nginx,php5.6-fpm,php7.2-fpm,php7.3-fpm,php7.4-fpm,php8.2-fpm,gitea,keepalived diff --git a/nodemgmt-scripts.sh b/nodemgmt-scripts.sh index 8dc3e851..e5365e8b 100755 --- a/nodemgmt-scripts.sh +++ b/nodemgmt-scripts.sh @@ -282,83 +282,6 @@ SET-PERMISSIONS(){ fi } -SERVICES(){ - while : - do - echo - echo -e "${idsCL[Green]}Node Services${idsCL[Default]}" - DIVIDER true - s=1 - for srvc in "${NODE_SERVICES[@]}" - do - echo " [${s}] ${NM_SERVICES[${srvc}]}" - s=`expr $s + 1` - done - echo - if [ -z $action ] || [ "${action}" = "gui" ]; then - echo " [B] Back" - fi - echo " [Q] Quit" - echo - echo -e -n "${idsCL[LightYellow]}Please select a service from above:${idsCL[Default]} " - read -n 1 selsrvc - selsrvc=`expr $selsrvc - 1` - echo - if [ -z ${NODE_SERVICES[${selsrvc}]} ] && [ "${selsrvc}" != "Q" ] && [ "${selsrvc}" != "q" ] && [ "${selsrvc}" != "B" ] && [ "${selsrvc}" != "b" ]; then - echo "Thats an invaild option," - echo "please select a valid option only." - sleep 1 - SERVICES - exit 0 - elif [ "${selsrvc}" = "Q" ] || [ "${selsrvc}" = "q" ]; then - exit 0 - elif [ "${selsrvc}" = "B" ] || [ "${selsrvc}" = "b" ]; then - GUI - else - echo - echo -e "${idsCL[Green]}Node Service Selected: '${idsST[Bold]}${NM_SERVICES[${NODE_SERVICES[${selsrvc}]}]}${idsST[Reset]}${idsCL[Green]}'${idsCL[Default]}" - DIVIDER true - s=1 - for srvcopt in "${NM_SRVCOPT[@]}"; do - echo " [${s}] ${srvcopt~}" - s=`expr $s + 1` - done - echo - if [ -z $action ] || [ "${action}" = "gui" ]; then - echo " [B] Back" - fi - echo " [Q] Quit" - echo - echo -e -n "${idsCL[LightYellow]}Please select an action to run from above:${idsCL[Default]} " - read -n 1 selsrvcopt - selsrvcopt=`expr $selsrvcopt - 1` - echo - if [ -z ${NM_SRVCOPT[${selsrvcopt}]} ] && [ "${selsrvcopt}" != "Q" ] && [ "${selsrvcopt}" != "q" ] && [ "${selsrvcopt}" != "B" ] && [ "${selsrvcopt}" != "b" ]; then - echo "Thats an invaild option," - echo "please select a valid option only." - sleep 1 - SERVICES - exit 0 - elif [ "${selsrvc}" = "Q" ] || [ "${selsrvc}" = "q" ]; then - exit 0 - elif [ "${selsrvc}" = "B" ] || [ "${selsrvc}" = "b" ]; then - SERVICES - exit 0 - else - echo - SERVICE ${NODE_SERVICES[${selsrvc}]} ${NM_SRVCOPT[${selsrvcopt}]} - echo - if [ -z $action ] || [ "${action}" = "gui" ]; then - DIVIDER - ENTER2CONTINUE - fi - break - fi - fi - done - -} - SERVICE(){ TSI=$(/sbin/ip link | grep tailscale0) MIP=$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1) @@ -847,7 +770,7 @@ NODEUPDATE() { declare -i cw; declare -i spc1; declare -i c echo -e "${idsCL[LightGreen]}Updating All Nodes${idsCL[Default]}" echo -e "${idsCL[LightGreen]}-------------------------------------------${idsCL[Default]}" - nip=${MYSQLMANAGER} + nip=${NODEMANAGER} if [[ $(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1) == *"${nip}"* ]]; then nip='localhost' fi @@ -1193,7 +1116,7 @@ UPDATEPUSHOVERINFO(){ GUI(){ - DISP_HEADER true true + DISP_HEADER true false while : do echo " [1] Node Status" @@ -1342,7 +1265,6 @@ GUI(){ else SERVICE ${2} ${3} ${4} fi;; - services) SERVICES;; singleservercheck) SINGLE_SERVER_SERVICE_CHECK ${2} ${3};; haproxy-config) HAPROXY-CONFIG;; keepalive-config) KEEPALIVE-CONFIG;; @@ -1368,7 +1290,6 @@ GUI(){ echo -e " ${idsCL[Yellow]}nightlyrenew${idsCL[Default]} - Renewal of SSL Certs, designed for cron tasks" echo -e " ${idsCL[Yellow]}run${idsCL[Default]} - Run a command on all Nodes" echo -e " ${idsCL[Yellow]}service${idsCL[Default]} [service] [action] - Manages services accross like nodes" - echo -e " ${idsCL[Yellow]}services${idsCL[Default]} - (UI) Manage services accross all nodes" echo -e " ${idsCL[Yellow]}set-permissions${idsCL[Default]} - Set specific permissions preset for app folders" echo -e " ${idsCL[Yellow]}siteinfo${idsCL[Default]} - View detailed nginx site info" echo -e " ${idsCL[Yellow]}status${idsCL[Default]} - Check Status of systems"