UPDATE
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user