Automatisierung des Betriebs von Windows Azure

Tags: Windows Azure, PowerShell

Wenn Sie sich in den ersten Schritten mit Windows Azure auseinandersetzen, werden Sie vermutlich das Management Portal nutzen, um Anwendungen zu verwalten oder bereitzustellen. Im Produktivbetrieb einer Anwendung wäre jedoch ein automatisierter Betrieb wünschenswert, um sowohl Kosten zu senken als auch Fehlerquellen zu minimieren. Auch kann es eine Anforderung sein, dass die Anwendung nicht aus Visual Studio heraus veröffentlicht wird, sondern als Teil eines Build-Prozesses erstellt wird – Stichwort Continuous Integration.

Für diesen Zweck stellt Windows Azure eine REST-basierte Management API bereit, über die sämtliche Services gesteuert werden können. Wer jedoch in der Windows-Welt unterwegs, nutzt für die Automatisierung in der Regel Windows PowerShell. Auf Basis der REST API hat Microsoft nun eine neue Version der PowerShell Cmdlets für Windows Azure auf CodePlex veröffentlicht, mit der sich der Betrieb und das Management der Services automatisieren lässt. So lässt sich z.B. mit dem Befehl Get-Deplyoment sehr einfach der Zustand und die Konfigurationsdaten eines Services auslesen:

image

Im Folgenden beschreibe ich kurz die Verbesserungen und die grundlegenden Funktionen. Einige dieser Verbesserungen der Version 2.2.2 vereinfachen den Umgang mit den Managementdaten einer Subscription (Subscription ID, Certificate Thumbprint, Storage Access Keys, etc.).

Download und Installation

Auf CodePlex erhalten Sie die aktuelle Version zum Download: Windows Azure PowerShell Cmdlets. Bei der Installation werden Sie anschließend gefragt, ob Sie die Erweiterungen als Snapin oder als Modul installieren möchten. Module wurden erst in PowerShell V2 eingeführt und ermöglichen die Weitergabe per Xcopy. Ich bevorzuge daher diese Methode. Nach der Installation erfolgt der Aufruf am einfachsten über das Startmenü.

image

 

Vereinfachtes Subscription Management

Diese Version macht die Arbeit mit unterschiedlichen Subscriptions und Accounts einfacher. Dafür besteht nun die Möglichkeit einmalig die Daten der jeweiligen Subscription einzugeben und mit einem Namen zu verbinden. Bei jedem zukünftigem Funktionsaufruf werden entweder die Standarddaten genutzt, oder man benennt den Namen der im bereits gespeicherten Subscription. Warum ist das nun einfacher? Nun, Sie müssen nicht jedes Mal Subscription ID, Certificate Thumbprint und Storage Access Keys nachschlagen. Hört sich komplizierter an, als es ist:

Mit dem Befehl  Set-Subscription werden die Einstellungsdaten mit einem Namen verknüpft und in der Datei “C:\Users\{username}\AppData\Roaming\Windows Azure PowerShell Cmdlets\DefaultSubscriptionData.xml” abgelegt.

 

   1:  # Subscription Einstellungen dauerhaft festlegen 
   2:   
   3:  $subid = "{subscription id}"
   4:  $cert = Get-Item cert:\CurrentUser\My\CERTTHUMBPRINTUPPERCASE
   5:   
   6:  Set-Subscription -SubscriptionName org-sub1 -Certificate $cert -SubscriptionId $subid 
   7:   

 

Den Thumbprint des Zertifikats erhält man am besten über den Zertifizierungsmanager mit dem Befehl CertMgr.msc in der Eingabekonsole. Bei der Angabe des Thumbprint ist zu beachten, dass er in Großbuchstaben eingegeben werden muss. Word ist hierbei ein guter Helfer. Die Subscription wird einfach aus dem Windows Azure Management Portal kopiert.

image

Über die Angabe des “-SubscriptionName” lassen sich auch mehrere Subscriptions hinterlegen und jederzeit über den Befehl Set-Subscription die aktuelle festlegen:

 

   1:  # Festlegen der aktuellen Subscription
   2:  Select-Subscription -SubscriptionName org-sub1

 

Festlegen der Standard-Subscription

Arbeiten Sie häufig mit ein und derselben Subscription, so legen Sie diese einfach als Standardwert fest:

 
   1:  Set-Subscription -DefaultSubscription org-sub1

 

Hinterlegen der Storage Accounts zu einer Subscription

