Xen-Server Updatescript v(0.)2 ;)

Xen-Server Updatescript v(0.)2 ;)

Nachdem ich es leid war jeden Befehl über das XE-Command an den XenServer zu übermitteln, habe ich mich versucht das Ganze in PowerShell Cmdlets zu packen.
Dank der passenden SDK von Citrix bekommt man ja einen ganzen Schwung Cmdlets für den XenServer geliefert 😉
Hier also mal mein erster Versuch das Script mehr zu nem PS-Script zu machen…

Import-Module ‚C:Program Files (x86)CitrixXenServerPSSnapInXenServerPSSnapIn.dll‘

Import-Module ‚C:Program Files (x86)CitrixXenServerPSSnapInXenServer.dll‘

$server = read-host „Servername“

$password = „root-password“

# Pfad zu den installierenden Updates!

# In diesem Ordner sollten NUR neu einzuspielende Updates liegen!!!

$pfad = “\FileserverShared_Folderxs_updates

#

#Start Script

#

Connect-XenServer -server $server -UserName root -Password $password

write-host „$server wird gepatched; die VMs werden heruntergefahren“ -foregroundcolor „green“

write-host „=======================================================“

Get-XenServer:VM | Where-Object { $_.is_a_template-eq $false-and $_.is_control_domain-eq $false} | foreach-object {Invoke-XenServer:VM.CleanShutdown -vm $_.name_label}

foreach ($update in Get-ChildItem $pfad)

{

write-host „$update wird vorbereitet“ -foregroundcolor „green“

Invoke-XenServer:Host.Disable -Host $server

Invoke-XenServer:Host.Reboot -Host $server

write-host „Server wird rebootet“ -foregroundcolor „green“

start-sleep -s 300

Connect-XenServer -server $server -UserName root -Password $password

write-host „$update wird hochgeladen“ -foregroundcolor „green“

xe.exe -s $server -u root -pw $password patch-upload file-name=$pfad$update | out-file $server“_uuid.txt“

$uuid_patch = get-content .$server“_uuid.txt“

write-host „$update wird installiert“ -foregroundcolor „green“

xe.exe -s $server -u root -pw $password patch-pool-apply uuid=$uuid_patch

write-host „$server erfolgreich mit $update gepatched“ -foregroundcolor „green“

write-host „=======================================================“

}

write-host „$server erfolgreich gepatched; letzter reboot“ -foregroundcolor „yellow“

Invoke-XenServer:Host.Disable -Host $server

Invoke-XenServer:Host.Reboot -Host $server

start-sleep -s 300

Connect-XenServer -server $server -UserName root -Password $password

Remove-Item .$server“_uuid.txt“

write-host „Die VMs werden wieder gestartet“ -foregroundcolor „green“

Get-XenServer:VM | Where-Object { $_.is_a_template-eq $false-and $_.is_control_domain-eq $false} | foreach-object {Invoke-XenServer:VM.Start -vm $_.name_label}

Disconnect-XenServer

Nun muss nur noch der Updateprozess selbst umgebaut werden…

Das benötigte SDK-Paket gibt es hier:
http://community.citrix.com/cdn/xs/sdks/
Und hier ein tolles Poster mit allen Befehlen 😉 Danke an die Jungs bei X-Tech:
http://www.x-tech.at/download_file.php?file=%2Ffiles%2FCitrix_XenServer_6.0_CmdLet_Poster.pdf
Und zum Schluss noch das Script als Zip-File:
https://docs.google.com/open?id=0B0kzgx7xeDmjQ29HZG5UcGdLMUU

Kommentar verfassen

%d Bloggern gefällt das: