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>
75 lines
2.1 KiB
Bash
Executable File
75 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Check for VMID conflicts across all Proxmox hosts
|
|
# Usage: ./scripts/check-vmid-conflicts.sh
|
|
|
|
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
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Proxmox hosts
|
|
HOSTS=(
|
|
"${PROXMOX_HOST_ML110:-192.168.11.10}:ml110"
|
|
"${PROXMOX_HOST_R630_01:-192.168.11.11}:r630-01"
|
|
"${PROXMOX_HOST_R630_02:-192.168.11.12}:r630-02"
|
|
)
|
|
|
|
echo "=== VMID Conflict Checker ==="
|
|
echo ""
|
|
|
|
# Load VMID inventory
|
|
VMID_INVENTORY="$PROJECT_ROOT/docs/11-references/MASTER_VMID_INVENTORY.md"
|
|
|
|
if [ ! -f "$VMID_INVENTORY" ]; then
|
|
echo -e "${RED}Error: VMID inventory not found at $VMID_INVENTORY${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Extract VMIDs from inventory
|
|
echo "Extracting VMIDs from inventory..."
|
|
VMIDS=$(grep -E "^\| [0-9]+ \|" "$VMID_INVENTORY" | awk -F'|' '{print $2}' | tr -d ' ' | sort -n | uniq)
|
|
|
|
echo "Found $(echo "$VMIDS" | wc -l) VMIDs in inventory"
|
|
echo ""
|
|
|
|
# Check each host
|
|
CONFLICTS=0
|
|
for host_entry in "${HOSTS[@]}"; do
|
|
IFS=':' read -r host_ip host_name <<< "$host_entry"
|
|
echo "Checking $host_name ($host_ip)..."
|
|
|
|
# Query Proxmox for containers
|
|
CONTAINERS=$(ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=accept-new root@"$host_ip" "pct list 2>/dev/null" | awk '{print $1}' | grep -E '^[0-9]+$' || true)
|
|
|
|
if [ -z "$CONTAINERS" ]; then
|
|
echo -e "${YELLOW} ⚠️ Could not connect to $host_name${NC}"
|
|
continue
|
|
fi
|
|
|
|
echo " Found $(echo "$CONTAINERS" | wc -l) containers"
|
|
|
|
# Check for conflicts
|
|
for vmid in $CONTAINERS; do
|
|
if echo "$VMIDS" | grep -q "^${vmid}$"; then
|
|
echo -e "${GREEN} ✅ VMID $vmid: Documented${NC}"
|
|
else
|
|
echo -e "${YELLOW} ⚠️ VMID $vmid: Not in inventory${NC}"
|
|
fi
|
|
done
|
|
echo ""
|
|
done
|
|
|
|
echo "=== Check Complete ==="
|