From ced1657407613cd964e67302a24835ca8cf73ec7 Mon Sep 17 00:00:00 2001 From: beatzaplenty Date: Wed, 29 Jul 2026 13:53:41 +1000 Subject: [PATCH] fix(ha): prefix qm commands with sudo for non-root Proxmox SSH user qm lives at /usr/sbin/qm, which is not in the default PATH for non-interactive SSH sessions as a non-root user. Add PVE_SUDO (set to "sudo" when PVE_SSH_USER != root, matching create-proxmox-resource.sh's own sudo_prefix pattern) and prepend it to all three qm invocations in the script. Co-Authored-By: Claude Sonnet 4.6 --- scripts/ha/resize-data-disk.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/ha/resize-data-disk.sh b/scripts/ha/resize-data-disk.sh index 3bb01f0..4379cd9 100755 --- a/scripts/ha/resize-data-disk.sh +++ b/scripts/ha/resize-data-disk.sh @@ -30,6 +30,8 @@ DATA_DISK_SLOT="${DATA_DISK_SLOT:-scsi1}" # Proxmox disk name (scsi1 = data di HA_USER="${HA_USER:-nixos}" PVE_HOST="${PVE_HOST:-${PVE1_HOST}}" PVE_SSH_USER="${PVE_SSH_USER:-${PROXMOX_SSH_USER}}" +PVE_SUDO="" +[[ "$PVE_SSH_USER" != "root" ]] && PVE_SUDO="sudo" # By-id symlink for the data disk; basename resolves to the raw block device. # matches variables.nix's haServerDrbdDisk. DATA_DISK_BYID="${DATA_DISK_BYID:-scsi-0QEMU_QEMU_HARDDISK_drive-${DATA_DISK_SLOT}}" @@ -140,7 +142,7 @@ fi echo "" echo "Looking up VM IDs on ${PVE_HOST}..." -QM_LIST=$(pve "qm list 2>/dev/null" || true) +QM_LIST=$(pve "$PVE_SUDO qm list 2>/dev/null" || true) VMID1=$(echo "$QM_LIST" | awk -v name="$NODE1" '$0 ~ name {print $1}' | head -1) VMID2=$(echo "$QM_LIST" | awk -v name="$NODE2" '$0 ~ name {print $1}' | head -1) @@ -182,12 +184,12 @@ echo "── Phase 1 — Proxmox disk resize (${DATA_DISK_SLOT} ${SIZE} on both echo " ${DRY_PREFIX}qm resize $VMID1 ${DATA_DISK_SLOT} ${SIZE} ($NODE1 on ${PVE_HOST})" if ! $DRY_RUN; then - pve "qm resize $VMID1 ${DATA_DISK_SLOT} ${SIZE}" + pve "$PVE_SUDO qm resize $VMID1 ${DATA_DISK_SLOT} ${SIZE}" fi echo " ${DRY_PREFIX}qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE} ($NODE2 on ${PVE_HOST})" if ! $DRY_RUN; then - pve "qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE}" + pve "$PVE_SUDO qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE}" fi echo " Phase 1 done." -- 2.54.0