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.
Opmerking
Deze oefening is optioneel. Als u deze oefening wilt voltooien, moet u een Azure-abonnement maken voordat u begint. Als u geen Azure-account hebt of als u er op dit moment geen wilt maken, kunt u de instructies doorlezen zodat u de informatie begrijpt die wordt gepresenteerd.
Opmerking
U moet een resourcegroep gebruiken om de stappen in deze oefening uit te voeren. U kunt een resourcegroep gebruiken die u al hebt gemaakt of u kunt voor deze oefening een nieuwe resourcegroep maken. Als u ervoor kiest om een nieuwe resourcegroep te maken, kunt u alle resources die u maakt gemakkelijker opschonen terwijl u de oefening voltooit. Als u geen bestaande resourcegroep hebt of als u specifiek voor deze oefening een nieuwe resourcegroep wilt maken, kunt u de stappen volgen in Azure Portal en Azure Resource Manager om resourcegroepen te beheren om een resourcegroep te maken met behulp van Azure Portal. U kunt ook de stappen volgen in Azure CLI om een resourcegroep te maken met behulp van de Azure CLI.
Oefening: een Virtuele Linux-machine maken met Azure CLI
U kunt als volgt een nieuwe Virtuele Azure-machine maken met Azure CLI:
Open Azure Cloud Shell via de Azure-portal of door de knop Azure Cloud Shell openen te gebruiken in de rechterbovenhoek van veel Azure CLI-codeblokken.
Gebruik de
az vm createopdracht om de virtuele machine te maken.- Geef de naam van uw resourcegroep op. Vervang myResourceGroupName in het volgende voorbeeld door de naam van een bestaande resourcegroep of de naam van de resourcegroep die u voor deze oefening hebt gemaakt.
- 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-locaties.
- Gebruik de Linux-installatiekopieën:
Ubuntu2204. - Wijs een gebruikersnaam van een beheerder toe volgens de naamgevingsstandaarden van uw organisatie.
#!/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-keysTip
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 Cloud Shell-terminal wacht op extra invoer, gebruikt u Ctrl+Z om terug te keren naar een prompt en het opnieuw te proberen.
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 listenaz vm showopdrachten 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 tableInformatie 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 $vmNameInformatie 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 $publicIPMaak verbinding met de VM.
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserNameMeld u af door afsluiten te typen.
Meer informatie over meer VM-opties
Wanneer u met Azure-resources op de opdrachtregel werkt, gebruikt u de Azure Portal niet, die u vaak een keuzelijst met eigenschapsopties biedt. 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 tableBeschikbare SKU's ophalen voor een locatie:
Afhankelijk van wat
--locationu 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 tableBeschikbare opties voor het wijzigen van grootten voor een bestaande VIRTUELE machine ophalen:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output tableDetails 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 $vmNameVoer 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 $vmNameEen VM verwijderen:
Nadat de VM is gestopt, verwijdert u deze door de opdracht uit te
az vm deletevoeren.az vm delete --resource-group $rgName --name $vmNameVoer 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.