Übung: Interaktives Erstellen einer Azure-Ressource mit der Azure CLI

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.

Übung: Erstellen einer Linux-VM mit der Azure CLI

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 der Azure CLI erstellen:

  1. Verwenden Sie den Befehl az vm create, um die VM zu erstellen.

    • Verwenden Sie den Befehl az group list, um den Namen der Sandboxressourcengruppe abzurufen.

    • Weisen Sie der VM gemäß den Benennungsstandards Ihrer Organisation einen Namen zu.

    • Wählen Sie einen Ort in Ihrer Nähe aus der Liste der verfügbaren Azure-Sandboxspeicherorte aus.

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Verwenden Sie das Linux-Image: Ubuntu2204.

    • Weisen Sie einen Administratorbenutzernamen gemäß den Benennungsstandards Ihrer Organisation zu.

    #!/bin/bash
    
    # Get the single resource group name created by the sandbox.
    rgName=$(az group list --query "[].{Name:name}" --output tsv)
    echo $rgName
    
    # Create additional variables with values of your choice.
    vmName="msdocs-vm-01"
    vmLocation="westus"
    vmImage="Ubuntu2204"
    vmAdminUserName="myAzureUserName"
    
    # Create the VM
    az vm create \
      --resource-group $rgName \
      --name $vmName \
      --location $vmLocation \
      --image $vmImage \
      --public-ip-sku Standard \
      --admin-username $vmAdminUserName \
      --generate-ssh-keys
    

    Tipp

    Haben Sie die Schaltfläche Kopieren verwendet und bemerkt, dass alle Zeilenfortsetzungszeichen entfernt wurden? Dieses Verhalten ist beabsichtigt. Da die Azure CLI in vielen Umgebungen mit unterschiedlichen Zeilenfortsetzungszeichen ausgeführt werden kann, werden diese mit der Schaltfläche Kopieren entfernt. Wenn Sie ein formatiertes Skript kopieren möchten, verwenden Sie die Maus, um den Inhalt des Codeblocks auszuwählen und zu kopieren.

    Klicken Sie zum Einfügen in Azure Cloud Shell mit der rechten Maustaste auf eine neue Zeile im Cloud Shell-Terminal, und wählen Sie dann „Einfügen“ aus, oder verwenden Sie die Tastenkombination UMSCHALT+EINFG (⌘+V unter macOS).

    Wenn Ihr Skript nicht ordnungsgemäß kopiert wurde und das Sandboxterminal auf zusätzliche Eingabe wartet, verwenden Sie STRG+Z, um zu einer Eingabeaufforderung zurückzukehren, und versuchen Sie es erneut.

  2. Warten Sie auf die Erstellung der Linux-VM:

    Der VM-Erstellungsprozess kann einige Minuten dauern.

  3. Abrufen von Informationen zur VM

    Nach Abschluss gibt die Azure CLI Informationen zum virtuellen Computer im JSON-Format zurück. Verwenden Sie die Befehle az vm list und az vm show, um bestimmte Informationen zum virtuellen Computer abzurufen. Im Folgenden finden Sie einige Beispiele:

    Mehrere dieser Skripts verwenden Variablennamen und Werte, die in den vorherigen Schritten gespeichert wurden.

    Abrufen einer Liste aller virtuellen Computer im Tabellenformat

    az vm list --output table
    

    Abrufen von Informationen zu einem einzelnen virtuellen Computer im JSON-Format

    Einige dieser Ausgaben werden angezeigt, nachdem eine neue VM erstellt wurde. Es ist jedoch hilfreich, weitere Informationen zurückzugeben, wenn sie geschachtelte Eigenschaftsnamen ermitteln, auf die in einem Skript verwiesen werden soll. Bei Eigenschaftennamen wird zwischen Groß- und Kleinschreibung unterschieden.

    az vm show --resource-group $rgName --name $vmName
    

    Abrufen von Informationen zu VM-Eigenschaften

    # Get the time the VM was created
    az vm show --resource-group $rgName --name $vmName --query "timeCreated"
    
    # Get the OS disk storage account type
    az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"
    

    Speichern einer Eigenschaft eines virtuellen Computers in einer Variablen

    Die Azure CLI besitzt mehrere verfügbare Ausgabetypen. JSON ist der Standard, aber entfernen Sie beim Speichern von Werten in Variablen zusätzliche Formatierungen mit --output tsv.

    #!/bin/bash
    # Store the VM id
    vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv)
    echo $vmID
    
    # Store the public IP address
    publicIP=$(az vm list-ip-addresses \
        --resource-group $rgName \
        --name $vmName \
        --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv)
    echo $publicIP
    
  4. Stellen Sie eine Verbindung mit der VM her.**

    #!/bin/bash
    az ssh vm --private-key-file \path\to\private\key \
        --resource-group $rgName \
        --name $vmName \
        --local-user $vmAdminUserName
    

    Melden Sie sich ab, indem Sie exit eingeben.

