I wanted to run a stop operation on all VMs in one of my HA groups in Proxmox and was frustrated to see there was no easy way to do so. I wrote a quick & dirty bash script that will let me start & stop all VMs within an HA group to do what I wanted.
#!/bin/bash #Proxmox HA start/stop script #Takes first argument of the operation to do (start / stop) and any additional arguments for which HA group(s) to do it on, then acts as requested. if [[ "$1" != "start" && "$1" != "stop" ]]; then echo "Please provide desired state (start | stop)" exit 1 fi if [ "$1" == "start" ]; then VM_STATE="started" OPERATION="Starting" elif [ "$1" == "stop" ]; then VM_STATE="stopped" OPERATION="Stopping" else exit 1 #should not ever get here fi #Loop through each argument except for the first for group in "${@:-1}" do group_members=$(ha-manager config | grep -B1 $group | grep vm: ) for VM in $group_members do echo "$OPERATION $VM in HA group $group" ha-manager set $VM --state $VM_STATE done done