Übung: Interaktives Erstellen einer Azure-Ressource mit Azure PowerShell

Abgeschlossen

Im ursprünglichen Szenario müssen Sie VMs erstellen, um die CRM-Software (Customer Relationship Management) zu testen. Wenn ein neuer Build verfügbar ist, möchten Sie eine neue VM einrichten, damit Sie die gesamte Installation anhand eines sauberen Images testen können. Nach Abschluss des Tests können Sie die VM löschen.

Jetzt probieren wir die Befehle aus, um eine VM zu erstellen.

Erstellen einer Linux-VM mithilfe von Azure PowerShell

Da Sie die Azure-Sandbox verwenden, müssen Sie keine Ressourcengruppe erstellen. Verwenden Sie stattdessen die vorhandene Sandboxressourcengruppe Name der Sandboxressourcengruppe. Achten Sie auf Standorteinschränkungen.

Hier erfahren Sie, wie Sie eine neue Azure-VM mit Azure PowerShell erstellen:

  1. Verwenden Sie das New-AzVM-Cmdlet zum Erstellen der VM.

    • Geben Sie die Sandboxressourcengruppe Name der Sandboxressourcengruppe an.

    • Benennen Sie die VM gemäß den Benennungsstandards Ihrer Organisation.

    • Wählen Sie einen Standort in der Nähe von Ihnen aus der Liste der verfügbaren Azure-Sandboxstandorte aus.

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Verwenden Sie das Ubuntu Linux-Image Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest.

    • Verwenden Sie das Cmdlet Get-Credential, um die Anmeldeinformationen des VM-Administrators festzulegen.

    • Fügen Sie den OpenPorts-Parameter mit Port 22 für den SSH-Zugriff hinzu.

    • Erstellen Sie einen Namen für eine öffentliche IP-Adresse für die SSH-Anmeldung.

    $azVmParams = @{
        ResourceGroupName   = '<rgn>[sandbox resource group name]</rgn>'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    Tipp

    Mit der Schaltfläche Kopieren können Sie Befehle in die Zwischenablage kopieren. Klicken Sie zum Einfügen im Cloud Shell-Terminal mit der rechten Maustaste auf eine neue Zeile, und wählen Sie dann Einfügen aus, oder verwenden Sie die Tastenkombination UMSCHALT+EINFG (⌘+V unter macOS).

  2. Geben Sie Anmeldeinformationen ein:

    Geben Sie bei entsprechender Aufforderung einen Benutzernamen und ein Kennwort gemäß den folgenden Richtlinien ein: Kennwörter müssen 12 bis 123 Zeichen lang sein und drei der folgenden vier Komplexitätsanforderungen erfüllen: Kleinbuchstaben, Großbuchstaben, Ziffern und Sonderzeichen (Übereinstimmung mit dem regulärem Ausdruck [\W_]). Weitere Informationen finden Sie unter Häufig gestellte Fragen zu virtuellen Linux-Computern.

  3. Warten Sie auf die VM-Erstellung:

    Der VM-Erstellungsprozess kann einige Minuten dauern.

  4. Fragen Sie die Daten ab:

    Fragen Sie nach Abschluss die VM ab, und weisen Sie das VM-Objekt einer Variablen ($vm) zu.

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  5. Zeigen Sie Informationen zur VM an:

    Um Informationen über die VM zu erhalten, zeigen Sie den Inhalt der Variablen an.

    $vm
    

    Beispielausgabe:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. Überprüfen Sie die VM-Eigenschaften:

    Sie können komplexe Objekte über den Memberzugriffsoperator (.) prüfen. Führen Sie den folgenden Befehl aus, um beispielsweise die Eigenschaften im VMSize-Objekt anzuzeigen, das dem Abschnitt HardwareProfile zugeordnet ist.

    $vm.HardwareProfile
    

    Alternativ können Sie den folgenden Befehl ausführen, um Informationen zu einem der Datenträger abzurufen:

    $vm.StorageProfile.OsDisk
    
  7. Rufen Sie die verfügbaren VM-Größen ab:

    Übergeben Sie das VM-Objekt an andere Cmdlets, um verfügbare Größen abzurufen:

    $vm | Get-AzVMSize
    
  8. Rufen Sie die öffentliche IP-Adresse ab:

    Rufen Sie die öffentliche IP-Adresse ab, um eine Verbindung mit der VM herzustellen und sie in einer Variablen zu speichern.

    $ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
    
  9. Stellen Sie eine Verbindung mit der VM her:

    Stellen Sie eine SSH-Verbindung mit der VM mithilfe der IP-Adresse aus der Variablen her. Wenn der Benutzername beispielsweise bob ist, verwenden Sie den folgenden Befehl:

    ssh bob@$($ip.IpAddress)
    

    Melden Sie sich ab, indem Sie exit eingeben.

Löschen einer VM

Löschen Sie die VM nun, um weitere Befehle auszuprobieren. Führen Sie folgende Schritte aus:

  1. Fahren Sie die VM herunter:

    Führen Sie den folgenden Befehl aus:

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  2. Löschen der virtuellen Maschine:

    Wenn die VM beendet wurde, löschen Sie sie, indem Sie das Remove-AzVM-Cmdlet ausführen.

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  3. Listen Sie alle Ressourcen in der Ressourcengruppe auf:

    Verwenden Sie das Cmdlet Get-AzResource, um alle Ressourcen in der Ressourcengruppe aufzulisten. Die Ergebnisse werden an Select-Object weitergeleitet, um bestimmte Eigenschaften zurückzugeben:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    Daraufhin sollten verschiedene Ressourcen (u. a. Datenträger und virtuelle Netzwerke) angezeigt werden, die noch vorhanden sind:

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/virtualNetworks       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/publicIPAddresses     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkInterfaces     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 <rgn>[sandbox resource group name]</rgn>
    

    Der Befehl Remove-AzVM löscht nur die VM. Andere Ressourcen werden hierdurch nicht gelöscht. Führen Sie die folgenden Schritte aus, um sie manuell zu bereinigen:

  4. Löschen Sie die Netzwerkschnittstelle:

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  5. Löschen Sie die Netzwerksicherheitsgruppe:

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  6. Löschen Sie die öffentliche IP-Adresse:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  7. Löschen Sie das virtuelle Netzwerk:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  8. Löschen Sie die verwalteten Betriebssystemdatenträger:

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.

  9. Überprüfen Sie, ob alle Ressourcen entfernt wurden:

    Überprüfen Sie die Ressourcengruppe, um sicherzustellen, dass alle Ressourcen entfernt wurden:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

Sie diese Befehle interaktiv ausgeführt. Ein besserer Ansatz besteht darin, ein PowerShell-Skript zu schreiben. Skripts ermöglichen es Ihnen, die Logik zum Erstellen oder Löschen einer VM in Zukunft wiederzuverwenden.

Als Nächstes sehen wir uns an, wie diese Aufgaben mithilfe eines PowerShell-Skripts automatisiert werden.