Ich war es leid, das Shutdown-Script immer wieder anpassen zu müssen, wenn ich neue VMs zum Leben erweckte. Nach einiger Recherche habe ich jetzt folgendes Script am laufen. Das Script macht folgendes:
1) Shutdown aller laufenden VMs, Ausnahme: Storage VM, denn diese muss als letztes herunter gefahren werden.
2) Pause, um sicher zu stellen, dass alle VMs genug Zeit haben, herunter zu fahren
3) Shutdown der Storage VM
4) Pause, um sicher zu stellen, dass Storage VM sauber herunter gefahren werden kann
5) Shutdown des ESXI Hosts
Damit werden immer alle VMs automatisch herunter gefahren. Das einzige, was ich im Script jetzt noch anpassen muss, sind Name und VM-ID der Storage VM. Bleibt dies konstant, sichert das Script immer, wie oben beschrieben, das saubere Herunterfahren des gesamten Systems.
Ich habs getestet und für gut befunden
Quelle: Shutdown all VMs on ESXi host except one : vmware
1) Shutdown aller laufenden VMs, Ausnahme: Storage VM, denn diese muss als letztes herunter gefahren werden.
2) Pause, um sicher zu stellen, dass alle VMs genug Zeit haben, herunter zu fahren
3) Shutdown der Storage VM
4) Pause, um sicher zu stellen, dass Storage VM sauber herunter gefahren werden kann
5) Shutdown des ESXI Hosts
Damit werden immer alle VMs automatisch herunter gefahren. Das einzige, was ich im Script jetzt noch anpassen muss, sind Name und VM-ID der Storage VM. Bleibt dies konstant, sichert das Script immer, wie oben beschrieben, das saubere Herunterfahren des gesamten Systems.
Ich habs getestet und für gut befunden
Code:
###### Shutdown aller laufenden VMs mit Ausnahme der StorageVM
## hier den Namen der StorageVM eingeben
StorageVM='[B][COLOR="#B22222"]NAME_DEINER_STORAGE_VM[/COLOR][/B]'
## Schleife, um alle laufenden VMs mit Ausnahme der StorageVM herunter zu fahren
VMS=`vim-cmd /vmsvc/getallvms | tail -n+2 | awk '{print $1","$2}'`
for vm in ${VMS}
do
vmID=`echo $vm | cut -d',' -f1`
vmName=`echo $vm | cut -d',' -f2`
if [ $vmName != $StorageVM ]
then
powerState=`vim-cmd vmsvc/power.getstate $vmID | tail -n+2`
if [ "$powerState" == "Powered on" ]
then
vim-cmd vmsvc/power.shutdown $vmID
fi
fi
done
## Pause, um alle laufenden VMs mit Ausnahme der Storage VM sauber herunter fahren zu lassen
sleep 180s
###### Shutdown StorageVM
vim-cmd vmsvc/power.shutdown [B][COLOR="#B22222"]tbd[/COLOR][/B] # Storage VM-ID kann mittels [I]vim-cmd /vmsvc/getallvms[/I] ermittelt werden
#Pause, um die StorageVM sauber herunter fahren zu lassen
sleep 180s
###### Shutdown ESXI-Host
poweroff
Quelle: Shutdown all VMs on ESXi host except one : vmware
Zuletzt bearbeitet: