#!/bin/bash source ~/.bashrc # Check VM Disk Sizes and Configuration set -e # Colors GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_step() { echo -e "${BLUE}[STEP]${NC} $1" } # Load environment variables if [ -f .env ]; then set -a source <(grep -v '^#' .env | grep -v '^$' | sed 's/#.*$//' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | grep '=') set +a fi PVE_USERNAME="${PVE_USERNAME:-root@pam}" PVE_PASSWORD="${PVE_ROOT_PASS:-}" PROXMOX_URL="https://192.168.1.206:8006" PROXMOX_NODE="pve" main() { echo "=========================================" echo "VM Disk Size Configuration" echo "=========================================" echo "" if [ -z "$PVE_PASSWORD" ]; then echo "Error: PVE_ROOT_PASS not set in .env" exit 1 fi # Get authentication ticket local response=$(curl -k -s -d "username=$PVE_USERNAME&password=$PVE_PASSWORD" \ "$PROXMOX_URL/api2/json/access/ticket") local ticket=$(echo "$response" | grep -o '"ticket":"[^"]*' | cut -d'"' -f4) local csrf=$(echo "$response" | grep -o '"CSRFPreventionToken":"[^"]*' | cut -d'"' -f4) if [ -z "$ticket" ] || [ -z "$csrf" ]; then echo "Error: Failed to authenticate" exit 1 fi echo "VM Disk Configuration:" echo "" declare -A VMS=( [100]="cloudflare-tunnel:40G" [101]="k3s-master:80G" [102]="git-server:100G" [103]="observability:200G" ) for vmid in 100 101 102 103; do IFS=':' read -r name expected_size <<< "${VMS[$vmid]}" local config=$(curl -k -s \ -H "Cookie: PVEAuthCookie=$ticket" \ -H "CSRFPreventionToken: $csrf" \ "$PROXMOX_URL/api2/json/nodes/$PROXMOX_NODE/qemu/$vmid/config") local scsi0=$(echo "$config" | grep -o '"scsi0":"[^"]*' | cut -d'"' -f4) local actual_size=$(echo "$scsi0" | grep -o 'size=[0-9]*G' | cut -d'=' -f2 || echo "Unknown") echo "VM $vmid - $name:" echo " Expected: $expected_size" echo " Actual: $actual_size" echo " Device: $scsi0" if [ "$actual_size" = "$expected_size" ]; then log_info " ✓ Disk size matches" else echo " ⚠ Size mismatch or not found" fi echo "" done echo "=========================================" echo "Installation Tips:" echo "=========================================" echo "" echo "During Ubuntu installation:" echo " • Select 'Custom storage layout'" echo " • Choose the disk matching your VM size" echo " • Ignore the CD-ROM (ISO, ~3GB)" echo " • Use entire disk or create partitions" echo "" echo "See: UBUNTU_INSTALL_DISK_SELECTION.md for details" } main "$@"