Oefening: een Azure-resource interactief maken met Azure CLI

Voltooid

In het oorspronkelijke scenario moet u virtuele machines (VM's) maken om uw CRM-software (Customer Relationship Management) te testen. Wanneer er een nieuwe build beschikbaar is, wilt u een nieuwe VIRTUELE machine instellen om de volledige installatie-ervaring te testen op basis van een schone installatiekopieën. Zodra het testen is voltooid, kunt u de VIRTUELE machine verwijderen.

We gaan de opdrachten proberen om een virtuele machine te maken.

Oefening: een Virtuele Linux-machine maken met Azure CLI

Omdat u de Azure-sandbox gebruikt, hoeft u geen resourcegroep te maken. Gebruik in plaats daarvan de bestaande sandbox-resourcegroep [naam sandbox-resourcegroep]. Houd rekening met de locatiebeperkingen.

U kunt als volgt een nieuwe Virtuele Azure-machine maken met Azure CLI:

  1. Gebruik de az vm create opdracht om de virtuele machine te maken.

    • Gebruik de az group list opdracht om de naam van de sandbox-resourcegroep op te halen.

    • Wijs een naam toe aan de VIRTUELE machine volgens de naamgevingsstandaarden van uw organisatie.

    • Kies een locatie dicht bij u in de lijst met beschikbare Azure-sandboxlocaties:

      • westus2
      • US - zuid-centraal
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Gebruik de Linux-installatiekopieën: Ubuntu2204.

    • Wijs een gebruikersnaam van een beheerder toe volgens de naamgevingsstandaarden van uw organisatie.

    #!/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
    

    Tip

    Hebt u de knop Kopiëren gebruikt en ziet u dat alle regelvervolgtekens zijn verwijderd? Dit is zo ontworpen. Omdat de Azure CLI in veel omgevingen met verschillende regelvervolgtekens kan worden uitgevoerd, worden deze door de kopieerknop verwijderd. Als u liever een opgemaakt script kopieert, gebruikt u de muis om de inhoud van het codeblok te selecteren en te kopiëren.

    Als u in Azure Cloud Shell wilt plakken, klikt u met de rechtermuisknop op een nieuwe regel in de Cloud Shell-terminal en selecteert u Plakken of gebruikt u de sneltoets Shift+Insert (⌘+V in macOS).

    Als uw script niet correct is gekopieerd en de sandboxterminal wacht op toevoegingsinvoer, gebruikt u Ctrl+Z om terug te keren naar een prompt en probeert u het opnieuw.

  2. Wacht totdat de Virtuele Linux-machine is gemaakt:

    Het maken van de VM duurt enkele minuten.

  3. Informatie over de VM ophalen

    Als u klaar bent, retourneert de Azure CLI informatie over de VIRTUELE machine in JSON-indeling. Gebruik de az vm list en az vm show opdrachten om specifieke informatie over de virtuele machine op te halen. Hieronder volgen een aantal voorbeelden:

    Verschillende van deze scripts maken gebruik van variabelenamen en waarden die zijn opgeslagen in de vorige stappen.

    Een lijst met alle VM's in tabelindeling ophalen.

    az vm list --output table
    

    Informatie ophalen over één VIRTUELE machine in JSON-indeling.

    Sommige van deze uitvoer wordt weergegeven nadat een nieuwe VIRTUELE machine is gemaakt. Het is echter handig om meer informatie te retourneren bij het uitzoeken van geneste eigenschapsnamen om te verwijzen in een script. Eigenschapsnamen zijn hoofdlettergevoelig.

    az vm show --resource-group $rgName --name $vmName
    

    Informatie over VM-eigenschappen ophalen.

    # 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"
    

    Een eigenschap van een VIRTUELE machine opslaan in een variabele.

    De Azure CLI heeft verschillende beschikbare uitvoertypen. JSON is de standaardinstelling, maar wanneer u waarden opslaat in variabelen, verwijdert u extra opmaak met --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. Verbinding maken met de VM.**

    #!/bin/bash
    az ssh vm --private-key-file \path\to\private\key \
        --resource-group $rgName \
        --name $vmName \
        --local-user $vmAdminUserName
    

    Meld u af door afsluiten te typen.

Meer informatie over meer VM-opties

Wanneer u met Azure-resources werkt op de opdrachtregel, gebruikt u azure Portal niet. Dit geeft u vaak een keuzelijst met eigenschappenopties. Bijvoorbeeld een lijst met beschikbare locaties en VM-grootten. De Azure CLI heeft verschillende opdrachten in veel van de opdrachtgroepen die deze informatie bieden. Hier volgen enkele voorbeelden voor VM's:

Tip

De Azure CLI-indeling --output table retourneert niet 100% van de beschikbare informatie, maar maakt het vaak eenvoudiger om grote opdrachtresultaten te lezen. Gebruik de --query parameter om de informatie op te geven waarin u het meest geïnteresseerd bent.

  1. Beschikbare VM-grootten ophalen voor een locatie:

    az vm list-sizes --location westus --output table
    
  2. Beschikbare SKU's ophalen voor een locatie:

    Afhankelijk van wat --location u selecteert, kan het een paar minuten duren voordat de Azure CLI een volledige lijst met SKU's retourneert.

    # 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. Beschikbare opties voor het wijzigen van grootten voor een bestaande VIRTUELE machine ophalen:

    az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
    
  4. Details weergeven voor alle VM's in een resourcegroep.**

    Als u ervoor hebt gekozen om in uw lokale omgeving te werken en meerdere VM's in uw abonnement te hebben, voert u een query uit voor VM's die voldoen aan een filtercriteria.

    #!/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
    

Een VIRTUELE machine stoppen of verwijderen

  1. Sluit de VM af:

    U kunt een actieve VM uitschakelen (stoppen), hoewel de VM nog steeds wordt gefactureerd.

    az vm stop --resource-group $rgName --name $vmName
    

    Voer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.

  2. De toewijzing van een VIRTUELE machine ongedaan maken:

    Om te voorkomen dat er kosten in rekening worden gebracht voor een gestopte VM, kunt u de toewijzing ervan ongedaan maken. Toewijzing van VM's ongedaan maken bevat resources die niet meer worden toegewezen (kosten zijn niet meer van toepassing). De status van de VIRTUELE machine verandert van Gestopt in Gestopt (toewijzing ongedaan gemaakt).

    az vm deallocate --resource-group $rgName --name $vmName
    
  3. Een VM verwijderen:

    Nadat de VM is gestopt, verwijdert u deze door de opdracht uit te az vm delete voeren.

    az vm delete --resource-group $rgName --name $vmName
    

    Voer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.

Terwijl u deze opdrachten interactief hebt uitgevoerd, is het beter om een Azure CLI-script te schrijven. Met scripts kunt u de logica voor het maken of verwijderen van een virtuele machine in de toekomst opnieuw gebruiken.

In de volgende les gaan we deze taken automatiseren met behulp van een Azure CLI-script.