Ü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.

Hinweis

Diese Übung ist optional. Wenn Sie diese Übung abschließen möchten, müssen Sie ein Azure-Abonnement erstellen, bevor Sie beginnen. Wenn Sie nicht über ein Azure-Konto verfügen oder derzeit kein Azure-Konto erstellen möchten, können Sie die Anweisungen durchlesen, damit Sie die informationen verstehen, die präsentiert werden.

Hinweis

Sie müssen eine Ressourcengruppe verwenden, um die Schritte in dieser Übung auszuführen. Sie können eine ressourcengruppe verwenden, die Sie bereits erstellt haben, oder Sie können eine neue Ressourcengruppe speziell für diese Übung erstellen. Wenn Sie sich dafür entscheiden, eine neue Ressourcengruppe zu erstellen, macht es das einfacher, alle während der Übung erstellten Ressourcen zu bereinigen. Wenn Sie nicht über eine vorhandene Ressourcengruppe verfügen oder eine neue speziell für diese Übung erstellen möchten, können Sie die Schritte im Azure-Portal und Azure Resource Manager ausführen, um Ressourcengruppen mithilfe des Azure-Portals zu erstellen, oder Sie können die Schritte unter "Azure-Ressourcengruppen verwalten" mithilfe der Azure CLI ausführen, um eine Ressourcengruppe mithilfe der Azure CLI zu erstellen.

Erstellen einer Linux-VM mithilfe von Azure PowerShell

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 Ressourcengruppe für Ihren virtuellen Computer an.
    • Benennen Sie die VM gemäß den Benennungsstandards Ihrer Organisation.
    • Wählen Sie einen Speicherort in der Nähe von Ihnen aus der Liste der verfügbaren Azure-Regionen aus.
    • 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 ssh-Zugriff hinzu.
    • Erstellen Sie einen Namen für eine öffentliche IP-Adresse für die SSH-Anmeldung.
    $azVmParams = @{
        ResourceGroupName   = 'myResourceGroupName'
        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
    

    Ersetzen Sie "myResourceGroupName" im vorherigen Beispiel durch den Namen einer vorhandenen Ressourcengruppe oder den Namen der Ressourcengruppe, die Sie für diese Übung erstellt haben.

    Tipp

    Mit der Schaltfläche " Kopieren " können Sie Befehle in die Zwischenablage kopieren. Klicken Sie zum Einfügen mit der rechten Maustaste auf eine neue Zeile im Cloud Shell-Terminal, und wählen Sie "Einfügen" aus, oder verwenden Sie die Tastenkombination UMSCHALT+Einfügen (%+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 in den häufig gestellten Fragen zur Linux-VM.

  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 myResourceGroupName
    
  5. Zeigen Sie Informationen zur VM an:

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

    $vm
    

    Beispielausgabe:

    ResourceGroupName : myResourceGroupName
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/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 beispielsweise den folgenden Befehl aus, um die Eigenschaften im Objekt anzuzeigen, das VMSize 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 myResourceGroupName -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 diese 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 Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, den Vorgang fortzusetzen.

  2. Löschen der VM:

    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 Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, 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       myResourceGroupName
    testvm-eus-01           Microsoft.Network/virtualNetworks       myResourceGroupName
    testvm-eus-01           Microsoft.Network/publicIPAddresses     myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkSecurityGroups myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkInterfaces     myResourceGroupName
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 myResourceGroupName
    

    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 Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, den Vorgang fortzusetzen.

  5. Löschen Sie die Netzwerksicherheitsgruppe:

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

    Geben Sie Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, den Vorgang fortzusetzen.

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

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

    Geben Sie Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, den Vorgang fortzusetzen.

  7. Löschen Sie das virtuelle Netzwerk:

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

    Geben Sie Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, 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 Y ein, und drücken Sie die EINGABETASTE , wenn Sie aufgefordert werden, 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.