Seite 1 von 1

PowerCLI - Scripting für power off und on nach Annotations

Verfasst: 17.02.2012, 20:03
von forum-merlin
Hallo Forum.

ich bin neu hier, lese aber schon eine ganze Weile mit.
Dies ist mein erster Beitrag, Habt also bitte etwas nachsehen mit mir, wenn ich nicht so ganz so firm bin.

Ich habe zwar die Suche bereits genutzt, bin aber noch nicht fündig geworden.
Ich habe alle 136 Suchergebnisse zum thema "PowerCLI" durchgeschaut.

Ich bin VMWare Admin für einen Teilbereich unserer Cluster (mehrere).
Wir haben um die 50 Host´s, und entliche Resource Pools.

Mein Bereich ist ein ResourcePool eines bestimmten Clusters mit 12 Host, bzw. eines definierten vCenters in der Version 4.1
Darunter gibt es beispielsweise einen RP namens AB_EMEA, und darunter weitere.
Unterhalb AB_EMEA sind rund 400 VM´s die ich gerne steuern möchte.

Mein Ziel:
Wir haben Annotation Felder, wo wir Zusatzinformationen zu einem Image eintragen.
ich möchte gerne in eines der Felder "Flags" eintragen, die den Betrieb beschreiben sollen.

Beispiel:
VM-A hat in einem Annotation Feld "weekly-s" stehen.
>> Das soll bedeuten, das Image soll wöchentlich z.B. am FR um 22:00 Uhr in suspended gehen.

VM-B hat in dem besagten Feld "weekly-o" stehen.
>> Dieses Image soll ebenfalls am FR um 22.00 Uhr angefasst werden, aber eben POWER OFF

Das ganze dann noch mit "daily-s" und "daily-o" und auch "monthly-s" und "monthly-o"

Andere Maschinen haben ein 24x7 "Flag"
Hier soll dann eben die Maschine nie ausgeschaltet werden, und wenn eine aus ist, dann soll sie eingeschaltet werden.

"daily-s" = täglich suspended
"daily-o" = täglich Power OFF

"weekly-s" = wöchentlich suspended
"weekly-o" = wöchentlich Power OFF

"monthly-s" = monatlich suspended
"monthly-o" = monatlich Power OFF

24x7 = immer ON, wenn OFF, dann Start


Ich weiss wie ich Images per PowerCLI einschalte, oder ausschalte.

Ich check aber nicht, wie ich die Annotations Felder parsen kann, und das Ergebnis wie eine Liste an den PowerOff (Shutdown-VMGuest) übergeben kann.

Ich bin einffach kein Scripter.

Wer kann mir hier helfen?

ps.: Bevor die Frage kommt...
Es handlet sich hier nicht um einen FreeESXi



Danke und Gruß
der Merlin :D

Verfasst: 17.02.2012, 20:38
von irix
Der Jörg wuerde nun sagen das es da auch was von Ratiopharm aka vSPhere Orchestrator gibt. Aber während er noch klickt.... hier ein Script was das CustomField "Kunde" ausliest und den Feldname: Wert da in Zeile 17 ausgibt.

Das heist du must den Wert in einem switch/case auswerten um dann deine Stop/Start/Suspend/$Whatever zumachen. Wenn du nur erstmal mit einer VM testen willst schreib "$VMs = Get-VM -Name myvmname" rein.

Gruss
Joerg

Code: Alles auswählen

cls
# Variables
$CustomFieldName = "Kunde"
$VCServerName = "vcs.example.com"
$VCuser = "username"
$VCpass = "password"

# Load missing Snapins
if(get-pssnapin|where{$_.name -ne "VMware.VimAutomation.Core"}){
  Add-PSSnapIn VMware.VimAutomation.Core -ErrorAction SilentlyContinue
}
# Connection
$VC = Connect-VIServer -Server $VCServerName -User "$VCuser" -Password "$VCpass" -EA SilentlyContinue

$VMs = Get-VM
foreach ($VM in $VMs){
  write ("{0}: {1}" -f $CustomFieldName, $VM.CustomFields["$CustomFieldName"])
  }
Disconnect-VIServer -Confirm:$False


Verfasst: 18.02.2012, 07:28
von Tschoergez
:grin: :grin: :grin: Das geht übrigens auch super mit dem Orchestrator :grin: :grin: :grin:

Aber auch da sind ein paar Zeilen Handarbeit in JavaScript gefragt. Für einen Einstieg ein paar Beispiele:
http://www.vcoportal.de/2011/06/vco-custom-attributes/
http://professionalvmware.com/2011/06/a ... ttributes/
http://communities.vmware.com/message/1836544#1836544

Viele Grüße,
Jörg