Benötigen Sie den Zugriff auf den Storage, so hinterlegen Sie die Zugriffsdaten ebenfalls einmalig:

 
   1:  # Hinterlegt zwei Einträge für StorageAccountName und den StorageAccountKey unter dem Namen org-sub1
   2:   
   3:  Set-Subscription -SubscriptionName org-sub1 -StorageAccountName stname1 -StorageAccountKey mystoragekey1
   4:  Set-Subscription -SubscriptionName org-sub1 -StorageAccountName stname2 -StorageAccountKey mystoragekey2
   5:   
   6:  # Definiert einen Standardeintrag als StorageAccount
   7:  Set-Subscription -SubscriptionName org-sub1 -DefaultStorageAccount stname1
 
 

Speicherort für Subscription-Daten ändern

Ohne weitere Angabe werden die ganzen Daten in der Datei “C:\Users\{username}\AppData\Roaming\Windows Azure PowerShell Cmdlets\DefaultSubscriptionData.xml”  gespeichert. Mit der Angabe “-SubscriptionDataFile” können Sie jedoch den Speicherort bestimmen. Beispielsweise ist das hilfreich, wenn Sie diese Daten direkt im Projektverzeichnis speichern möchten, um es bei der Weitergabe mitzugeben (Management-Zertifikat nicht vergessen).

 

   1:  # Überschreibt den Standard-Speicherort
   2:  Set-Subscription -SubscriptionName org-sub1 -Certificate $cert -SubscriptionId $subid -SubscriptionDataFile c:\mysubs.xml
   3:   
   4:  # Liefert die Subscription-Daten von einem alternativen Speicherort zurück
   5:  Get-Subscription -SubscriptionDataFile c:\mysubs.xml

 

Übrigens, eine Liste aller Befehle erhalten Sie mit dem Befehl Get-Command -Module WAPPSCmdlets.

Schreiben Sie doch in den Kommentaren, für was Sie die PowerShell CmdLets für Windows Azure einsetzen.

Add a Comment

Weitere Themen

  • Oracle auf Windows Azure

    Tags: Oracle, Windows Azure, Iaas

    Großartige Neuigkeit für alle Kunden und Nutzer von Oracle: Am Montag gaben Oracle und Microsoft eine Partnerschaft bekannt, mit dem Ziel Kunden den Betrieb von Oracle Software auf Windows Azure und Hyper-V zu ermöglichen. Als Teil der Partnerschaft wird Oracle die Zertifizierung und den Support für Java, Oracle Database und Oracle WebLogic Server sowohl für Hyper-V als auch Windows Azure … more

  • Windows Server 2012 R2 auf Azure

    Tags: Windows Azure, Iaas

    Ein kurzer Hinweis: Auf der TechEd 2013 wurde vor kurzem die Preview des Windows Server 2012 R2 vorgestellt. Nun ist Sie auch auf Windows Azure als Image Template verfügbar. In der Galerie der Images steht nun dieses Template bereit. Details in einer ausführliche Newsmeldung von Microsoft: … more

  • Unterstützte Server und Anwendungen auf Azure

    Tags: Windows Azure, Iaas

    Bei der Nutzung von Windows Azure wird mir häufig die Frage gestellt, ob bestimmte Anwendungen auf Windows Azure unterstützt werden. Durch die neuen Infrastruktur-Services vereinfacht sich dieses Thema erheblich, da die Nutzer den vollen Zugriff auf die persistente virtuelle Maschine erhalten. Ein Test der Anwendung ist dadurch schnelle möglich. In Verbindung mit den vordefinierten Templates und … more

  • Windows Azure Neuigkeiten

    Tags: Windows Azure, Iaas

    Mit dem Start der TechEd kündigte Microsoft heute einige spannende Neuigkeiten zu Windows Azure an, die den Einsatz von Windows Azure im Betrieb von Servern und Applikationen vereinfachen: Minutengenaue Abrechnung: Ganz im Sinne der Cloud-Ökonomie wird nun minutengenau abgerechnet: ab dem 3 Juni werden Virtual Machines, Web Roles und Worker Roles auf die Minute genau abgerechnet. Dies gilt … more

  • Infrastructure as a Service jetzt verfügbar

    Tags: Windows Azure

      Ab sofort ermöglicht Microsoft den Betrieb von virtuellen Maschinen in den weltweit acht verfügbaren Rechenzentren von Microsoft und zwar in einem Betriebsmodell, das als Infrastruktur as a Service(IaaS) bezeichnet wird. Mit der heutigen Verfügbarkeit kann dieser Service mit einem hohen SLA und umfassenden Supportplänen von Microsoft bezogen werden. Sowohl Scott Guthrie als auch General … more