Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
104 lines
3.8 KiB
Bash
Executable File
104 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Backup current container configurations before IP changes
|
|
# Creates rollback script
|
|
|
|
set -euo pipefail
|
|
|
|
# Load IP configuration
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
|
|
|
|
|
|
BACKUP_DIR="/home/intlc/projects/proxmox/backups/ip_conversion_$(date +%Y%m%d_%H%M%S)"
|
|
ROLLBACK_SCRIPT="$BACKUP_DIR/rollback-ip-changes.sh"
|
|
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
echo "=== Backing Up Container Configurations ==="
|
|
echo "Backup directory: $BACKUP_DIR"
|
|
echo ""
|
|
|
|
# Define conversions directly (from IP_ASSIGNMENT_PLAN.md)
|
|
declare -a CONVERSIONS=(
|
|
"${PROXMOX_HOST_ML110:-192.168.11.10}:3501:${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-192.168.11.14}}}}:192.168.11.28:ccip-monitor-1:ml110"
|
|
"${PROXMOX_HOST_ML110:-192.168.11.10}:3500:192.168.11.15:192.168.11.29:oracle-publisher-1:ml110"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:103:${IP_OMADA:-192.168.11.20}:192.168.11.30:omada:r630-02"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:104:192.168.11.18:192.168.11.31:gitea:r630-02"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:100:192.168.11.4:192.168.11.32:proxmox-mail-gateway:r630-02"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:101:192.168.11.6:192.168.11.33:proxmox-datacenter-manager:r630-02"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:102:192.168.11.9:192.168.11.34:cloudflared:r630-02"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:6200:192.168.11.7:${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-192.168.11.35}}}}:firefly-1:r630-02"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:7811:N/A:${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-192.168.11.36}}}}:mim-api-1:r630-02"
|
|
)
|
|
|
|
# Create rollback script header
|
|
cat > "$ROLLBACK_SCRIPT" << 'EOF'
|
|
#!/bin/bash
|
|
# Rollback script for IP changes
|
|
# Generated automatically - DO NOT EDIT MANUALLY
|
|
|
|
set -euo pipefail
|
|
|
|
# Load IP configuration
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
|
|
|
|
|
|
echo "=== Rolling Back IP Changes ==="
|
|
echo ""
|
|
|
|
EOF
|
|
|
|
chmod +x "$ROLLBACK_SCRIPT"
|
|
|
|
# Backup each container
|
|
for conversion in "${CONVERSIONS[@]}"; do
|
|
IFS=':' read -r host_ip vmid old_ip new_ip name hostname <<< "$conversion"
|
|
|
|
echo "Backing up VMID $vmid ($name) on $hostname..."
|
|
|
|
# Backup container config
|
|
backup_file="$BACKUP_DIR/${hostname}_${vmid}_config.txt"
|
|
ssh -o ConnectTimeout=10 root@"$host_ip" "pct config $vmid" > "$backup_file" 2>/dev/null || echo "Warning: Could not backup $vmid"
|
|
|
|
# Add to rollback script (only if old_ip is not N/A)
|
|
if [ "$old_ip" != "N/A" ] && [ -n "$old_ip" ]; then
|
|
cat >> "$ROLLBACK_SCRIPT" << EOF
|
|
# Rollback VMID $vmid ($name) on $hostname
|
|
echo "Rolling back VMID $vmid to $old_ip..."
|
|
ssh -o ConnectTimeout=10 root@$host_ip "pct stop $vmid" 2>/dev/null || true
|
|
sleep 2
|
|
ssh -o ConnectTimeout=10 root@$host_ip "pct set $vmid --net0 bridge=vmbr0,name=eth0,ip=$old_ip/24,gw=${NETWORK_GATEWAY:-192.168.11.1},type=veth" || echo "Warning: Failed to rollback $vmid"
|
|
ssh -o ConnectTimeout=10 root@$host_ip "pct start $vmid" 2>/dev/null || true
|
|
echo ""
|
|
|
|
EOF
|
|
fi
|
|
done
|
|
|
|
# Create summary
|
|
cat > "$BACKUP_DIR/backup_summary.txt" << EOF
|
|
Backup Summary
|
|
Generated: $(date)
|
|
|
|
Total containers to convert: ${#CONVERSIONS[@]}
|
|
|
|
Conversions:
|
|
$(printf '%s\n' "${CONVERSIONS[@]}")
|
|
|
|
Backup files:
|
|
$(ls -1 "$BACKUP_DIR"/*_config.txt 2>/dev/null | wc -l) config files backed up
|
|
|
|
Rollback script: $ROLLBACK_SCRIPT
|
|
EOF
|
|
|
|
echo ""
|
|
echo "=== Backup Complete ==="
|
|
echo "Backed up ${#CONVERSIONS[@]} container configurations"
|
|
echo "Backup directory: $BACKUP_DIR"
|
|
echo "Rollback script: $ROLLBACK_SCRIPT"
|
|
echo ""
|
|
echo "To rollback changes, run: $ROLLBACK_SCRIPT"
|