Informationen zu weiteren VM-Optionen

Wenn Sie mit Azure-Ressourcen in der Befehlszeile arbeiten, verwenden Sie nicht das Azure-Portal, das Ihnen häufig eine Auswahlliste mit Eigenschaftenoptionen bietet. Beispielsweise bietet es Ihnen eine Liste der verfügbaren Speicherorte und VM-Größen. Die Azure CLI verfügt über mehrere Befehle in vielen ihrer Befehlsgruppen, die diese Informationen bereitstellen. Hier sind einige Beispiele für VMs:

Tipp

Das Azure CLI-Format --output table gibt nicht 100 % der verfügbaren Informationen zurück, sorgt jedoch häufig dafür, dass große Befehlsergebnisse einfacher zu lesen sind. Verwenden Sie den --query-Parameter, um die Informationen anzugeben, an denen Sie am meisten interessiert sind.

  1. Abrufen verfügbarer VM-Größen für einen Speicherort:

    az vm list-sizes --location westus --output table
    
  2. Abrufen verfügbarer SKUs für einen Speicherort:

    Je nachdem, welchen --location Sie auswählen, kann es ein paar Minuten dauern, bis die Azure CLI eine vollständige Liste der SKUs zurückgibt.

    # virtual machines
    az vm list-skus --location westus --resource-type virtualMachines --output table
    
    # disks
    az vm list-skus --location westus --resource-type disks --output table
    
  3. Abrufen der verfügbaren Größenänderungsoptionen für einen vorhandenen virtuellen Computer:

    az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
    
  4. Zeigen Sie Details für alle virtuellen Computer in einer Ressourcengruppe an.**

    Wenn Sie sich für die Arbeit in Ihrer lokalen Umgebung entschieden haben und über mehrere virtuelle Computer in Ihrem Abonnement verfügen, fragen Sie VMs ab, die Filterkriterien entsprechen.

    #!/bin/bash
    # details of all VMs in a specified resource group
    az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv)
    
    # list of all VMs created in the last 7 days
    createDate=$(date +%F -d "-7days")
    az vm list --resource-group $rgName \
            --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \
            --output table
    
    # list all VMs whose disks are of a certain type
    # first get a list of the disk types or organization is using
    az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table
    
    diskType="Premium_LRS"
    az vm list --resource-group $rgName \
            --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \
            --output table
    

Beenden oder Löschen einer VM

  1. Fahren Sie die VM herunter:

    Sie können einen ausgeführten virtuellen Computer ausschalten (beenden), doch der virtuelle Computer wird Ihnen weiterhin in Rechnung gestellt.

    az vm stop --resource-group $rgName --name $vmName
    

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

  2. Aufheben der Zuordnung eines virtuellen Computers:

    Um zu vermeiden, dass Ihnen eine beendete VM in Rechnung gestellt wird, können Sie deren Zuordnung aufheben. VMs, deren Zuordnung aufgehoben wurde, enthalten Ressourcen, die nicht mehr zugeordnet sind. Es fallen keine Gebühren mehr an. Der Status der VM wird von „Beendet“ in „Beendet (Zuordnung aufgehoben)“ geändert.

    az vm deallocate --resource-group $rgName --name $vmName
    
  3. Löschen einer VM:

    Wenn die VM beendet wurde, löschen Sie sie, indem Sie den az vm delete-Befehl ausführen.

    az vm delete --resource-group $rgName --name $vmName
    

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

Sie können diese Befehle interaktiv ausführen. Ein besserer Ansatz besteht jedoch darin, ein Azure CLI-Skript zu schreiben. Skripts ermöglichen es Ihnen, die Logik zum Erstellen oder Löschen einer VM in Zukunft wiederzuverwenden.

In der nächsten Einheit automatisieren Sie diese Aufgaben mithilfe eines Azure CLI-Skripts.