From d38a0be75dfec264bea5891e9c687aa0c73473ec Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Tue, 4 Jul 2023 00:19:33 -0500 Subject: [PATCH] UPDATE --- defaults.inc | 2 +- defaults.local.inc | 70 +++++++++++++++++++++++++++++---------------- nodemgmt-scripts.sh | 10 +++---- 3 files changed, 52 insertions(+), 30 deletions(-) diff --git a/defaults.inc b/defaults.inc index 67e79bc7..a002cc5b 100755 --- a/defaults.inc +++ b/defaults.inc @@ -23,7 +23,7 @@ if [ -f ${FOLDER}/defaults.local.inc ]; then declare -A NM_SERVICES_CHECK declare -A NM_DOCKERS_CHECK declare -A NM_REPL_CHECK - declare -A NGINX_PATHS + declare -A NM_REPL_NGINX_PATHS declare -A NM_HOSTNAMES declare -A NM_NODETYPES declare -A NM_SERVICE_DESC diff --git a/defaults.local.inc b/defaults.local.inc index 66362bb0..7345cd60 100755 --- a/defaults.local.inc +++ b/defaults.local.inc @@ -1,3 +1,5 @@ +//DEFINE THE ADDRESS FOR THE HOST THAT WILL RUN PRIMARY NODE MANAGEMENT TASKS +//----------------------------------------------------------------------------------------------------------------------------------------- NM_NODEMANAGER=10.10.10.50 # declare -A NM_NEW_ARRAY @@ -11,17 +13,21 @@ NM_NODEMANAGER=10.10.10.50 # NM_NEW_ARRAY['WM']= # NM_NEW_ARRAY['WEB']= +//DEFIINE NODE TYPES OF THEIR ASSOCIATES HOSTS TO MONITOR (THIS LIST ALSO DEFINES THEIR ORDER IN LISTS; NODE TYPES AND HOSTS) (comma seperated) +//----------------------------------------------------------------------------------------------------------------------------------------- # NM_HOSTS['GL']=10.10.1.41,10.10.1.42,10.10.1.121,10.10.1.122 -# NM_HOSTS['LB']=10.10.10.81,10.10.10.82 -# NM_HOSTS['LPD']=10.10.10.10,10.10.10.11,10.2.1.2 +NM_HOSTS['LB']=10.10.10.81,10.10.10.82 +NM_HOSTS['LPD']=10.10.10.10,10.10.10.11,10.2.1.2 NM_HOSTS['MM']=10.10.1.24 -# NM_HOSTS['MYSQL']=10.10.1.51,10.10.1.52 -# NM_HOSTS['NC']=10.10.10.42 -# NM_HOSTS['PW']=10.10.0.240 -# NM_HOSTS['WPD']=100.100.55.2,100.100.55.3,10.10.1.28 -# NM_HOSTS['WM']=100.100.55.5 -# NM_HOSTS['WEB']=10.10.1.121,10.10.1.122 +NM_HOSTS['MYSQL']=10.10.1.51,10.10.1.52 +NM_HOSTS['NC']=10.10.10.42 +NM_HOSTS['PW']=10.10.0.240 +NM_HOSTS['WPD']=100.100.55.2,100.100.55.3,10.10.1.28 +NM_HOSTS['WM']=100.100.55.5 +NM_HOSTS['WEB']=10.10.1.121,10.10.1.122 +//DEFINES SERVICES TO MONITOR ON EACH HOST PART OF THE NODE TYPE (comma seperated) +//----------------------------------------------------------------------------------------------------------------------------------------- NM_SERVICES_CHECK['LB']=nginx,haproxy,keepalived NM_SERVICES_CHECK['LPD']=pdns,nginx,mariadb,pdnsadmin,pdnsadmin.socket,keepalived NM_SERVICES_CHECK['MM']=bazarr,radarr,sonarr,prowlarr,qbittorrent,snap.tautulli.tautulli,ombi,nginx,php8.2-fpm @@ -32,6 +38,8 @@ NM_SERVICES_CHECK['WPD']=pdns,nginx,mariadb,pdnsadmin,pdnsadmin.socket,proxysql, NM_SERVICES_CHECK['WM']=nginx,tailscaled NM_SERVICES_CHECK['WEB']=nginx,php5.6-fpm,php7.2-fpm,php7.3-fpm,php7.4-fpm,php8.2-fpm,gitea,keepalived +//DEFINES DOCKERS TO MONITOR ON EACH HOST PART OF THE NODE TYPE (comma seperated) +//----------------------------------------------------------------------------------------------------------------------------------------- NM_DOCKERS_CHECK['LB']= NM_DOCKERS_CHECK['LPD']= NM_DOCKERS_CHECK['MM']= @@ -42,6 +50,8 @@ NM_DOCKERS_CHECK['WPD']= NM_DOCKERS_CHECK['WM']=uptime-kuma NM_DOCKERS_CHECK['WEB']=phpmyadmin,phppgadmin,vaultwarden,heimdall,authelia +//DEFINES REPLICATED ITEMS FROM BELOW TO MONITOR FOR REPLICATION (comma seperated) +//----------------------------------------------------------------------------------------------------------------------------------------- NM_REPL_CHECK['LB']=lb-data NM_REPL_CHECK['LPD']= NM_REPL_CHECK['MM']= @@ -52,6 +62,8 @@ NM_REPL_CHECK['WPD']= NM_REPL_CHECK['WM']= NM_REPL_CHECK['WEB']=web-data +//DEFINES FOLDERS TO BE MONITORED FOR REPLICATION +//----------------------------------------------------------------------------------------------------------------------------------------- NM_REPL_CHECK_LOC['apache']='/etc/apache2' NM_REPL_CHECK_LOC['nginx']='/mnt/web-data/nginx' NM_REPL_CHECK_LOC['nginxproxy']='/opt/nginx-proxy' @@ -68,6 +80,8 @@ NM_REPL_CHECK_LOC['pdnsa']='/mnt/web-data/powerdns-admin' NM_REPL_CHECK_LOC['nextcloud-data']='/mnt/Nextcloud-Data' NM_REPL_CHECK_LOC['nextcloud-php']='/etc/php' +//DEFINES DESCRIPTIONS FOR REPLICATED FOLDERS +//----------------------------------------------------------------------------------------------------------------------------------------- NM_REPL_DESC['apache']='Apache Settings' NM_REPL_DESC['nginx']='NGINX Settings' NM_REPL_DESC['nginxproxy']='NGINX-Proxy Settings' @@ -84,6 +98,13 @@ NM_REPL_DESC['pdnsa']='PowerDNS Admin' NM_REPL_DESC['nextcloud-data']='Nextcloud Data' NM_REPL_DESC['nextcloud-php']='Nextcloud PHP Settings' +//DEFINES NGINX PATHS FOR NODE TYPES (ONLY REQUIRED IF PATH IS REPLICATED BETWEEN HOSTS AND IS NEEDED TO BE VERIFIED BEFORE CERTAIN TASKS) +//----------------------------------------------------------------------------------------------------------------------------------------- +NM_REPL_NGINX_PATHS['LB']='/opt/lb-data/nginx' +NM_REPL_NGINX_PATHS['WEB']='/mnt/web-data/nginx' + +//DEFINES SERVICES TO BE MONITORED FOR RUNNING ONLY ON THE HOST CURRENTLY IN PRIMARY CONTROL OF THE NODE TYPE (comma seperated) +//----------------------------------------------------------------------------------------------------------------------------------------- NM_SINGLESRVR_SERVICES['LB']= NM_SINGLESRVR_SERVICES['LPD']= NM_SINGLESRVR_SERVICES['MM']= @@ -94,6 +115,8 @@ NM_SINGLESRVR_SERVICES['WPD']= NM_SINGLESRVR_SERVICES['WM']= NM_SINGLESRVR_SERVICES['WEB']=gitea +//DEFINES DOCKERS TO BE MONITORED FOR RUNNING ONLY ON THE HOST CURRENTLY IN PRIMARY CONTROL OF THE NODE TYPE (comma seperated) +//----------------------------------------------------------------------------------------------------------------------------------------- NM_SINGLESRVR_DOCKERS['LB']= NM_SINGLESRVR_DOCKERS['LPD']= NM_SINGLESRVR_DOCKERS['MM']= @@ -104,6 +127,8 @@ NM_SINGLESRVR_DOCKERS['WPD']= NM_SINGLESRVR_DOCKERS['WM']= NM_SINGLESRVR_DOCKERS['WEB']=vaultwarden,heimdall,authelia +//DEFINES THE KEEPALIVE IP ADDRESS FOR THE NODE TYPE WHEN USING SINGLE SERVER MONITORING (USED TO VERIFY PRIMARY NODE) +//----------------------------------------------------------------------------------------------------------------------------------------- NM_SINGLESRVR_IP['LB']= NM_SINGLESRVR_IP['LPD']= NM_SINGLESRVR_IP['MM']= @@ -114,18 +139,8 @@ NM_SINGLESRVR_IP['WPD']= NM_SINGLESRVR_IP['WM']= NM_SINGLESRVR_IP['WEB']=10.10.1.20 - -WEB_SINGLESRVRSERVICES=gitea -WEB_SINGLESRVRDOCKERS=vaultwarden,heimdall,authelia -WEB_SINGLESRVR_IP=10.10.1.20 - -LB_NGINX_SITES='/opt/lb-data/nginx/sites-enabled' -WEB_NGINX_SITES='/mnt/web-data/nginx/sites-enabled' - - -NGINX_PATHS['LB']='/opt/lb-data/nginx' -NGINX_PATHS['WEB']='/mnt/web-data/nginx' - +//DEFINES HOST DESCRIPTIONS FOR CONFIGURED HOSTS +//----------------------------------------------------------------------------------------------------------------------------------------- NM_HOSTNAMES['10.10.1.121']='Webserver-Node1' NM_HOSTNAMES['10.10.1.122']='Webserver-Node2' NM_HOSTNAMES['10.10.1.24']='Media-Manager' @@ -144,17 +159,21 @@ NM_HOSTNAMES['100.100.55.3']='WAN-DNS-Node2 (West)' NM_HOSTNAMES['10.10.1.28']='WAN-DNS-Node3 (Home)' NM_HOSTNAMES['100.100.55.5']='WAN-Monitor-Node1' +//DEFINES NODE TYPE NODE NAMES, WILL APPEND WITH `-NODE#` #=NODE NUMBER IN ORDERED SEQUENCE +//----------------------------------------------------------------------------------------------------------------------------------------- NM_NODETYPES['MYSQL']='MySQL' NM_NODETYPES['LB']='LoadBalance' NM_NODETYPES['WEB']='Webserver' NM_NODETYPES['NC']='Nextcloud' -NM_NODETYPES['WPD']='WAN PowerDNS' -NM_NODETYPES['LPD']='LAN PowerDNS' -NM_NODETYPES['MM']='Media Manager' +NM_NODETYPES['WPD']='WAN-DNS' +NM_NODETYPES['LPD']='LAN-DNS' +NM_NODETYPES['MM']='Media-Manager' NM_NODETYPES['PW']='PowerWall' NM_NODETYPES['WM']='WAN-Monitor' NM_NODETYPES['GL']='Gluster' +// +//----------------------------------------------------------------------------------------------------------------------------------------- NM_SERVICE_DESC['mysql']='MySQL DB Server' NM_SERVICE_DESC['mariadb']='MariaDB (MySQL DB Server)' NM_SERVICE_DESC['postgresql']='PostgreSQL' @@ -195,7 +214,8 @@ NM_SERVICE_DESC['tailscaled']='Tailscale P2P VPN' NM_SERVICE_DESC['monitor-power']='Server Power Monitor' NM_SERVICE_DESC['monitor-temp']='Server Temp Monitor' - +// +//----------------------------------------------------------------------------------------------------------------------------------------- NM_DOCKER_DESC['authelia']='Authelia' NM_DOCKER_DESC['phpmyadmin']='phpMyAdmin' NM_DOCKER_DESC['phppgadmin']='phpPgAdmin' @@ -204,6 +224,8 @@ NM_DOCKER_DESC['heimdall']='Heimdall' NM_DOCKER_DESC['uptime-kuma']='Uptime-Kuma' NM_DOCKER_DESC['nginx-proxy_manager']='Nginx Proxy Manager' +// +//----------------------------------------------------------------------------------------------------------------------------------------- NM_DOCKER_COMPOSE_LOC['authelia']='/mnt/web-data/authelia' NM_DOCKER_COMPOSE_LOC['phpmyadmin']='/mnt/web-data/phpmyadmin' NM_DOCKER_COMPOSE_LOC['phppgadmin']='/mnt/web-data/phppgadmin' diff --git a/nodemgmt-scripts.sh b/nodemgmt-scripts.sh index 213b73ba..4b86bca1 100755 --- a/nodemgmt-scripts.sh +++ b/nodemgmt-scripts.sh @@ -440,7 +440,7 @@ SERVICE(){ if [ "${1}" = "nginx" ]; then - [ "${NODE_TYPE}" != "" ] && [ "${NGINX_PATHS[${NODE_TYPE}]}" != "" ] && + [ "${NODE_TYPE}" != "" ] && [ "${NM_REPL_NGINX_PATHS[${NODE_TYPE}]}" != "" ] && if [ "${2}" = "restart" ] || [ "${2}" = "reload" ]; then if [ "${3}" != "ns" ]; then @@ -452,18 +452,18 @@ SERVICE(){ else PH_CMD="ssh root@${!NT_HOST}" fi - ${PH_CMD} touch ${NGINX_PATHS[${NODE_TYPE}]}/test.repl - # ${PH_CMD} "echo -e \"Service ${1} ${2}\" >> ${NGINX_PATHS[${NODE_TYPE}]}/test.repl" + ${PH_CMD} touch ${NM_REPL_NGINX_PATHS[${NODE_TYPE}]}/test.repl + # ${PH_CMD} "echo -e \"Service ${1} ${2}\" >> ${NM_REPL_NGINX_PATHS[${NODE_TYPE}]}/test.repl" for nip in "${!NT_HOSTS}"; do checkhost=$(CHECK_HOST ${nip}) if [ "${checkhost}" != "false" ] && [ "${nip}" != "${!NT_HOST}" ]; then checked=false until [ "${checked}" = "true" ]; do - checked="`${PH_CMD} ssh root@${nip} [ -f ${NGINX_PATHS[${NODE_TYPE}]}/test.repl ] && [ $(expr $(date +%s) - $(stat -L --format %Y ${NGINX_PATHS[${NODE_TYPE}]}/test.repl)) -le 90 ] && echo true`" + checked="`${PH_CMD} ssh root@${nip} [ -f ${NM_REPL_NGINX_PATHS[${NODE_TYPE}]}/test.repl ] && [ $(expr $(date +%s) - $(stat -L --format %Y ${NM_REPL_NGINX_PATHS[${NODE_TYPE}]}/test.repl)) -le 90 ] && echo true`" done fi done - ${PH_CMD} rm -f ${NGINX_PATHS[${NODE_TYPE}]}/test.repl + ${PH_CMD} rm -f ${NM_REPL_NGINX_PATHS[${NODE_TYPE}]}/test.repl fi fi