Övning – Skapa en Azure-resurs interaktivt med Azure CLI

Slutförd

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.

Anmärkning

Den här övningen är valfri. Om du vill slutföra den här övningen måste du skapa en Azure-prenumeration innan du börjar. Om du inte har något Azure-konto eller om du inte vill skapa ett för tillfället kan du läsa igenom anvisningarna så att du förstår den information som visas.

Anmärkning

Du måste använda en resursgrupp för att slutföra stegen i den här övningen. Du kan använda en resursgrupp som du redan har skapat eller skapa en ny resursgrupp specifikt för den här övningen. Om du väljer att skapa en ny resursgrupp blir det enklare att rensa alla resurser som du skapar när du slutför övningen. Om du inte har någon befintlig resursgrupp eller om du vill skapa en ny specifikt för den här övningen kan du följa stegen i Använda Azure-portalen och Azure Resource Manager för att hantera resursgrupper för att skapa en resursgrupp med hjälp av Azure-portalen, eller så kan du följa stegen i Hantera Azure-resursgrupper med hjälp av Azure CLI för att skapa en resursgrupp med hjälp av Azure CLI.

Övning – Skapa en virtuell Linux-dator med Azure CLI

Så här skapar du en ny virtuell Azure-dator med Azure CLI:

  1. Öppna Azure Cloud Shell via Azure-portalen eller med knappen Öppna Cloud Shell längst upp till höger i många Azure CLI-kodblock.

  2. az vm create Använd kommandot för att skapa den virtuella datorn.

    • Ange namnet på resursgruppen. Ersätt myResourceGroupName i följande exempel med namnet på en befintlig resursgrupp eller namnet på den resursgrupp som du skapade för den här övningen.
    • Tilldela ett namn till den virtuella datorn enligt organisationens namngivningsstandarder.
    • Välj en plats nära dig i listan över tillgängliga Azure-platser.
    • Använd Linux-avbildningen: Ubuntu2204.
    • Tilldela ett administratörsanvändarnamn enligt organisationens namngivningsstandarder.
    #!/bin/bash
    
    # Create variables with values of your choice.
    rgName="myResourceGroupName"
    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 Cloud Shell-terminalen väntar på tilläggsindata använder du CTRL + Z för att återgå till en fråga och försöka igen.

  3. Vänta tills den virtuella Linux-datorn har skapats:

    Det tar några minuter att skapa den virtuella datorn.

  4. 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 och az 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
    
  5. 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-portalen, vilket 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.

  1. Hämta tillgängliga VM-storlekar för en plats:

    az vm list-sizes --location westus --output table
    
  2. 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
    
  3. Hämta tillgängliga storleksalternativ för en befintlig virtuell dator:

    az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
    
  4. 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

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

  2. 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
    
  3. 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.