Archived
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
539bdf9833 | ||
|
|
ced1657407 | ||
|
|
fdf41c659c | ||
|
|
7ba603c005 | ||
|
|
4490dfab7d | ||
|
|
fa163b613d |
@@ -30,6 +30,8 @@ DATA_DISK_SLOT="${DATA_DISK_SLOT:-scsi1}" # Proxmox disk name (scsi1 = data di
|
|||||||
HA_USER="${HA_USER:-nixos}"
|
HA_USER="${HA_USER:-nixos}"
|
||||||
PVE_HOST="${PVE_HOST:-${PVE1_HOST}}"
|
PVE_HOST="${PVE_HOST:-${PVE1_HOST}}"
|
||||||
PVE_SSH_USER="${PVE_SSH_USER:-${PROXMOX_SSH_USER}}"
|
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.
|
# By-id symlink for the data disk; basename resolves to the raw block device.
|
||||||
# matches variables.nix's haServerDrbdDisk.
|
# matches variables.nix's haServerDrbdDisk.
|
||||||
DATA_DISK_BYID="${DATA_DISK_BYID:-scsi-0QEMU_QEMU_HARDDISK_drive-${DATA_DISK_SLOT}}"
|
DATA_DISK_BYID="${DATA_DISK_BYID:-scsi-0QEMU_QEMU_HARDDISK_drive-${DATA_DISK_SLOT}}"
|
||||||
@@ -140,7 +142,7 @@ fi
|
|||||||
echo ""
|
echo ""
|
||||||
echo "Looking up VM IDs on ${PVE_HOST}..."
|
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)
|
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)
|
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})"
|
echo " ${DRY_PREFIX}qm resize $VMID1 ${DATA_DISK_SLOT} ${SIZE} ($NODE1 on ${PVE_HOST})"
|
||||||
if ! $DRY_RUN; then
|
if ! $DRY_RUN; then
|
||||||
pve "qm resize $VMID1 ${DATA_DISK_SLOT} ${SIZE}"
|
pve "$PVE_SUDO qm resize $VMID1 ${DATA_DISK_SLOT} ${SIZE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo " ${DRY_PREFIX}qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE} ($NODE2 on ${PVE_HOST})"
|
echo " ${DRY_PREFIX}qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE} ($NODE2 on ${PVE_HOST})"
|
||||||
if ! $DRY_RUN; then
|
if ! $DRY_RUN; then
|
||||||
pve "qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE}"
|
pve "$PVE_SUDO qm resize $VMID2 ${DATA_DISK_SLOT} ${SIZE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo " Phase 1 done."
|
echo " Phase 1 done."
|
||||||
@@ -202,17 +204,13 @@ rescan_node() {
|
|||||||
local node_name=$1 run_fn=$2
|
local node_name=$1 run_fn=$2
|
||||||
|
|
||||||
# Resolve block device name from the stable by-id symlink on the guest.
|
# Resolve block device name from the stable by-id symlink on the guest.
|
||||||
|
# Read-only lookup — safe to run even in dry-run so we show the real device.
|
||||||
local blk_dev=""
|
local blk_dev=""
|
||||||
if ! $DRY_RUN; then
|
blk_dev=$($run_fn "bash -c 'basename \$(readlink -f /dev/disk/by-id/${DATA_DISK_BYID})'" 2>/dev/null || true)
|
||||||
blk_dev=$($run_fn "bash -c 'basename \$(readlink -f /dev/disk/by-id/${DATA_DISK_BYID})'" 2>/dev/null || true)
|
|
||||||
fi
|
|
||||||
if [[ -z "$blk_dev" ]]; then
|
if [[ -z "$blk_dev" ]]; then
|
||||||
# Fall back: scsi1 → index 1 → sdb, scsi2 → sdc, etc.
|
echo " ERROR: /dev/disk/by-id/${DATA_DISK_BYID} not found on $node_name" >&2
|
||||||
local slot_idx
|
echo " Check DATA_DISK_BYID or DATA_DISK_SLOT configuration." >&2
|
||||||
slot_idx=$(echo "$DATA_DISK_SLOT" | grep -oE '[0-9]+$' || echo "1")
|
exit 1
|
||||||
blk_dev=$(printf "sd%s" "$(echo "abcdefghij" | cut -c$((slot_idx + 1)))")
|
|
||||||
echo " WARNING: could not resolve /dev/disk/by-id/${DATA_DISK_BYID} on $node_name;" \
|
|
||||||
"falling back to /dev/${blk_dev}" >&2
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo " ${DRY_PREFIX}Rescanning /dev/${blk_dev} on ${node_name}..."
|
echo " ${DRY_PREFIX}Rescanning /dev/${blk_dev} on ${node_name}..."
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBZ9WKKAlP9Z7GQdgaZ1Xgw9C+vja2lqEZO5rJFpVqYN root@ha-server-1"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBZ9WKKAlP9Z7GQdgaZ1Xgw9C+vja2lqEZO5rJFpVqYN root@ha-server-1"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGNKlaaMckd8nLWNGz4B2QokXjnnIvM+rEUv+R6h0sp root@ha-server-2"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGNKlaaMckd8nLWNGz4B2QokXjnnIvM+rEUv+R6h0sp root@ha-server-2"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK+XeMco7OxUpjrjZm54HogMs9QB5xlcKmElASRvrmlW root@nixos"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK+XeMco7OxUpjrjZm54HogMs9QB5xlcKmElASRvrmlW root@nixos"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMseQwPpmaa6cgV5U8KhUsiVSYARG85zGa9rho0LJWks wayne@pve1"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Admin SSH public key, authorized on the primary user of every host and
|
# Admin SSH public key, authorized on the primary user of every host and
|
||||||
|
|||||||
Reference in New Issue
Block a user