Övning – Skapa en Azure-resurs interaktivt med Azure CLI
I det ursprungliga scenariot måste du skapa virtuella datorer (VM) för att testa crm-programvaran (Customer Relationship Management). När en ny version är tillgänglig vill du starta en ny virtuell dator för att testa hela installationsupplevelsen från en ren avbildning. När testningen är klar kan du ta bort den virtuella datorn.
Nu ska vi prova kommandona för att skapa en virtuell dator.
Övning – Skapa en virtuell Linux-dator med Azure CLI
Eftersom du använder Sandbox-miljön i Azure behöver du inte skapa en resursgrupp. Använd i stället den befintliga sandbox-resursgruppen
Så här skapar du en ny virtuell Azure-dator med Azure CLI:
az vm create
Använd kommandot för att skapa den virtuella datorn.az group list
Använd kommandot för att hämta namnet på sandbox-resursgruppen.Tilldela ett namn till den virtuella datorn enligt organisationens namngivningsstandarder.
Välj en plats nära dig i listan över tillgängliga Azure-sandbox-platser:
- westus2
- USA, södra centrala
- centralus
- eastus
- Europa, västra
- Asien, sydöstra
- Japan, östra
- Brasilien, södra
- Australien, sydöstra
- centralindia
Använd Linux-avbildningen:
Ubuntu2204
.Tilldela ett administratörsanvändarnamn enligt organisationens namngivningsstandarder.
#!/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
Dricks
Använde du bara knappen Kopiera och såg att alla radfortsättningstecken har tagits bort? Detta beteende är av design. Eftersom Azure CLI kan köras i många miljöer med olika radfortsättningstecken tar kopieringsknappen bort dem. Om du föredrar att kopiera ett formaterat skript använder du musen för att välja och kopiera innehållet i kodblocket.
Om du vill klistra in Azure Cloud Shell högerklickar du på en ny rad i Cloud Shell-terminalen och väljer Klistra in eller använder kortkommandot Skift+Insert (⌘+V på macOS).
Om skriptet inte har kopierats korrekt och sandbox-terminalen väntar på tilläggsindata använder du CTRL + Z för att återgå till en prompt och försöka igen.
Vänta tills den virtuella Linux-datorn har skapats:
Det tar några minuter att skapa den virtuella datorn.
Hämta information om den virtuella datorn
När det är klart returnerar Azure CLI information om den virtuella datorn i JSON-format. Använd kommandona
az vm list
ochaz vm show
för att hämta specifik information om den virtuella datorn. Nedan följer några exempel:Flera av dessa skript använder variabelnamn och värden som lagras i föregående steg.
Hämta en lista över alla virtuella datorer i tabellformat.
az vm list --output table
Hämta information om en enskild virtuell dator i JSON-format.
En del av dessa utdata visas när en ny virtuell dator har skapats. Det är dock bra att returnera mer information när du räknar ut kapslade egenskapsnamn att referera till i ett skript. Egenskapsnamn är skiftlägeskänsliga.
az vm show --resource-group $rgName --name $vmName
Hämta information om vm-egenskaper.
# 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"
Lagra en egenskap för en virtuell dator i en variabel.
Azure CLI har flera tillgängliga utdatatyper. JSON är standard, men när du lagrar värden i variabler tar du bort extra formatering med
--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
Anslut till den virtuella datorn.**
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserName
Logga ut genom att skriva avsluta.
Läs mer om fler alternativ för virtuella datorer
När du arbetar med Azure-resurser på kommandoraden använder du inte Azure Portal som ofta ger dig en lista med egenskapsalternativ. Till exempel en lista över tillgängliga platser och VM-storlekar. Azure CLI har flera kommandon i många av sina kommandogrupper som tillhandahåller den här informationen. Här är några exempel på virtuella datorer:
Dricks
Azure CLI-formatet --output table
returnerar inte 100 % av tillgänglig information, men det gör ofta stora kommandoresultat enklare att läsa. Använd parametern --query
för att ange den information som du är mest intresserad av.
Hämta tillgängliga VM-storlekar för en plats:
az vm list-sizes --location westus --output table
Hämta tillgängliga SKU:er för en plats:
Beroende på vad
--location
du väljer kan det ta en minut eller två för Azure CLI att returnera en fullständig lista över SKU:er.# 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
Hämta tillgängliga storleksalternativ för en befintlig virtuell dator:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
Visa information om alla virtuella datorer i en resursgrupp.**
Om du har valt att arbeta i din lokala miljö och har flera virtuella datorer i prenumerationen frågar du efter virtuella datorer som uppfyller ett filtervillkor.
#!/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
Stoppa eller ta bort en virtuell dator
Stäng av den virtuella datorn:
Du kan stänga av (stoppa) en virtuell dator som körs, även om den virtuella datorn fortsätter att faktureras.
az vm stop --resource-group $rgName --name $vmName
Ange Y och tryck på Retur när du uppmanas att fortsätta.
Frigör en virtuell dator:
Om du vill undvika att debiteras för en stoppad virtuell dator kan du frigöra den. Frigör virtuella datorer innehåller resurser som inte längre allokeras (avgifterna gäller inte längre). Status för den virtuella datorn ändras från "Stoppad" till "Stoppad (frigjord)".
az vm deallocate --resource-group $rgName --name $vmName
Ta bort en virtuell dator:
När den virtuella datorn har stannat tar du bort den genom att
az vm delete
köra kommandot .az vm delete --resource-group $rgName --name $vmName
Ange Y och tryck på Retur när du uppmanas att fortsätta.
Medan du har kört dessa kommandon interaktivt är en bättre metod att skriva ett Azure CLI-skript. Med skript kan du återanvända logiken för att skapa eller ta bort en virtuell dator i framtiden.
I nästa lektion ska vi automatisera dessa uppgifter med hjälp av ett Azure CLI-skript.