voyager - Fotolia

Azure-Runbooks: Cloud-Automatisierung per PowerShell und Azure Automation

Azure Automation ermöglicht die Automatisierung von Azure-Ressourcen über die PowerShell. Diese Anleitung zeigt, wie Azure-Runbooks erstellt werden.

Immer mehr Unternehmen lagern IT-Services in die Cloud aus, was gleichzeitig die Notwendigkeit einer Plattform schafft, mit der sich Automatisierungsaufgaben rund um diese Services verwalten lassen. In Microsofts Public Cloud Azure heißt diese Plattform Azure Automation. Dieser Cloud-Service stellt Administratoren die Möglichkeit zur Verfügung, IT-Ressourcen wesentlich einfacher zu verwalten.

Azure Automation ist ein natives Microsoft-Tool, um die Windows PowerShell quasi als Platform as a Service (PaaS) auf Azure auszuführen. Mit Azure Automation können Administratoren PowerShell-Skripte und Workflows direkt in der Microsoft-Cloud anstatt auf lokalen Maschinen ausführen.

Azure Automation ist aber nicht einfach nur eine virtuelle Maschine innerhalb der eigenen Azure-Subscription, die PowerShell-Skrtipe ausführt. Azure Automation ist sehr viel tiefer in Azure integriert und wie jeder andere PaaS-Dienst direkt mit Azure-Ressourcen verbunden, wodurch über die PowerShell wesentlich komplexere Automatisierungsaufgaben möglich sind.

Diese tiefe Integration macht den Umgang mit Azure Automation auf der anderen Seite leider auch etwas komplexer, als einfach nur PowerShell-Skripte hochzuladen und sie auszuführen. Für den Anfang sollte man die unterschiedlichen Wege verstehen, wie vorhandener PowerShell-Code genutzt werden kann und wie sich PowerShell-Skripte und Workflows von Grund auf neu mit Azure Automation erstellen lassen. Am Anfang stehen sogenannte Runbooks, die Grundbausteine von Azure Automation. Runbooks sind letztlich PowerShell-Skripte für Azure.

Konfiguration eines Azure Runbooks

Um sich mit dem Erstellen eines Azure Runbooks vertraut zu machen, kann man zum Beispiel einfach eines erstellen, das eine Liste aller virtuellen Maschinen der Azure Subscription ausgibt. Vor dem Erstellen eines Runbooks benötigt man einen Microsoft Automation Account, der die unterschiedlichen Runbooks und Einstellungen der PowerShell Desired State Configuration (DSC) beherbergt. Diese Automation Account wird über das Azure-Portal oder über PowerShell-Module angelegt.

Im Folgenden wird der Weg über die PowerShell verwendet, was ein sehr geradliniger Prozess ist. Das Azure PowerShell-Modul weist das Cmdlet New-AzureRmAutomationAccount auf, bei dem lediglich noch ein Account-Name und eine Ressourcen-Gruppe angegeben werden müssen:

New-AzureRmAutomationAccount -ResourceGroupName adbdemoresourcegroup -Name adamtheautomator -Location 'East US 2'

Anschließend taucht der Account auch bereits im Azure-Portal auf, wie Abbildung 1 zeigt.

Abbildung 1: Microsoft Automation Account im Azure-Portal.

Ein Klick auf den Automation Account zeigt vorhandene Runbooks und ermöglicht das Erstellen neuer Runbooks.

Abbildung 2: Überblick über vorhandene Automation Runbooks.

Über die Optione Add a Runbook und anschließend Create a new runbook kann ein neuer Workflow angelegt werden, wie Abbildung 3 zeigt.

Abbildung 3: Anlegen eines neuen Runbooks.

Das Auswahlmenü für unterschiedliche Workflows zeigt, dass es sich bei Azure Automation eben nicht um einfache PowerShell-Skripte handelt. Hier erhalten Administratoren Auswahlmöglichkeiten für unterschiedliche Runbook-Arten, wie Abbildung 4 zeigt.

Abbildung 4: Unterschiedliche Workflow-Arten für Azure Automation Runbooks.

Die PowerShell ist natürlich die wohl häufigste Runbook-Art, aber wer sich für andere Möglichkeiten interessiert, der findet in der Azure-Dokumentation weitere Informationen.

Wir erstellen also ein PowerShell-Runbook mit dem Namen GeMyVMs. Daraufhin finden wir uns direkt im Editor des Azure-Portals wieder, um das PowerSell-Skript einzugeben. Um Informationen zu den Azure-VMs zu erhalten, erfolgt die Authentifizierung wie von lokalen Maschinen gewohnt. Allerdings gibt es mit Azure-Runbooks keine Interaktivität, wodurch zum Beispiel keine Standardeingaben mit Benutzername und Passwort funktionieren, wie man dies auf lokalen Maschinen mit Add-AzureRmAccount erwarten würde.

Stattdessen muss vorher bereits ein Credential-Objekt erstellt werden, das dem Skript dann bei der Ausführung übergeben wird. Hierfür muss ein Automation-Asset erstellt werden, welches in diesem Fall die Anmeldedaten enthält. Automation-Assets speichern sensible Informationen wie eben Anmeldedaten verschlüsselt innerhalb von Azure.

Um dieses Credential-Asset zu erstellen, muss man erneut auf die lokale PowerShell-Konsole zurück, um dort über New-AzureRmAutomationCredential das Credential-Asset anzulegen, das den Zugang zur Azure-Subscription repräsentiert:

New-AzureRmAutomationCredential -Name 'Full Administrator' -Description 'To authenticate to my Azure subscription' -Value (Get-Credential) -ResourceGroupName adbdemoresourcegroup -AutomationAccountName adamtheautomator.

Im Automation Account erscheint dieses Credential-Asset jetzt unter dem Bereich Assets, wie Abbildung 5 zeigt.

Abbildung 5: Das Credential-Asset im Automation Account.

Das Credential-Asset kann jetzt über Get-AutomationPSCredential innerhalb des Runbooks referenziert werden:

$credential = Get-AutomationPSCredential -Name 'Full Administrator'

Nachdem die Anmeldedaten zur Authentifizierung nun vorliegen, kann über Add-AzureRmAccount die Authentifizierung der Azure-Subscription erfolgen. Anschließend wird das Runbook, wie in Abbildung 6 gezeigt, mit einem Klick auf Publish veröffentlicht.

Abbildung 6: Die Azure-Subscription ist authentifiziert und das Runbook fertig für die Veröffentlichung.

Über die Liste verfügbarer Runbooks kann das neu erstellte Runbook jetzt ausgewählt und über Start gestartet werden. Azure Automation reiht das Runbook damit in die Liste abzuarbeitender Jobs ein. Nachdem es ausgeführt wurde, erhält man einen Statusbericht, wie in Abbildung 7 zu sehen.

Abbildung 7: Der Runbook-Status in Azure Automation.

Das für dieses Beispiel erstelle Runbook zeigt natürlich nicht viel an, da es kaum funktionalen Code enthält. Fügt man dem Runbook Get-AzureRmVm hinzu, dann sollte es eine Liste aller Azure-VMs ausgeben.

Abbildung 8: Eine Liste aller virtueller Maschinen, ausgegeben über ein Azure Automation Runbook.

Wie Abbildung 8 zeigt, hat Azure Automation eine Liste aller Azure-VMs ausgegeben, das Runbook ist also fertig und funktioniert. Dabei handelt es sich natürlich um ein sehr einfaches Runbook, der Prozess ist aber immer gleich, und so lassen sich über die oben aufgeführten Schritte auch komplexere Runbooks erstellen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im September 2016 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Public-Cloud-Infrastruktur

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close