feat: Make Proxmox script idempotent - handle existing VMs

This commit is contained in:
devmatrix 2026-02-16 14:04:54 +00:00
parent 2d8a5d3714
commit 1785fab2a1
1 changed files with 38 additions and 3 deletions

View File

@ -87,13 +87,48 @@ if [ "${HDD_AVAIL%.*}" -lt "$NEEDED_HDD" ]; then
fi
log "✓ Sufficient HDD space (${NEEDED_HDD}GB needed)"
# Check VM IDs
# Check VM IDs - warn if exist, allow skip
log "🔍 Checking VM ID availability..."
existing_vms=""
for vmid in $MAIN_VMID $WIN_VMID $ANDROID_VMID; do
if qm status "$vmid" &> /dev/null; then
error "VM ID $vmid already exists!"
vmname=$(qm config "$vmid" | grep name | awk '{print $2}')
warn "VM $vmid ($vmname) already exists!"
existing_vms="$existing_vms $vmid"
fi
done
log "✓ VM IDs available (300-302)"
if [ -n "$existing_vms" ]; then
echo ""
echo "Options:"
echo " 1) Skip existing VMs and create only new ones"
echo " 2) Destroy existing VMs and recreate"
echo " 3) Exit and check manually"
read -p "Choose (1/2/3): " choice
case $choice in
1)
log "Will skip existing VMs..."
;;
2)
warn "Destroying VMs:$existing_vms"
for vmid in $existing_vms; do
qm stop "$vmid" &> /dev/null || true
qm destroy "$vmid" --purge
log "Destroyed VM $vmid"
done
;;
3)
exit 1
;;
*)
error "Invalid choice"
;;
esac
fi
log "✓ VM IDs checked"
# Check RAM
AVAILABLE_RAM=$(free -m | awk '/^Mem:/{print $7}')