39 lines
1.5 KiB
Bash
39 lines
1.5 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Destroy VMIDs 2506, 2507, 2508 on all Proxmox hosts (LXC or QEMU).
|
||
|
|
# Run from a machine with SSH access to the Proxmox hosts.
|
||
|
|
# Usage: bash scripts/destroy-vmids-2506-2508.sh [--dry-run]
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
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
|
||
|
|
|
||
|
|
HOSTS=(
|
||
|
|
"${PROXMOX_ML110:-192.168.11.10}"
|
||
|
|
"${PROXMOX_R630_01:-192.168.11.11}"
|
||
|
|
"${PROXMOX_R630_02:-192.168.11.12}"
|
||
|
|
)
|
||
|
|
VMIDS=(2506 2507 2508)
|
||
|
|
SSH_OPTS="-o ConnectTimeout=8 -o StrictHostKeyChecking=no"
|
||
|
|
DRY_RUN=false
|
||
|
|
[[ "${1:-}" = "--dry-run" ]] && DRY_RUN=true
|
||
|
|
|
||
|
|
for host in "${HOSTS[@]}"; do
|
||
|
|
for vmid in "${VMIDS[@]}"; do
|
||
|
|
if $DRY_RUN; then
|
||
|
|
echo "[dry-run] Would destroy VMID $vmid on $host (if present)"
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
if ssh $SSH_OPTS root@"$host" "pct list 2>/dev/null | awk '\$1==$vmid {print \$1}'" 2>/dev/null | grep -q .; then
|
||
|
|
echo "Destroying LXC $vmid on $host..."
|
||
|
|
ssh $SSH_OPTS root@"$host" "pct stop $vmid 2>/dev/null || true; pct destroy $vmid --purge 1" 2>/dev/null || true
|
||
|
|
elif ssh $SSH_OPTS root@"$host" "qm list 2>/dev/null | awk '\$1==$vmid {print \$1}'" 2>/dev/null | grep -q .; then
|
||
|
|
echo "Destroying QEMU $vmid on $host..."
|
||
|
|
ssh $SSH_OPTS root@"$host" "qm stop $vmid 2>/dev/null || true; qm destroy $vmid" 2>/dev/null || true
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "Done. VMIDs 2506, 2507, 2508 removed from all hosts. Update master docs (MISSING_CONTAINERS_LIST, DEPLOYMENT_STATUS_MASTER, CHAIN138_BESU_CONFIGURATION, etc.)."
|