Big bang
This commit is contained in:
62
verify.sh
Executable file
62
verify.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
# End-to-end verification of the lab: VMs running, cluster quorate, shared
|
||||
# storage active on both nodes, and a real cross-node migration over NFS.
|
||||
set -uo pipefail
|
||||
source "$(dirname "$0")/lab.env"
|
||||
|
||||
pass() { echo " [PASS] $*"; }
|
||||
fail() { echo " [FAIL] $*"; FAILED=1; }
|
||||
FAILED=0
|
||||
|
||||
echo "== 1. libvirt domains =="
|
||||
sudo virsh list --all | grep -E "pve1|pve2|pvestore" || true
|
||||
for d in "$PVE1_NAME" "$PVE2_NAME" "$STORE_NAME"; do
|
||||
st=$(sudo virsh domstate "$d" 2>/dev/null || echo missing)
|
||||
[[ "$st" == "running" ]] && pass "$d running" || fail "$d state=$st"
|
||||
done
|
||||
|
||||
echo "== 2. Cluster quorum =="
|
||||
if lab_ssh "$PVE1_IP" "pvecm status 2>/dev/null | grep -q 'Quorate: *Yes'"; then
|
||||
pass "cluster is quorate"
|
||||
lab_ssh "$PVE1_IP" "pvecm nodes"
|
||||
else
|
||||
fail "cluster not quorate"
|
||||
fi
|
||||
|
||||
echo "== 3. Shared storage active on both nodes =="
|
||||
for ip in "$PVE1_IP" "$PVE2_IP"; do
|
||||
for s in lab-nfs lab-lvm; do
|
||||
if lab_ssh "$ip" "pvesm status 2>/dev/null | awk '\$1==\"$s\"{print \$3}' | grep -q active"; then
|
||||
pass "$s active on $ip"
|
||||
else
|
||||
fail "$s not active on $ip"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
echo "== 4. Cross-node migration over shared NFS =="
|
||||
VMID=9001
|
||||
lab_ssh "$PVE1_IP" "qm destroy $VMID --purge 2>/dev/null; true"
|
||||
if lab_ssh "$PVE1_IP" "qm create $VMID --name migtest --memory 512 \
|
||||
--scsihw virtio-scsi-pci --scsi0 lab-nfs:1 --net0 virtio,bridge=vmbr0"; then
|
||||
pass "created test VM $VMID with disk on lab-nfs"
|
||||
if lab_ssh "$PVE1_IP" "qm migrate $VMID $PVE2_NAME"; then
|
||||
owner=$(lab_ssh "$PVE2_IP" "qm list 2>/dev/null | awk '\$1==$VMID{print \$1}'")
|
||||
[[ "$owner" == "$VMID" ]] && pass "VM $VMID migrated pve1 -> pve2" || fail "VM not found on pve2 after migrate"
|
||||
else
|
||||
fail "qm migrate failed"
|
||||
fi
|
||||
lab_ssh "$PVE2_IP" "qm destroy $VMID --purge 2>/dev/null; true" || \
|
||||
lab_ssh "$PVE1_IP" "qm destroy $VMID --purge 2>/dev/null; true"
|
||||
else
|
||||
fail "could not create test VM"
|
||||
fi
|
||||
|
||||
echo
|
||||
if [[ "$FAILED" == 0 ]]; then
|
||||
echo "ALL CHECKS PASSED"
|
||||
echo "Web UIs: https://${PVE1_IP}:8006 https://${PVE2_IP}:8006 (root / \$ROOT_PASSWORD)"
|
||||
else
|
||||
echo "SOME CHECKS FAILED — see [FAIL] lines above"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user