Files
proxmox/scripts/update-service-dependencies.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

135 lines
4.5 KiB
Bash
Executable File

#!/bin/bash
# Update critical service dependencies after IP changes
# Focuses on Cloudflare, Nginx, and key configuration files
set -euo pipefail
# IP mappings (old -> new)
declare -A IP_MAPPINGS=(
["192.168.11.14"]="192.168.11.28" # ccip-monitor-1
["192.168.11.15"]="192.168.11.29" # oracle-publisher-1
["192.168.11.18"]="192.168.11.31" # gitea
["192.168.11.20"]="192.168.11.30" # omada
["192.168.11.4"]="192.168.11.32" # proxmox-mail-gateway
["192.168.11.6"]="192.168.11.33" # proxmox-datacenter-manager
["192.168.11.7"]="192.168.11.35" # firefly-1
["192.168.11.9"]="192.168.11.34" # cloudflared
)
LOG_FILE="/home/intlc/projects/proxmox/dependency_update_log_$(date +%Y%m%d_%H%M%S).log"
BACKUP_DIR="/home/intlc/projects/proxmox/backups/dependency_updates_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
echo "=== Updating Critical Service Dependencies ===" | tee "$LOG_FILE"
echo "Backup directory: $BACKUP_DIR" | tee -a "$LOG_FILE"
echo ""
# Function to update file
update_file() {
local file="$1"
local old_ip="$2"
local new_ip="$3"
if [ ! -f "$file" ]; then
return 0
fi
# Backup file
cp "$file" "$BACKUP_DIR/$(basename $file).bak" 2>/dev/null || true
# Update file
if sed -i "s|$old_ip|$new_ip|g" "$file" 2>/dev/null; then
echo " ✓ Updated: $file ($old_ip$new_ip)" | tee -a "$LOG_FILE"
return 0
else
echo " ✗ Failed: $file" | tee -a "$LOG_FILE"
return 1
fi
}
# Critical files to update
CRITICAL_FILES=(
"docs/05-network/CENTRAL_NGINX_ROUTING_SETUP.md"
"docs/04-configuration/cloudflare/CLOUDFLARE_TUNNEL_CONFIGURATION_GUIDE.md"
"scripts/update-cloudflare-tunnel-config.sh"
"scripts/setup-central-nginx-routing.sh"
)
echo "Updating critical configuration files..." | tee -a "$LOG_FILE"
echo ""
for file in "${CRITICAL_FILES[@]}"; do
full_path="/home/intlc/projects/proxmox/$file"
if [ -f "$full_path" ]; then
echo "Processing: $file"
for old_ip in "${!IP_MAPPINGS[@]}"; do
new_ip="${IP_MAPPINGS[$old_ip]}"
if grep -q "$old_ip" "$full_path" 2>/dev/null; then
update_file "$full_path" "$old_ip" "$new_ip"
fi
done
fi
done
echo ""
echo "=== Checking Nginx Proxy Manager Routes ===" | tee -a "$LOG_FILE"
echo ""
# Check if Nginx Proxy Manager needs updates
# Note: Nginx Proxy Manager uses a web UI, so we'll document what needs to be updated
NGINX_ROUTES_FILE="$BACKUP_DIR/nginx_routes_to_update.txt"
cat > "$NGINX_ROUTES_FILE" << 'EOF'
# Nginx Proxy Manager Routes That May Need Updates
# Check these routes in the Nginx Proxy Manager web UI (VMID 105: http://192.168.11.26:81)
Routes that may reference changed IPs:
- omada routes: Check if any route references 192.168.11.20 → Update to 192.168.11.30
- gitea routes: Check if any route references 192.168.11.18 → Update to 192.168.11.31
- firefly routes: Check if any route references 192.168.11.7 → Update to 192.168.11.35
To update:
1. Access Nginx Proxy Manager: http://192.168.11.26:81
2. Check each Proxy Host configuration
3. Update Forward Hostname/IP if it references old IPs
EOF
echo "Created: $NGINX_ROUTES_FILE" | tee -a "$LOG_FILE"
echo ""
echo "=== Checking Cloudflare Tunnel Config ===" | tee -a "$LOG_FILE"
echo ""
# Check cloudflared container config
CLOUDFLARE_CHECK_FILE="$BACKUP_DIR/cloudflare_tunnel_check.txt"
cat > "$CLOUDFLARE_CHECK_FILE" << EOF
# Cloudflare Tunnel Configuration Check
# VMID 102 (cloudflared) - IP changed: 192.168.11.9 → 192.168.11.34
The cloudflared container itself doesn't need config changes (it's the tunnel endpoint).
However, check:
1. Cloudflare Dashboard Tunnel Configuration:
- If any ingress rules reference 192.168.11.9 directly, update to 192.168.11.34
- Most likely, routes go to Nginx Proxy Manager (192.168.11.26), which is correct
2. Internal Service Routes:
- If cloudflared routes directly to services that changed IPs, update those routes
- Check tunnel config files in VMID 102 container
To check:
ssh root@192.168.11.12 "pct exec 102 -- cat /etc/cloudflared/config.yml"
EOF
echo "Created: $CLOUDFLARE_CHECK_FILE" | tee -a "$LOG_FILE"
echo ""
echo "=== Summary ===" | tee -a "$LOG_FILE"
echo "Files updated: $(find $BACKUP_DIR -name '*.bak' | wc -l)" | tee -a "$LOG_FILE"
echo "Backup directory: $BACKUP_DIR" | tee -a "$LOG_FILE"
echo "Log file: $LOG_FILE" | tee -a "$LOG_FILE"
echo ""
echo "⚠️ Note: Nginx Proxy Manager and Cloudflare Dashboard require manual updates"
echo " See files in $BACKUP_DIR for details"