Windows Azure und Powershell–How to

Hallo @all,

[Update: you need this article in English? Try Bing Translate]

nachdem ich die letzten Wochen mit Windows Azure gearbeitet habe, kommen hier einige nützliche Tips & Tricks:

Grundvoraussetzung:

Hat man die Windows Azure Powershell Console installiert, starten wir die Azure Powershell Console über das Startmenü:

image

Danach ist die Powershell-Console mit der Subscription (also dem Azure Account) zu verbinden. Dies macht man mit dem cmdlet: Get-AzurePublishSettingsFile

image 

Danach öffnet sich ein Browser Fenster zu Windows Azure. Man meldet sich mit der Live-ID an bekommt automatisch eine Datei zum Download angeboten, mit der Endung Azdem*.PubishingSettings. Diese Datei auf der Platte speichern.

image

In der PublishingSetting-Datei ist ein Zertificate enthalten das man importiert mit dem cmdlet: Import-AzurePublishSettings

image

Danach kann man das Subscritpion Certificate mit Get-AzureSubscription ansehen:

image

Tip: mittels certmgr.msc kann man sehen was unter der Haube passiert Path: “Personal"/Certificates”

image

image

Man hat ein Zertifikate erstellt mit dem Namen “Windows Azure Tools” und in den My Personal Zertifikatsspeicher abgelegt.
Wichtig: wenn man das Zertifikate “Windows Azure Tools” löscht, dann muss man erneut das Publishing-SettingsFile herunterladen und es erneut importieren. *das hat mich 5 min Troubleshooting gekostet, als ich letztens mein Zertifikatspeicher aufgeräumt hatte Winking smile, also ich hatte wohl etwas zuviel aufgeräumt Winking smile

Nun kann man mit Azure-cmdlets die Subscription verwalten. Welche CMDLETS gibt es? get-command –Module Azure

image

Es gibt mit dem Spring Release (Juni2012) schon 98 cmdlets…

image

Mit Get-AzureVM hole ich mir alle VMs aus der Subscription:

image

Möchte ich Kosten sparen kann ich die Compute-Zeit einer VM auf 0 heruntersetzen indem man die Maschine nicht nur einfach herunterfährt, sondern auch die VM-Instance entfernt. Die VHD bleibt erhalten, doch ist es wichtig alle Konfigurationen von der VM-Config mit zu sichern. Dafür verwendet man Export-AzureVM

Die VMInstanzen laufen in einem Azure-Service den man bestimmt mit get-AzureService.

image

Jetzt kann man mit Export-AzureVM –ServiceName <ServiceName> –Name <VM Name> –Path <…> alle VM-Configs sichern.

image
image
image

In der Konfiguration ist bspw. enthalten:

- IP Adresse, Subnet
- LoadBalancer Konfig
- Welche Disks sind zur VM attached
- Welche Ports sind als EndPoint freigeschalten

Jetzt kann man getrost die VMs über die Azure Management UI löschen oder mit PowerShell cmdlet Remove-AzureVM

image
image

Und siehe da die Maschine ist weg Smile

image  image

Nicht jedoch die .VHD der Maschine:

image

 

Um die Maschine wieder zu starten/aufzubauen verwendet man import-AzureVM –Path <…> in Verbindung mit New-AzureVM. Der komplette Befehl sieht dann so aus:

Import-AzureVM -path C:\Temp\AzureVM_Config\PHSP01.config | New-AzureVM -ServiceName PHDC01

image

image

image

und siehe da, die VM ist wieder da Smile

image image

Zu Schluss noch ein Zusatz warum man über dieses Szenario nachdenken kann. Eine SharePoint Farm hat in der Regel mehr als einen WebFrontent (WFE) Server. Wenn es Zeiten gibt sogenannte “Non-Business-Hours” in denen man einige WFEs nicht braucht, so kann man diese mit den oben genannten Schritten abschalten. D.h. vielleicht bleibt ein WFE die ganze Zeit über an, und die restlichen WFE’s in der Farm werden onDemand hochgefahren über einen automatisierten Prozess Smile und SharePoint läuft und läuft on demand.

image

Liebe Grüße

Patrick