Übung: Interaktives Erstellen einer Azure-Ressource mit der Azure CLI
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
Hier erfahren Sie, wie Sie eine neue Azure-VM mit der Azure CLI erstellen:
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.
Warten Sie auf die Erstellung der Linux-VM:
Der VM-Erstellungsprozess kann einige Minuten dauern.
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
undaz 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
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.
Abrufen verfügbarer VM-Größen für einen Speicherort:
az vm list-sizes --location westus --output table
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
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
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
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.
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
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.