Files
proxmox/scripts/fix-remaining-hardcoded-ips.sh

255 lines
19 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Fix remaining hardcoded 192.168.11.x - skip when already in ${VAR:-ip} fallback
# PRUNE: Excludes scripts/archive (historical; not in operational runpath)
# Usage: ./scripts/fix-remaining-hardcoded-ips.sh [--include-archive]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# Perl: replace IP only when NOT inside ${VAR:-ip} (i.e. not followed by })
# (?<!\d) = not preceded by digit (avoid ${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-192.168.11.100}}}}}} matching .10)
# (?!\d) = not followed by digit
# (?!\}) = not followed by } (already in fallback)
do_fix() {
perl -i -pe '
s/(?<!\d)(192\.168\.11\.10)(?!\d)(?!\})/\${PROXMOX_HOST_ML110:-$1}/g;
s/(?<!\d)(192\.168\.11\.11)(?!\d)(?!\})/\${PROXMOX_HOST_R630_01:-$1}/g;
s/(?<!\d)(192\.168\.11\.12)(?!\d)(?!\})/\${PROXMOX_HOST_R630_02:-$1}/g;
s/(?<!\d)(192\.168\.11\.1)(?!\d)(?!\})/\${NETWORK_GATEWAY:-$1}/g;
s/(?<!\d)(192\.168\.11\.20)(?!\d)(?!\})/\${IP_OMADA:-$1}/g;
s/(?<!\d)(192\.168\.11\.26)(?!\d)(?!\})/\${IP_NGINX_LEGACY:-$1}/g;
s/(?<!\d)(192\.168\.11\.37)(?!\d)(?!\})/\${IP_MIM_WEB:-$1}/g;
s/(?<!\d)(192\.168\.11\.44)(?!\d)(?!\})/\${ORDER_POSTGRES_PRIMARY:-$1}/g;
s/(?<!\d)(192\.168\.11\.45)(?!\d)(?!\})/\${ORDER_POSTGRES_REPLICA:-$1}/g;
s/(?<!\d)(192\.168\.11\.53)(?!\d)(?!\})/\${DB_HOST:-$1}/g;
s/(?<!\d)(192\.168\.11\.66)(?!\d)(?!\})/\${IP_FIREFLY:-$1}/g;
s/(?<!\d)(192\.168\.11\.67)(?!\d)(?!\})/\${IP_FIREFLY_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.69)(?!\d)(?!\})/\${IP_BLOCKSCOUT:-$1}/g;
s/(?<!\d)(192\.168\.11\.105)(?!\d)(?!\})/\${DBIS_POSTGRES_PRIMARY:-$1}/g;
s/(?<!\d)(192\.168\.11\.106)(?!\d)(?!\})/\${DBIS_POSTGRES_REPLICA:-$1}/g;
s/(?<!\d)(192\.168\.11\.125)(?!\d)(?!\})/\${DBIS_REDIS_IP:-$1}/g;
s/(?<!\d)(192\.168\.11\.130)(?!\d)(?!\})/\${IP_DBIS_FRONTEND:-$1}/g;
s/(?<!\d)(192\.168\.11\.140)(?!\d)(?!\})/\${IP_BLOCKSCOUT:-$1}/g;
s/(?<!\d)(192\.168\.11\.154)(?!\d)(?!\})/\${IP_BESU_SENTRY:-$1}/g;
s/(?<!\d)(192\.168\.11\.155)(?!\d)(?!\})/\${IP_DBIS_API:-$1}/g;
s/(?<!\d)(192\.168\.11\.156)(?!\d)(?!\})/\${IP_DBIS_API_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.166)(?!\d)(?!\})/\${IP_NPMPLUS_ETH0:-$1}/g;
s/(?<!\d)(192\.168\.11\.167)(?!\d)(?!\})/\${IP_NPMPLUS:-$1}/g;
s/(?<!\d)(192\.168\.11\.168)(?!\d)(?!\})/\${IP_NPMPLUS_SECONDARY:-$1}/g;
s/(?<!\d)(192\.168\.11\.211)(?!\d)(?!\})/\${RPC_CORE_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.221)(?!\d)(?!\})/\${RPC_PUBLIC_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.232)(?!\d)(?!\})/\${RPC_PRIVATE_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.240)(?!\d)(?!\})/\${RPC_THIRDWEB_PRIMARY:-$1}/g;
s/(?<!\d)(192\.168\.11\.250)(?!\d)(?!\})/\${RPC_ALLTRA_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.251)(?!\d)(?!\})/\${RPC_ALI_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.252)(?!\d)(?!\})/\${RPC_ALI_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.241)(?!\d)(?!\})/\${RPC_THIRDWEB_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.242)(?!\d)(?!\})/\${RPC_THIRDWEB_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.233)(?!\d)(?!\})/\${RPC_NODE_233:-$1}/g;
s/(?<!\d)(192\.168\.11\.234)(?!\d)(?!\})/\${RPC_NODE_234:-$1}/g;
s/(?<!\d)(192\.168\.11\.235)(?!\d)(?!\})/\${RPC_NODE_235:-$1}/g;
s/(?<!\d)(192\.168\.11\.236)(?!\d)(?!\})/\${RPC_NODE_236:-$1}/g;
s/(?<!\d)(192\.168\.11\.100)(?!\d)(?!\})/\${IP_VALIDATOR_0:-$1}/g;
s/(?<!\d)(192\.168\.11\.101)(?!\d)(?!\})/\${IP_VALIDATOR_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.102)(?!\d)(?!\})/\${IP_VALIDATOR_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.103)(?!\d)(?!\})/\${IP_VALIDATOR_3:-$1}/g;
s/(?<!\d)(192\.168\.11\.104)(?!\d)(?!\})/\${IP_VALIDATOR_4:-$1}/g;
s/(?<!\d)(192\.168\.11\.150)(?!\d)(?!\})/\${IP_BESU_RPC_0:-$1}/g;
s/(?<!\d)(192\.168\.11\.151)(?!\d)(?!\})/\${IP_BESU_RPC_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.152)(?!\d)(?!\})/\${IP_BESU_RPC_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.153)(?!\d)(?!\})/\${IP_BESU_RPC_3:-$1}/g;
s/(?<!\d)(192\.168\.11\.35)(?!\d)(?!\})/\${IP_SERVICE_35:-$1}/g;
s/(?<!\d)(192\.168\.11\.36)(?!\d)(?!\})/\${IP_SERVICE_36:-$1}/g;
s/(?<!\d)(192\.168\.11\.50)(?!\d)(?!\})/\${IP_SERVICE_50:-$1}/g;
s/(?<!\d)(192\.168\.11\.51)(?!\d)(?!\})/\${IP_SERVICE_51:-$1}/g;
s/(?<!\d)(192\.168\.11\.21)(?!\d)(?!\})/\${IP_SERVICE_21:-$1}/g;
s/(?<!\d)(192\.168\.11\.14)(?!\d)(?!\})/\${IP_DEVICE_14:-$1}/g;
s/(?<!\d)(192\.168\.11\.13)(?!\d)(?!\})/\${IP_SERVICE_13:-$1}/g;
s/(?<!\d)(192\.168\.11\.0)(?!\d)(?!\})/\${NETWORK_192_168_11_0:-$1}/g;
s/(?<!\d)(192\.168\.11\.38)(?!\d)(?!\})/\${ORDER_REDIS_IP:-$1}/g;
s/(?<!\d)(192\.168\.11\.201)(?!\d)(?!\})/\${IP_VAULT_PHOENIX_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.8)(?!\d)(?!\})/\${IP_OMADA_ALT:-$1}/g;
s/(?<!\d)(192\.168\.11\.19)(?!\d)(?!\})/\${IP_MIM4U:-$1}/g;
s/(?<!\d)(192\.168\.11\.23)(?!\d)(?!\})/\${IP_SERVICE_23:-$1}/g;
s/(?<!\d)(192\.168\.11\.28)(?!\d)(?!\})/\${IP_CCIP_MONITOR:-$1}/g;
s/(?<!\d)(192\.168\.11\.30)(?!\d)(?!\})/\${IP_SERVICE_30:-$1}/g;
s/(?<!\d)(192\.168\.11\.90)(?!\d)(?!\})/\${IP_RPC_90:-$1}/g;
s/(?<!\d)(192\.168\.11\.120)(?!\d)(?!\})/\${DBIS_REDIS_IP:-$1}/g;
s/(?<!\d)(192\.168\.11\.175)(?!\d)(?!\})/\${IP_FIREFLY_ALLTRA_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.176)(?!\d)(?!\})/\${IP_FIREFLY_ALLTRA_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.177)(?!\d)(?!\})/\${IP_CACTI_ALLTRA:-$1}/g;
s/(?<!\d)(192\.168\.11\.178)(?!\d)(?!\})/\${IP_FABRIC_ALLTRA:-$1}/g;
s/(?<!\d)(192\.168\.11\.179)(?!\d)(?!\})/\${IP_INDY_ALLTRA:-$1}/g;
s/(?<!\d)(192\.168\.11\.258)(?!\d)(?!\})/\${RPC_PUTU_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.257)(?!\d)(?!\})/\${RPC_PUTU_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.256)(?!\d)(?!\})/\${RPC_LUIS_2:-$1}/g;
s/(?<!\d)(192\.168\.11\.255)(?!\d)(?!\})/\${RPC_LUIS_1:-$1}/g;
s/(?<!\d)(192\.168\.11\.254)(?!\d)(?!\})/\${RPC_ALI_2_ALT:-$1}/g;
s/(?<!\d)(192\.168\.11\.253)(?!\d)(?!\})/\${RPC_ALI_1_ALT:-$1}/g;
s/(?<!\d)(192\.168\.11\.248)(?!\d)(?!\})/\${IP_RPC_248:-$1}/g;
s/(?<!\d)(192\.168\.11\.247)(?!\d)(?!\})/\${IP_RPC_247:-$1}/g;
s/(?<!\d)(192\.168\.11\.246)(?!\d)(?!\})/\${IP_RPC_246:-$1}/g;
s/(?<!\d)(192\.168\.11\.245)(?!\d)(?!\})/\${IP_RPC_245:-$1}/g;
s/(?<!\d)(192\.168\.11\.244)(?!\d)(?!\})/\${IP_RPC_244:-$1}/g;
s/(?<!\d)(192\.168\.11\.243)(?!\d)(?!\})/\${RPC_THIRDWEB_3:-$1}/g;
s/(?<!\d)(192\.168\.11\.238)(?!\d)(?!\})/\${IP_RPC_238:-$1}/g;
s/(?<!\d)(192\.168\.11\.237)(?!\d)(?!\})/\${IP_RPC_237:-$1}/g;
s/(?<!\d)(192\.168\.11\.204)(?!\d)(?!\})/\${IP_SERVICE_204:-$1}/g;
s/(?<!\d)(192\.168\.11\.203)(?!\d)(?!\})/\${IP_SERVICE_203:-$1}/g;
s/(?<!\d)(192\.168\.11\.202)(?!\d)(?!\})/\${IP_SERVICE_202:-$1}/g;
s/(?<!\d)(192\.168\.11\.200)(?!\d)(?!\})/\${IP_SERVICE_200:-$1}/g;
s/(?<!\d)(192\.168\.11\.174)(?!\d)(?!\})/\${IP_SERVICE_174:-$1}/g;
s/(?<!\d)(192\.168\.11\.173)(?!\d)(?!\})/\${IP_SERVICE_173:-$1}/g;
s/(?<!\d)(192\.168\.11\.172)(?!\d)(?!\})/\${IP_SERVICE_172:-$1}/g;
s/(?<!\d)(192\.168\.11\.68)(?!\d)(?!\})/\${IP_INDY:-$1}/g;
s/(?<!\d)(192\.168\.11\.65)(?!\d)(?!\})/\${IP_FABRIC:-$1}/g;
s/(?<!\d)(192\.168\.11\.64)(?!\d)(?!\})/\${IP_CACTI:-$1}/g;
s/(?<!\d)(192\.168\.11\.58)(?!\d)(?!\})/\${IP_SERVICE_58:-$1}/g;
s/(?<!\d)(192\.168\.11\.57)(?!\d)(?!\})/\${IP_SERVICE_57:-$1}/g;
s/(?<!\d)(192\.168\.11\.56)(?!\d)(?!\})/\${IP_SERVICE_56:-$1}/g;
s/(?<!\d)(192\.168\.11\.55)(?!\d)(?!\})/\${IP_SERVICE_55:-$1}/g;
s/(?<!\d)(192\.168\.11\.54)(?!\d)(?!\})/\${IP_SERVICE_54:-$1}/g;
s/(?<!\d)(192\.168\.11\.52)(?!\d)(?!\})/\${IP_SERVICE_52:-$1}/g;
s/(?<!\d)(192\.168\.11\.49)(?!\d)(?!\})/\${IP_SERVICE_49:-$1}/g;
s/(?<!\d)(192\.168\.11\.48)(?!\d)(?!\})/\${IP_ORDER_OPENSEARCH:-$1}/g;
s/(?<!\d)(192\.168\.11\.47)(?!\d)(?!\})/\${IP_SERVICE_47:-$1}/g;
s/(?<!\d)(192\.168\.11\.46)(?!\d)(?!\})/\${ORDER_REDIS_REPLICA:-$1}/g;
s/(?<!\d)(192\.168\.11\.43)(?!\d)(?!\})/\${IP_SERVICE_43:-$1}/g;
s/(?<!\d)(192\.168\.11\.42)(?!\d)(?!\})/\${IP_SERVICE_42:-$1}/g;
s/(?<!\d)(192\.168\.11\.41)(?!\d)(?!\})/\${IP_SERVICE_41:-$1}/g;
s/(?<!\d)(192\.168\.11\.40)(?!\d)(?!\})/\${IP_SERVICE_40:-$1}/g;
s/(?<!\d)(192\.168\.11\.39)(?!\d)(?!\})/\${IP_ORDER_HAPROXY:-$1}/g;
s/(?<!\d)(192\.168\.11\.34)(?!\d)(?!\})/\${IP_SERVICE_34:-$1}/g;
s/(?<!\d)(192\.168\.11\.33)(?!\d)(?!\})/\${IP_SERVICE_33:-$1}/g;
s/(?<!\d)(192\.168\.11\.32)(?!\d)(?!\})/\${IP_SERVICE_32:-$1}/g;
s/(?<!\d)(192\.168\.11\.31)(?!\d)(?!\})/\${IP_SERVICE_31:-$1}/g;
s/(?<!\d)(192\.168\.11\.29)(?!\d)(?!\})/\${IP_SERVICE_29:-$1}/g;
s/(?<!\d)(192\.168\.11\.25)(?!\d)(?!\})/\${IP_SERVICE_25:-$1}/g;
s/(?<!\d)(192\.168\.11\.24)(?!\d)(?!\})/\${IP_SERVICE_24:-$1}/g;
s/(?<!\d)(192\.168\.11\.23)(?!\d)(?!\})/\${IP_SERVICE_23:-$1}/g;
s/(?<!\d)(192\.168\.11\.22)(?!\d)(?!\})/\${IP_SERVICE_22:-$1}/g;
s/(?<!\d)(192\.168\.11\.19)(?!\d)(?!\})/\${IP_SERVICE_19:-$1}/g;
s/(?<!\d)(192\.168\.11\.18)(?!\d)(?!\})/\${IP_SERVICE_18:-$1}/g;
s/(?<!\d)(192\.168\.11\.16)(?!\d)(?!\})/\${IP_SERVICE_16:-$1}/g;
s/(?<!\d)(192\.168\.11\.15)(?!\d)(?!\})/\${IP_SERVICE_15:-$1}/g;
s/(?<!\d)(192\.168\.11\.120)(?!\d)(?!\})/\${DBIS_REDIS_IP:-$1}/g;
s/(?<!\d)(192\.168\.11\.4)(?!\d)(?!\})/\${IP_SERVICE_4:-$1}/g;
' "$1" 2>/dev/null || true
}
# Ensure config has vars
CONF="${PROJECT_ROOT}/config/ip-addresses.conf"
for v in IP_OMADA IP_MIM_WEB DB_HOST IP_NPMPLUS_ETH0 RPC_ALLTRA_1 IP_DBIS_FRONTEND IP_BESU_SENTRY IP_DBIS_API IP_DBIS_API_2 IP_FIREFLY IP_FIREFLY_2; do
grep -q "^${v}=" "$CONF" 2>/dev/null || true
done
# Exclude archive unless --include-archive
INCLUDE_ARCHIVE=false
[[ "${1:-}" == "--include-archive" ]] && INCLUDE_ARCHIVE=true
FIND_OPTS=(-name "*.sh" -type f ! -name "*.bak")
$INCLUDE_ARCHIVE || FIND_OPTS+=(! -path "*/archive/*")
count=0
find "$PROJECT_ROOT/scripts" "${FIND_OPTS[@]}" 2>/dev/null | while read -r f; do
if grep -q "192\.168\.11\." "$f" 2>/dev/null; then
do_fix "$f"
count=$((count+1))
fi
done
echo "Processed scripts. Run again to catch any new occurrences."
_remaining=$(grep -r "192\.168\.11\." scripts --include="*.sh" 2>/dev/null | grep -v "\.bak" | grep -v '\${.*192\.168\.11\.')
$INCLUDE_ARCHIVE || _remaining=$(echo "$_remaining" | grep -v "scripts/archive")
remaining=$(echo "$_remaining" | wc -l)
echo "Lines with bare IP in scope (excl. fallbacks): ~$remaining"
# Second pass: additional IPs
REPLACE2() {
local f="$1"
sed -i \
-e "s/192\.168\.11\.252/\${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-192.168.11.252}}}}}}/g" \
-e "s/192\.168\.11\.251/\${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-192.168.11.251}}}}}}/g" \
-e "s/192\.168\.11\.242/\${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-192.168.11.242}}}}}}/g" \
-e "s/192\.168\.11\.241/\${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-192.168.11.241}}}}}}/g" \
-e "s/192\.168\.11\.236/\${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-192.168.11.236}}}}}}/g" \
-e "s/192\.168\.11\.235/\${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-192.168.11.235}}}}}}/g" \
-e "s/192\.168\.11\.234/\${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-192.168.11.234}}}}}}/g" \
-e "s/192\.168\.11\.233/\${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-192.168.11.233}}}}}}/g" \
-e "s/192\.168\.11\.104/\${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-192.168.11.104}}}}}/g" \
-e "s/192\.168\.11\.103/\${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-192.168.11.103}}}}}/g" \
-e "s/192\.168\.11\.102/\${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-192.168.11.102}}}}}/g" \
-e "s/192\.168\.11\.101/\${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-192.168.11.101}}}}}/g" \
-e "s/192\.168\.11\.100/\${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-192.168.11.100}}}}}/g" \
-e "s/192\.168\.11\.153/\${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-192.168.11.153}}}}}}/g" \
-e "s/192\.168\.11\.152/\${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-192.168.11.152}}}}}}/g" \
-e "s/192\.168\.11\.151/\${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-192.168.11.151}}}}}}/g" \
-e "s/192\.168\.11\.150/\${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-192.168.11.150}}}}}}/g" \
-e "s/192\.168\.11\.51/\${IP_SERVICE_51:-${IP_SERVICE_51:-${IP_SERVICE_51:-${IP_SERVICE_51:-${IP_SERVICE_51:-192.168.11.51}}}}}/g" \
-e "s/192\.168\.11\.50/\${IP_SERVICE_50:-${IP_SERVICE_50:-${IP_SERVICE_50:-${IP_SERVICE_50:-${IP_SERVICE_50:-192.168.11.50}}}}}/g" \
-e "s/192\.168\.11\.36/\${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-192.168.11.36}}}}}/g" \
-e "s/192\.168\.11\.35/\${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-192.168.11.35}}}}}/g" \
-e "s/192\.168\.11\.21/\${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-192.168.11.21}}}}}/g" \
-e "s/192\.168\.11\.14/\${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-192.168.11.14}}}}}/g" \
-e "s/192\.168\.11\.13/\${IP_SERVICE_13:-${IP_SERVICE_13:-192.168.11.13}}/g" \
-e "s/192\.168\.11\.258/\${RPC_PUTU_2:-192.168.11.204}/g" \
-e "s/192\.168\.11\.257/\${RPC_PUTU_1:-192.168.11.203}/g" \
-e "s/192\.168\.11\.256/\${RPC_LUIS_2:-192.168.11.202}/g" \
-e "s/192\.168\.11\.255/\${RPC_LUIS_1:-${RPC_LUIS_1:-${RPC_LUIS_1:-192.168.11.255}}}/g" \
-e "s/192\.168\.11\.254/\${RPC_ALI_2_ALT:-${RPC_ALI_2_ALT:-${RPC_ALI_2_ALT:-192.168.11.254}}}/g" \
-e "s/192\.168\.11\.253/\${RPC_ALI_1_ALT:-${RPC_ALI_1_ALT:-${RPC_ALI_1_ALT:-192.168.11.253}}}/g" \
-e "s/192\.168\.11\.248/\${IP_RPC_248:-${IP_RPC_248:-${IP_RPC_248:-192.168.11.248}}}/g" \
-e "s/192\.168\.11\.247/\${IP_RPC_247:-${IP_RPC_247:-${IP_RPC_247:-192.168.11.247}}}/g" \
-e "s/192\.168\.11\.246/\${IP_RPC_246:-${IP_RPC_246:-${IP_RPC_246:-192.168.11.246}}}/g" \
-e "s/192\.168\.11\.245/\${IP_RPC_245:-${IP_RPC_245:-${IP_RPC_245:-192.168.11.245}}}/g" \
-e "s/192\.168\.11\.244/\${IP_RPC_244:-${IP_RPC_244:-${IP_RPC_244:-192.168.11.244}}}/g" \
-e "s/192\.168\.11\.243/\${RPC_THIRDWEB_3:-${RPC_THIRDWEB_3:-${RPC_THIRDWEB_3:-192.168.11.243}}}/g" \
-e "s/192\.168\.11\.238/\${IP_RPC_238:-${IP_RPC_238:-${IP_RPC_238:-192.168.11.238}}}/g" \
-e "s/192\.168\.11\.237/\${IP_RPC_237:-${IP_RPC_237:-${IP_RPC_237:-192.168.11.237}}}/g" \
-e "s/192\.168\.11\.204/\${IP_SERVICE_204:-${IP_SERVICE_204:-192.168.11.204}}/g" \
-e "s/192\.168\.11\.203/\${IP_SERVICE_203:-${IP_SERVICE_203:-192.168.11.203}}/g" \
-e "s/192\.168\.11\.202/\${IP_SERVICE_202:-${IP_SERVICE_202:-192.168.11.202}}/g" \
-e "s/192\.168\.11\.200/\${IP_SERVICE_200:-${IP_SERVICE_200:-192.168.11.200}}/g" \
-e "s/192\.168\.11\.174/\${IP_SERVICE_174:-${IP_SERVICE_174:-192.168.11.174}}/g" \
-e "s/192\.168\.11\.173/\${IP_SERVICE_173:-${IP_SERVICE_173:-192.168.11.173}}/g" \
-e "s/192\.168\.11\.172/\${IP_SERVICE_172:-${IP_SERVICE_172:-192.168.11.172}}/g" \
-e "s/192\.168\.11\.68/\${IP_INDY:-${IP_INDY:-192.168.11.68}}/g" \
-e "s/192\.168\.11\.65/\${IP_FABRIC:-${IP_FABRIC:-192.168.11.65}}/g" \
-e "s/192\.168\.11\.64/\${IP_CACTI:-${IP_CACTI:-192.168.11.64}}/g" \
-e "s/192\.168\.11\.58/\${IP_SERVICE_58:-${IP_SERVICE_58:-192.168.11.58}}/g" \
-e "s/192\.168\.11\.57/\${IP_SERVICE_57:-${IP_SERVICE_57:-192.168.11.57}}/g" \
-e "s/192\.168\.11\.56/\${IP_SERVICE_56:-${IP_SERVICE_56:-192.168.11.56}}/g" \
-e "s/192\.168\.11\.55/\${IP_SERVICE_55:-${IP_SERVICE_55:-192.168.11.55}}/g" \
-e "s/192\.168\.11\.54/\${IP_SERVICE_54:-${IP_SERVICE_54:-192.168.11.54}}/g" \
-e "s/192\.168\.11\.52/\${IP_SERVICE_52:-${IP_SERVICE_52:-192.168.11.52}}/g" \
-e "s/192\.168\.11\.49/\${IP_SERVICE_49:-${IP_SERVICE_49:-${IP_SERVICE_49:-192.168.11.49}}}/g" \
-e "s/192\.168\.11\.48/\${IP_ORDER_OPENSEARCH:-${IP_ORDER_OPENSEARCH:-${IP_ORDER_OPENSEARCH:-192.168.11.48}}}/g" \
-e "s/192\.168\.11\.47/\${IP_SERVICE_47:-${IP_SERVICE_47:-${IP_SERVICE_47:-192.168.11.47}}}/g" \
-e "s/192\.168\.11\.46/\${ORDER_REDIS_REPLICA:-${ORDER_REDIS_REPLICA:-${ORDER_REDIS_REPLICA:-192.168.11.46}}}/g" \
-e "s/192\.168\.11\.43/\${IP_SERVICE_43:-${IP_SERVICE_43:-${IP_SERVICE_43:-192.168.11.43}}}/g" \
-e "s/192\.168\.11\.42/\${IP_SERVICE_42:-${IP_SERVICE_42:-${IP_SERVICE_42:-192.168.11.42}}}/g" \
-e "s/192\.168\.11\.41/\${IP_SERVICE_41:-${IP_SERVICE_41:-${IP_SERVICE_41:-192.168.11.41}}}/g" \
-e "s/192\.168\.11\.40/\${IP_SERVICE_40:-${IP_SERVICE_40:-${IP_SERVICE_40:-192.168.11.40}}}/g" \
-e "s/192\.168\.11\.39/\${IP_ORDER_HAPROXY:-${IP_ORDER_HAPROXY:-192.168.11.39}}/g" \
-e "s/192\.168\.11\.34/\${IP_SERVICE_34:-${IP_SERVICE_34:-192.168.11.34}}/g" \
-e "s/192\.168\.11\.33/\${IP_SERVICE_33:-${IP_SERVICE_33:-192.168.11.33}}/g" \
-e "s/192\.168\.11\.32/\${IP_SERVICE_32:-${IP_SERVICE_32:-192.168.11.32}}/g" \
-e "s/192\.168\.11\.31/\${IP_SERVICE_31:-${IP_SERVICE_31:-192.168.11.31}}/g" \
-e "s/192\.168\.11\.29/\${IP_SERVICE_29:-${IP_SERVICE_29:-192.168.11.29}}/g" \
-e "s/192\.168\.11\.25/\${IP_SERVICE_25:-${IP_SERVICE_25:-192.168.11.25}}/g" \
-e "s/192\.168\.11\.24/\${IP_SERVICE_24:-${IP_SERVICE_24:-192.168.11.24}}/g" \
-e "s/192\.168\.11\.23/\${IP_SERVICE_23:-${IP_SERVICE_23:-192.168.11.23}}/g" \
-e "s/192\.168\.11\.22/\${IP_SERVICE_22:-${IP_SERVICE_22:-192.168.11.22}}/g" \
-e "s/192\.168\.11\.19/\${IP_SERVICE_19:-${IP_SERVICE_19:-192.168.11.19}}/g" \
-e "s/192\.168\.11\.18/\${IP_SERVICE_18:-${IP_SERVICE_18:-192.168.11.18}}/g" \
-e "s/192\.168\.11\.16/\${IP_SERVICE_16:-${IP_SERVICE_16:-192.168.11.16}}/g" \
-e "s/192\.168\.11\.15/\${IP_SERVICE_15:-${IP_SERVICE_15:-192.168.11.15}}/g" \
-e "s/192\.168\.11\.4/\${IP_SERVICE_4:-${IP_SERVICE_4:-192.168.11.4}}/g" \
"$f" 2>/dev/null || true
}
# REPLACE2 disabled - was introducing corrupt ${IP_SERVICE_XX:-192.168.11.XX}N patterns.
# Use repair-corrupted-ip-replacements.sh first if you had run old REPLACE2.
# Run perl do_fix above; for additional IPs add to do_fix block.