Erstellen und Speichern von Skripts in Azure PowerShell

Abgeschlossen

Komplexe oder wiederkehrende Aufgaben erfordern häufig viel Zeit für die Verwaltung. Organisationen bevorzugen, diese Aufgaben zu automatisieren, um Kosten zu senken und Fehler zu vermeiden.

Die Automatisierung ist im Unternehmensbeispiel zum Kundenbeziehungsmanagement (Customer Relationship Management, CRM) wichtig. Dort testen Sie Ihre Software auf mehreren virtuellen Linux-Computern (VMs), die Sie kontinuierlich löschen und neu erstellen müssen. Sie sollten ein PowerShell-Skript zum Automatisieren der VM-Erstellung verwenden, anstatt sie jedes Mal manuell zu erstellen.

Bevor Sie einen virtuellen Computer erstellen, müssen einige weitere Voraussetzungen für das Skript erfüllt sein:

  • Sie erstellen mehrere virtuelle Computer, deshalb sollte die Erstellung in einer Schleife stattfinden.
  • Sie müssen VMs in drei verschiedenen Ressourcengruppen erstellen. Der Name der Ressourcengruppe sollte dem Skript also als Parameter übergeben werden.

In diesem Abschnitt sehen Sie, wie Sie ein Azure PowerShell-Skript schreiben und ausführen, das diese Anforderungen erfüllt.

Was ist ein PowerShell-Skript?

Ein PowerShell-Skript ist eine Textdatei, die Befehle und Steuerelementkonstrukte enthält. Bei diesen Befehlen handelt es sich um Aufrufe von Cmdlets. Die Steuerkonstrukte sind beispielsweise Programmierfeatures wie Schleifen, Variablen, Parameter und Kommentare, die von PowerShell bereitgestellt werden.

PowerShell-Skriptdateien haben die Erweiterung .ps1. Sie können diese Dateien mit jedem Text-Editor erstellen und speichern.

Tipp

Wenn Sie PowerShell-Skripts in Windows schreiben, können Sie Windows PowerShell Integrated Scripting Environment (ISE) verwenden. Dieser Editor stellt Features wie die Syntaxkennzeichnung und eine Liste der verfügbaren Cmdlets bereit.

Der folgende Screenshot zeigt die Windows PowerShell Integrated Scripting Environment (ISE) mit einem Beispielskript zum Verbinden mit Azure und Erstellen eines virtuellen Computers in Azure.

Screenshot of the Windows PowerShell Integrated Scripting Environment with a script to create a virtual machine open in the editing window.

Sobald Sie das Skript geschrieben haben, führen Sie es über die PowerShell-Befehlszeile aus, indem Sie den Namen der Datei mit einem vorangestellten Punkt und Schrägstrich übergeben:

.\myScript.ps1

PowerShell-Verfahren

PowerShell enthält viele Features, die auch in typischen Programmiersprachen vorhanden sind. Sie können Variablen definieren, Branches und Schleifen verwenden, Befehlszeilenparameter erfassen, Funktionen schreiben, Kommentare hinzufügen und vieles mehr. Für dieses Skript sind drei Features erforderlich: Variablen, Schleifen und Parameter.

Variablen

Wie Sie bereits in der vorherigen Lerneinheit erfahren haben, unterstützt PowerShell die Verwendung von Variablen. Verwenden Sie $ zum Deklarieren einer Variablen, und verwenden Sie = zum Zuweisen eines Werts. Beispiel:

$loc = "East US"
$iterations = 3

Variablen können Objekte enthalten. Die folgende Definition legt die Variable adminCredential beispielsweise auf das Objekt fest, das vom Cmdlet Get-Credential zurückgegeben wird.

$adminCredential = Get-Credential

Verwenden Sie das Präfix $ und seinen Namen wie im Folgenden dargestellt, um den Wert abzurufen, der in einer Variable gespeichert ist:

$loc = "East US"
New-AzResourceGroup -Name "MyResourceGroup" -Location $loc

Schleifen

PowerShell verfügt über mehrere Schleifenstrukturen, einschließlich von For, Do...While und For...Each. Die For-Schleife ist für Ihre Anforderungen am besten geeignet, da Sie ein Cmdlet mit einer festgelegten Häufigkeit ausführen.

Im folgenden Beispiel wird die Basissyntax veranschaulicht. Das Beispiel wird für zwei Iterationen ausgeführt und gibt jedes Mal den Wert von i aus. Die Vergleichsoperatoren lauten z. B. -lt (kleiner als), -le (kleiner als oder gleich), -eq (gleich) oder -ne (ungleich).

For ($i = 1; $i -lt 3; $i++)
{
    $i
}

Parameter

Wenn Sie ein Skript ausführen, können Sie Argumente über die Befehlszeile übergeben. Sie können ebenfalls Namen für jeden Parameter bereitstellen, damit das Skript die Werte extrahieren kann. Beispiel:

.\setupEnvironment.ps1 -size 5 -location "East US"

Innerhalb des Skripts erfassen Sie die Werte in Variablen. In diesem Beispiel werden die Parameter anhand von Namen abgeglichen:

param([string]$location, [int]$size)

Sie können die Namen weglassen, wenn Sie die Befehlszeile verwenden. Beispiel:

.\setupEnvironment.ps1 5 "East US"

Verwenden Sie innerhalb des Skripts Position für den Abgleich, wenn die Parameter unbenannt sind:

param([int]$size, [string]$location)

Sie können diese Parameter als Eingabe nutzen und eine Schleife verwenden, um mehrere VMs anhand der angegebenen Parameter zu erstellen. Das sehen Sie sich als Nächstes an.

Durch die Kombination von PowerShell und Azure PowerShell können Sie alle Tools nutzen, die Sie für die Automatisierung von Azure benötigen. In Ihrem CRM-Beispiel können Sie mehrere virtuelle Linux-Computer mithilfe eines Parameters erstellen, damit das Skript generisch bleibt. Außerdem kann eine Schleife erstellt werden, um wiederholten Code zu vermeiden. Mit diesem Skript können wir einen ehemals komplexen Vorgang in einem einzigen Schritt auszuführen.