Skapa virtuella datorer (VM) – Azure CLI | Microsoft Docs
I den här självstudien får du lära dig alla steg som ingår i att skapa en virtuell dator med Azure CLI. Självstudien omfattar även ämnen som rör utdatafrågor, återanvändning av Azure-resurser och rensning av resurser.
Den här självstudien kan utföras interaktivt med erbjudandet via Azure Cloud Shell. Du kan även installera CLI lokalt.
Använd ctrl + skift + v (cmd + skift + v på macOS) för att klistra in självstudietexten i Azure Cloud Shell.
Logga in
Om du använder en lokal installation av CLI måste du logga in innan du utför ytterligare steg.
az login
Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen.
Skapa en resursgrupp
I Azure allokeras alla resurser i en resurshanteringsgrupp. Med resursgrupperna får du logiska grupperingar av resurserna som gör det lättare att arbeta med dem som en samling. I den här självstudiekursen finns alla skapade resurser i en grupp med namnet TutorialResources.
az group create --name TutorialResources --location eastus
Skapa en virtuell dator
Virtuella datorer i Azure har ett stort antal beroenden. CLI skapar de här resurserna baserat på de kommandoradsargument som du anger.
Skapa en ny virtuell dator som kör Ubuntu och som använder SSH-autentisering för inloggning.
az vm create --resource-group TutorialResources \
--name TutorialVM1 \
--image UbuntuLTS \
--generate-ssh-keys \
--output json \
--verbose
Anteckning
Om du redan har en SSH-nyckel med namnet id_rsa så används den här nyckeln för autentisering i stället för att generera en ny nyckel.
När den virtuella datorn skapas visas de lokala värdena som används och Azure-resurser som skapas till följd av alternativet --verbose.
När den virtuella datorn är klar returneras JSON från Azure-tjänsten, inklusive den offentliga IP-adressen.
{
"fqdns": "",
"id": "...",
"location": "eastus",
"macAddress": "...",
"powerState": "VM running",
"privateIpAddress": "...",
"publicIpAddress": <PUBLIC_IP_ADDRESS>,
"resourceGroup": "TutorialResources",
"zones": ""
}
Bekräfta att den virtuella datorn körs genom att ansluta via SSH.
ssh <PUBLIC_IP_ADDRESS>
Gå vidare och logga ut från den virtuella datorn.
Det finns andra sätt att hämta den här IP-adressen efter att den virtuella datorn har startats. I nästa avsnitt går vi igenom hur du kan få detaljerad information om den virtuella datorn och hur du kan filtrera den.
Få information om virtuella datorer med frågor
Nu när du har skapat en virtuell dator kan du få detaljerad information om den. Det vanliga kommandot för att hämta information från en resurs är show.
az vm show --name TutorialVM1 --resource-group TutorialResources
Du ser en stor mängd information, vilket kan vara svåröverskådligt. Den returnerade JSON-filen innehåller information om autentisering, nätverksgränssnitt, lagring med mera. Det viktigaste är att den innehåller objekt-ID:na för Azure för de resurser som den virtuella datorn är ansluten till. Med objekt-ID:n kan du komma åt de här resurserna direkt om du vill ha mer information om den virtuella datorns konfiguration och funktioner.
För att extrahera önskat objekt-ID använder vi argumentet --query. Frågor skrivs med frågespråket JMESPath. Börja med att hämta objekt-ID:t för nätverksgränssnittskontrollanten (NIC).
az vm show --name TutorialVM1 \
--resource-group TutorialResources \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
Det är mycket som händer här, bara av att du lägger till frågan. Varje del av frågan refererar till en nyckel i JSON-filen med utdata eller är en JMESPath-operator.
networkProfileär en nyckel för den översta JSON-filen som harnetworkInterfacessom en undernyckel. Om ett JSON-värde är en ordlista så refereras dess nycklar från den överordnade nyckeln med operatorn..- Värdet
networkInterfacesär en matris, så den är utplattad med operatorn[]. Den här operatorn kör resten av frågan på varje matriselement. I det här fallet hämtar den värdetidför varje matriselement.
Utdataformatet tsv (tabbavgränsade värden) innefattar endast resultatdata och blanksteg som består av tabbar och nya rader.
Eftersom det returnerade värdet är en enda sträng är det säkert att tilldela direkt till en miljövariabel.
Gå vidare och tilldela objekt-ID:t för NIC till en miljövariabel nu.
NIC_ID=$(az vm show -n TutorialVM1 -g TutorialResources \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
Det här exemplet visar också hur korta argument används. Du kan använda -g istället för --resource-group, -n istället för --name och -o istället för --output.
Ange miljövariabler från CLI-utdata
Nu när du har ett NIC-ID kan du köra az network nic show för att hämta informationen. Observera att du inte behöver någon resursgrupp här, eftersom resursgruppens namn finns i Azure-resurs-ID:t.
az network nic show --ids $NIC_ID
Det här kommandot visar all information om nätverksgränssnittet för den virtuella datorn. Dessa data innehåller DNS-inställningar, IP-information, säkerhetsinställningar och MAC-adressen. Just nu är målet att hämta den offentliga IP-adressen och objekt-ID:na för undernätet.
az network nic show --ids $NIC_ID \
--query '{IP:ipConfigurations[].publicIpAddress.id, Subnet:ipConfigurations[].subnet.id}' \
-o json
{
"IP": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
Det här kommandot visar ett JSON-objekt som har anpassade nycklar ("IP" och "Subnet") för de extraherade värdena. Även om dessa utdata inte är användbara för kommandoradsverktyg kan de öka läsbarheten, och de kan även användas med anpassade skript.
Ändra kommandot för att ta bort de anpassade JSON-nycklarna och utdata som tsv för att kunna använda kommandoradsverktyg. Den här typen av utdata kan bearbetas av kommandot read i gränssnittet för att läsa in resultat i flera variabler. Eftersom två värden visas på separata rader måste kommandoavgränsaren read vara inställd på tom sträng istället för på standardinställningen med blanksteg på rad som inte är ny.
read -d '' IP_ID SUBNET_ID <<< $(az network nic show \
--ids $NIC_ID \
--query '[ipConfigurations[].publicIpAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
Du kommer inte att använda undernäts-ID:t nu direkt, men spara det så att du slipper söka efter det igen senare. Använd ID:t för den offentliga IP-adressen för att leta upp den offentliga IP-adressen och lagra den i en gränssnittsvariabel så länge.
VM1_IP_ADDR=$(az network public-ip show --ids $IP_ID \
--query ipAddress \
-o tsv)
Nu lagras IP-adressen för den virtuella datorn i en gränssnittsvariabel. Gå vidare och kontrollera att det är samma värde som du använde för att ansluta till den virtuella datorn i början.
echo $VM1_IP_ADDR
Skapa en ny virtuell dator i det befintliga undernätet
Den andra virtuella datorn använder det befintliga undernätet. Du kan hoppa över några steg och lagra den offentliga IP-adressen för den nya virtuella datorn i en miljövariabel direkt eftersom adressen returneras i informationen du får när du skapar den virtuella datorn. Om du behöver annan information om den virtuella datorn senare kan du alltid använda kommandot az vm show.
VM2_IP_ADDR=$(az vm create -g TutorialResources \
-n TutorialVM2 \
--image UbuntuLTS \
--generate-ssh-keys \
--subnet $SUBNET_ID \
--query publicIpAddress \
-o tsv)
Anslut till den nya virtuella datorn med en SSH-anslutning med hjälp av den sparade IP-adressen.
ssh $VM2_IP_ADDR
Gå vidare och logga ut från den virtuella datorn.
Rensa
Nu när självstudien har slutförts är det dags att rensa de skapade resurserna. Du kan ta bort enskilda resurser med kommandot delete, men det säkraste sättet att ta bort alla resurser i en resursgrupp är med group delete.
az group delete --name TutorialResources --no-wait
Det här kommandot tar bort de resurser som skapades med självstudien och garanterar att de frigörs i rätt ordning. Parametern --no-wait ser till att CLI inte blockerar under tiden som borttagningen utförs. Om du vill vänta tills borttagningen har slutförts eller titta på förloppet så kan du använda kommandot group wait.
az group wait --name TutorialResources --deleted
När rensningen är slutförd är självstudien klar. Fortsätt om du vill se en sammanfattning av allt du har lärt dig och få länkar till resurser som hjälper dig med nästa steg.
Sammanfattning
Grattis! Du har lärt dig hur du skapar virtuella datorer med nya eller befintliga resurser, använt argumenten --query och --output för att samla in data som ska lagras i gränssnittsvariabler och tittat på vissa av de resurser som skapas för virtuella Azure-datorer.
Hur du nu går vidare beror på hur du har tänkt använda CLI. Det finns en mängd olika material som gör en djupdykning i funktionerna som beskrivs i den här kursen.
Exempel
Om du vill komma igång direkt med specifika uppgifter kan du titta på några exempel på skript.
- Arbeta med virtuella Linux-datorer och virtuella Windows-datorer
- Arbeta med webbappar och Azure Functions
- Arbeta med databaser – Azure SQL-databaser, PostgreSQL, MySQL och CosmosDB.
Djupgående CLI-dokumentation
Det finns även avsnitt som går djupare in på de CLI-funktioner som visades i självstudiekursen.
- Lär dig mer om utdataformat
- Lär dig mer om utdatafrågor
- Lär dig mer om auktorisering i Azure
Annan användbar dokumentation
Du kanske vill utforska mer avancerade funktioner för CLI som att konfigurera standardvärden eller tillägg.
Feedback
Om du vill ge feedback, komma med förslag eller ställa frågor om CLI så kan du kontakta oss på en rad olika sätt.
az feedbackär ett inbyggt kommando för CLI som gör det möjligt att ge egen feedback till teamet.- Registrera ett funktionsförslag eller en felrapport med CLI på Azure CLI-lagringsplatsen.
- Ställ en fråga eller få förtydliganden genom att registrera ett ärende på Azure CLI-dokumentationslagringsplatsen.
Vi hoppas att du trivs med att använda Azure CLI!
Har du ett problem med det här avsnittet? Ge oss då feedback så att vi kan förbättra avsnittet.