Hilfe bei Scriptanpassung für VMWare 5.1 HA und USV Shutdown

M

monstermania

Hallo,
ich hoffe, dass mir hier jemand helfen kann. Ist an sich ein kleine Sache und für einen Shell-Profi wahrscheinlich nicht mehr als eine Sache von einigen Minuten.

Kurz der techn. Hintergund:
Wir haben 3 ESXi Ess. Plus Hosts im Einsatz. HA ist aktiviert.

Die Server hängen an 2 APC USV's. PCNS und vMA sind soweit eingerichtet. Derzeit läuft das mit dem 'Standard-Script' von APC (shutdownvms.sh).

Code:
#!/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=(192.168.100.10 192.168.100.11 192.168.100.12)
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

Das Script durchläuft nacheinander alle VM-Hosts und fährt alle laufenden VM's herunter. Und genau hier liegt durch den VMWare HA-Cluster ja die Krux. Derzeit kann ich nicht sicherstellen, dass bestimmte VM's in kontrollierter Reihenfolge heruntergefahren werden.

Das Scipt müßte also in der Art erweitert werden, dass zunächst geprüft wird welche VM auf welchem Host läuft, damit diese VM dann gezielt heruntergefahren werden kann.
Ich stelle mir das so vor, dass zusätzlich zu den VM Hosts die herunterzufahrenden VM's als Array im Shellscript definiert werden. Bei Ausführung des Scriptes würden durch das Script zunächst die definierten VM's der Reihenfolge nach heruntergefahren, unabhängig davon auf welchem Host sie tatsächlich laufen.
Anschließend müßten natürlich alle sonstigen noch laufenden VM's (und die Hosts natürlich) 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 obige Standardscript 'shutsownvms.sh' von APC, dass dann entsprechend erweitert werden müßte.
Ich würde diese Anforderung auch gerne selbst umsetzten. Allerdings fehlt mir komplett der Überblick, wie ich da am besten Vorgehe. Ich kann so was ja schlecht direkt in der Echtumgebung auspobieren.

Gibt es eine Art 'Entwicklungsumgebung' für Shellscripte mit einem Debugger?

Gruß
Dirk
 

Ähnliche Themen

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

Zurück
Oben