Erstellen von Azure-Ressourcen mit Azure PowerShell mithilfe eines Skripts

Abgeschlossen

Komplexe oder sich wiederholende Aufgaben können zeitaufwendig und fehleranfällig sein, wenn sie manuell ausgeführt werden. Organisationen bevorzugen es, diese Aufgaben zu automatisieren, um Kosten zu senken und Fehler zu vermeiden.

Automatisierung ist im CRM-Beispiel (Customer Relationship Management) unerlässlich. In diesem Beispiel testen Sie Ihre Software auf mehreren Linux-VMs, die kontinuierlich gelöscht und neu erstellt werden müssen. Die Verwendung eines PowerShell-Skripts zum Automatisieren der VM-Erstellung ist viel effizienter und zuverlässiger als die manuelle Erstellung der VMs.

Bevor Sie eine VM erstellen, muss Ihr Skript einige weitere Voraussetzungen erfüllen:

  • Erstellen von mehreren VMs: Verwenden Sie New-AzVM, um mehrere eindeutig benannte VMs zu erstellen.
  • Ressourcengruppenparameter: Lassen Sie zu, dass das Skript den Namen der Ressourcengruppe als Parameter akzeptiert.

In dieser Lerneinheit erfahren Sie, wie Sie ein 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, und 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 schreiben, sollten Sie Visual Studio Code (VS Code) verwenden. Dieser Editor ist kostenlos und wird unter Windows, Linux und macOS unterstützt. Die PowerShell-Erweiterung für VS Code bietet Features wie Syntaxhervorhebung und eine Liste der verfügbaren Cmdlets.

Der folgende Screenshot ist ein Beispiel für VS Code mit einem Beispielskript, um eine Verbindung mit Azure herzustellen und eine VM zu erstellen:

Screenshot: VS Code mit einem PowerShell-Skript zum Erstellen einer VM in Azure

Sobald Sie dieses Skript erstellt haben, können Sie es über die PowerShell-Befehlszeile ausführen, indem Sie den Namen der Datei mit einem vorangestellten Punkt für das aktuelle Verzeichnis und einem umgekehrten Schrägstrich übergeben:

.\myScript.ps1

PowerShell-Verfahren

PowerShell enthält Features, die häufig in Programmiersprachen zu finden sind. Sie können Variablen definieren, Branches und Schleifen verwenden, Befehlszeilenparameter erfassen, Funktionen schreiben, Kommentare hinzufügen und vieles mehr. Für das Skript, auf das Sie sich konzentrieren, benötigen Sie drei wichtige Features: Variablen, Schleifen und Parameter.

Variablen

In PowerShell werden Variablen mithilfe des Dollarzeichens ($) deklariert, und ihnen werden Werte mit dem Operator „equals“ (=) zugewiesen. Zum Beispiel:

$location = 'eastus'

Verwenden Sie das Präfix $ und seinen Namen, um den Wert zu ermitteln, der in einer Variable gespeichert ist:

$location

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

Schleifen

PowerShell verfügt über mehrere Schleifenstrukturen, einschließlich von For, Foreach, Do-Until, Do-While und While. Die Schleife Foreach ist eine gute Wahl für Szenarien, in denen Sie eine Schleife für verschiedene Werte in einer Auflistung ausführen müssen.

$items = 'web','app','sql'
foreach ($item in $items) {
    $item
}

Parameter

Wenn Sie ein PowerShell-Skript erstellen, können Sie dem Skript Parameter hinzufügen und dann beim Ausführen des Skripts Werte für diese Parameter angeben. Zum Beispiel:

.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus

Erfassen Sie innerhalb des Skripts die Werte in Variablen. In diesem Beispiel werden die Parameter Name und Location verwendet:

param (
    [string[]]$Name,
    [string]$Location
)

Sie können diese Parameter als Eingabe nutzen und eine Schleife verwenden, um mehrere VMs anhand der angegebenen Parameter zu erstellen. Auf diese Weise bleibt das Skript generisch, und die Wiederholung desselben Codes wird vermieden.

Kombinieren von Verfahren

Durch die Kombination von PowerShell-Sprachfeatures und Azure PowerShell-Cmdlets erhalten Sie alle Tools, die Sie für die Automatisierung von Azure-Aufgaben benötigen. Im CRM-Beispiel können Sie mehrere Linux-VMs mithilfe eines parametrisierten Skripts und einer Schleife erstellen, um den Prozess zu optimieren. Mit diesem Skript können Sie einen komplexen Vorgang in einem einzigen Schritt ausführen.

Beispielskript

Hier ist ein Beispielskript, das die Verwendung von Variablen, Schleifen und Parametern zum Erstellen mehrerer VMs veranschaulicht:

param (
    [string[]]$Name = 'web','app','sql',
    [string]$ResourceGroupName,
    [string]$Location = 'eastus'
)

$adminCredential = Get-Credential

foreach ($vm in $Name) {
    $azVmParams = @{
        ResourceGroupName   = $ResourceGroupName
        Name                = $vm
        Credential          = $adminCredential
        Location            = $Location
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = $vm
    }
    New-AzVM @azVmParams
}

Ausführen des Skripts

Speichern Sie das Skript unter CreateVMs.ps1, und führen Sie es über die PowerShell-Befehlszeile aus. Geben Sie dabei die erforderlichen Parameter an:

.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>

Mithilfe dieses Skripts können Sie mehrere VMs in verschiedenen Ressourcengruppen effizient erstellen. Sich wiederholende Aufgaben werden dabei automatisiert, und die Konsistenz in Ihrer Azure-Umgebung wird sichergestellt.