feat: Make Proxmox script idempotent - handle existing VMs
This commit is contained in:
parent
2d8a5d3714
commit
1785fab2a1
|
|
@ -87,13 +87,48 @@ if [ "${HDD_AVAIL%.*}" -lt "$NEEDED_HDD" ]; then
|
||||||
fi
|
fi
|
||||||
log "✓ Sufficient HDD space (${NEEDED_HDD}GB needed)"
|
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
|
for vmid in $MAIN_VMID $WIN_VMID $ANDROID_VMID; do
|
||||||
if qm status "$vmid" &> /dev/null; then
|
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
|
fi
|
||||||
done
|
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
|
# Check RAM
|
||||||
AVAILABLE_RAM=$(free -m | awk '/^Mem:/{print $7}')
|
AVAILABLE_RAM=$(free -m | awk '/^Mem:/{print $7}')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue