This commit is contained in:
2023-07-04 00:19:33 -05:00
parent 23082b4429
commit d38a0be75d
3 changed files with 52 additions and 30 deletions

View File

@@ -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

View File

@@ -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'

View File

@@ -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