Oefening: een Azure-resource interactief maken met Azure CLI
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
U kunt als volgt een nieuwe Virtuele Azure-machine maken met Azure CLI:
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.
Wacht totdat de Virtuele Linux-machine is gemaakt:
Het maken van de VM duurt enkele minuten.
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
enaz 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
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.
Beschikbare VM-grootten ophalen voor een locatie:
az vm list-sizes --location westus --output table
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
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
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
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.
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
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.