Proxmox: riavviare una VM se è spenta

L’attuale versione di Proxmox non ha un sistema di verifica e riavvio delle VM se finiscono in stato “stopped”.

E’ possibile creare un semplice script bash, da eseguire periodicamente tramite CRON, con il seguente contenuto:

#!/bin/bash
exec 1> >(logger -s -t $(basename $0)) 2>&1 #loggare nel syslog l'output dello script
export NODE=localhost

#pvesh create /nodes/$NODE/qemu/100/status/shutdown # Spegnere
#pvesh create /nodes/$NODE/qemu/100/status/start # Accendere

VMIDS=$(cat /etc/pve/.vmlist |jq '.ids | keys[]') #recupero l'elenco di tutte le VM
VMIDS="100 101 102 103 104 106" #se voglio definire solo alcune VM
echo $VMIDS
for VMID in $VMIDS; do

### inizio procedura usando pvesh ###
    VMID=$(echo $VMID |grep -o -E '[0-9]+')
    echo "the next VM is $VMID"
    STATUS=$(pvesh get /nodes/$NODE/qemu/$VMID/status/current --output-format json | jq '.status')
    echo $STATUS
    if [ $STATUS == '"stopped"' ]; then
        echo "$VMID is stopped"
        pvesh create /nodes/$NODE/qemu/$VMID/status/start # POST
    fi
### fine procedura usando pvesh ###

### inizio procedura usando qm ###
#   if [[ $(qm status $VMID) = *"status: stopped"* ]]; then
#       echo "$VMID is stopped"
#       qm start $VMID
#   fi
### fine procedura usando qm ###

done

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta