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

Ö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 [resursgruppsnamn för sandbox-miljö]. Tänk på platsbegränsningarna.

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

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

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

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

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

  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.