Hallo,
wir benutzen momentan folgendes Shutdown Script:
---------------------------------------------------------------------------------
#!/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=(IP des Hosts)
ups_vm="VMware MA5"
for host in ${hosts[@]}; do
echo $host
source /opt/vmware/vma/bin/vifptarget -s $host
for i in `vmware-cmd -l --username root --password unserPasswort`; 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 funktioniert so weit gut. Nun sind allerdings die Anforderungen anders.
Es sollen erst die Terminalserver herunter gefahren werden dann die Aplikationsserver und dann die Datenbankserver.
Ich bin so weit überfragt da ich kein Pearl beherrsche.
Ich denke der Ansatz ist folgender:
unser Terminalserver beginnen alle mit st****** , Appliaktionsserver mit sa****** und Datenbank mit sd*********
Leihen haft gesprochen eine Schleife bauen die nach diesen Bedingungen sucht.
Bin für jede Hilfe Dankbar.
Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!
Shutdown Script
-
Kampfwurst
- Member
- Beiträge: 186
- Registriert: 19.01.2009, 17:54
Hallo
Kennst du dieses Script?
https://github.com/sixdimensionalarray/ ... sxidown.sh
Damit sollte es klappen. Es fährt die Server so herunter wie sie in " SERVERIDS="" " eingetragen wurde. So fahre ich alle anderen VMs und am Schluss die VM die den DomainController macht herunter.
Kennst du dieses Script?
https://github.com/sixdimensionalarray/ ... sxidown.sh
Damit sollte es klappen. Es fährt die Server so herunter wie sie in " SERVERIDS="" " eingetragen wurde. So fahre ich alle anderen VMs und am Schluss die VM die den DomainController macht herunter.
-
Klaus_Urban
- Member
- Beiträge: 210
- Registriert: 18.02.2011, 11:30
Hallo
@Alveran
>Er muß vor dem Shutdown automatisch schauen welche Terminalserver laufen und >diese als erstes herunter fahren
warum? Trage doch einfach alle in der richtigen Reihenfolge ein.
Wenn eine VM nicht eingeschaltet ist, wird sie auch nicht heruntergefahren.
#!/bin/sh
VM_NAME="ST-Server.vmx"
VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1
VM_NAME="SA-Server.vmx"
VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1
VM_NAME="SD-Server.vmx"
VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1
sleep 120
/bin/halt
Klaus
@Alveran
>Er muß vor dem Shutdown automatisch schauen welche Terminalserver laufen und >diese als erstes herunter fahren
warum? Trage doch einfach alle in der richtigen Reihenfolge ein.
Wenn eine VM nicht eingeschaltet ist, wird sie auch nicht heruntergefahren.
#!/bin/sh
VM_NAME="ST-Server.vmx"
VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1
VM_NAME="SA-Server.vmx"
VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1
VM_NAME="SD-Server.vmx"
VM_ID=`/bin/vim-cmd vmsvc/getallvms | grep ${VM_NAME} | awk '{print $1}'`
/bin/vim-cmd vmsvc/power.shutdown ${VM_ID} > /dev/null 2>&1
sleep 120
/bin/halt
Klaus
-
monster900
- Member
- Beiträge: 152
- Registriert: 27.02.2008, 15:10
@Alveran
Habt Ihr einen HA-Cluster im Einsatz?
Dann wird das Ganze noch etwas komplexer. Man kann dann ja nie sicher sein, auf welchem Host die entsprechende VM jetzt wirklich läuft.
Im Prinzip müsstest Du vorab die Shutdown-Reihenfolge der Maschinen und die entsprechenden Hostserver definieren. Anschließend müßte dann das Shutdownscript prüfen auf welchen Server die VM läuft und diese dann herunterfahren...
Damit ärgere ich mich immer noch rum.
Gruß
Dirk
Habt Ihr einen HA-Cluster im Einsatz?
Dann wird das Ganze noch etwas komplexer. Man kann dann ja nie sicher sein, auf welchem Host die entsprechende VM jetzt wirklich läuft.
Im Prinzip müsstest Du vorab die Shutdown-Reihenfolge der Maschinen und die entsprechenden Hostserver definieren. Anschließend müßte dann das Shutdownscript prüfen auf welchen Server die VM läuft und diese dann herunterfahren...
Damit ärgere ich mich immer noch rum.
Gruß
Dirk
Spricht irgendwas gegen Powershell?
bzw. $_.Name -like "st*"
http://www.virtu-al.net/2010/01/06/powercli-shutdown-your-virtual-infrastructure/
Code: Alles auswählen
Get-VM | Where { $_.PowerState -eq "PoweredOn" -and $_.Notes -match "Terminalserver" } | Shutdown-VMGuestbzw. $_.Name -like "st*"
http://www.virtu-al.net/2010/01/06/powercli-shutdown-your-virtual-infrastructure/
Du hast dich bestimmt 2 mal mit dem Virtual Center verbunden
Code: Alles auswählen
Disconnect-VIServer *Code: Alles auswählen
Connect-VIServer -Server FQDNZurück zu „vSphere 5 / ESXi 5 und 5.1“
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste