PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VMWare - Hilfe bei Scriptanpassung 'shutdownvms.sh'



monstermania
11.04.13, 11:10
Hallo,
ich habe 3 ESXi 5.1 Hosts im Einsatz. HA ist für die 3 Hosts aktiviert.

Die Server hängen an 2 APC USV's . PCNS und vMA sind eingerichtet. Allerdings mit dem Standard-Script 'shutdownvms.sh' von APC.
D.H. die VM-Hosts werden, so Bald eine USV unter 15 min. Akkulaufzeit kommt, nacheinander angewiesen die laufenden VM's herunterzufahren.


#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/vmware/vma/lib64:/opt/vmware/vma/lib
export LD_LIBRARY_PATH
export PERL_LWP_SSL_VERIFY_HOSTNAME=0
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
hosts=(10.216.252.167 10.216.252.168)
ups_vm="vSphere Management Assistant \(vMA\)"
for host in ${hosts[@]}; do
echo $host
source /opt/vmware/vma/bin/vifptarget -s $host
for i in `vmware-cmd -l --username xxxxx --password xxxxx`; do
if [ `vmware-cmd $i getstate | egrep -c "on"` -eq 1 ]; then
echo $i
if [ `echo $i | egrep -c $ups_vm` -eq 1 ]; then
echo "Skip shut down of VMA"
else
echo "Shutting down $i"
vmware-cmd "$i" stop soft
fi
fi
done
source /opt/vmware/vma/bin/vifptarget -c
done

Und genau hier liegt durch den HA-Cluster eine Herausforderung. Derzeit kann ich nicht sicherstellen, dass bestimmte VM's in der richtigen Reihenfolge heruntergefahren werden.

Es müßte also zunächst geprüft, welche VM auf welchem Host läuft damit ich diese VM dann gezielt herunterfahren kann.

Ich stelle mir das so vor, dass ich die VM Hosts und Reihenfolge der herunterzufahrenden VM's z.B. als Array im Shellscript definiert werden. Bei Ausführung des Scriptes würde dann durch das Script zunächst die definierten VM's in der richtigen Reihenfolge beendet.
Anschließend müßten natürlich alle sonstigen noch laufenden VM's (und die Hosts) heruntergefahren werden.

Tja, und genau hier beginnt mein Problem. Ich habe leider nicht wirklich Ahnung von der Shellscriptpogrammierung. Kann mich jemand von Euch dabei unterstützen?

Ausgangslage wäre das Standardscript 'shutsownvms.sh' von APC, dass dann entsprechend obiger Anforderungen erweitert werden müßte.

Gruß
Dirk