Oefening: een Azure-resource interactief maken met Azure PowerShell
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.
Een virtuele Linux-machine maken met behulp van Azure PowerShell
U maakt als volgt een nieuwe Virtuele Azure-machine met Azure PowerShell:
Gebruik de
New-AzVMcmdlet om de virtuele machine te maken.- Geef de resourcegroep voor uw VIRTUELE machine op.
- Geef de VM een naam, volgens de naamgevingsstandaarden van uw organisatie.
- Kies een locatie dicht bij u in de lijst met beschikbare Azure-regio's.
- Gebruik de Ubuntu Linux-installatiekopie:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest. - Gebruik de
Get-Credentialcmdlet om de referenties van de VM-beheerder in te stellen. - Voeg de parameter OpenPorts toe met poort
22voor SSH-toegang. - Maak een openbare IP-adresnaam voor SSH-aanmelding.
$azVmParams = @{ ResourceGroupName = 'myResourceGroupName' Name = 'testvm-eus-01' Credential = (Get-Credential) Location = 'eastus' Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 PublicIpAddressName = 'testvm-eus-01' } New-AzVm @azVmParamsVervang myResourceGroupName in het vorige voorbeeld door de naam van een bestaande resourcegroep of de naam van de resourcegroep die u voor deze oefening hebt gemaakt.
Aanbeveling
U kunt de knop Kopiëren gebruiken om opdrachten naar het klembord te kopiëren. Als u 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).
Referenties invoeren:
Wanneer u hierom wordt gevraagd, voert u een gebruikersnaam en wachtwoord in, volgens de richtlijnen: wachtwoorden moeten 12-123 tekens lang zijn en voldoen aan drie van de volgende vier complexiteitsvereisten: kleine letters, hoofdletters, cijfers en speciale tekens (Regex-overeenkomst [\W_]). Zie veelgestelde vragen over Linux-VM's voor meer informatie.
Wacht tot de VM is gemaakt:
Het maken van de VM duurt enkele minuten.
Voer een query uit op de VM:
Wanneer u klaar bent, voert u een query uit op de VM en wijst u het VM-object toe aan een variabele (
$vm).$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName myResourceGroupNameInformatie over de VM weergeven:
Als u informatie over de virtuele machine wilt weergeven, geeft u de inhoud van de variabele weer.
$vmVoorbeelduitvoer:
ResourceGroupName : myResourceGroupName Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/testvm-eus-01 VmId : 00000000-0000-0000-0000-000000000000 Name : testvm-eus-01 Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} ...VM-eigenschappen controleren:
U kunt complexe objecten inspecteren via de operator voor lidtoegang (
.). Als u bijvoorbeeld de eigenschappen wilt zien in hetVMSizeobject dat is gekoppeld aan de sectie HardwareProfile , voert u de volgende opdracht uit:$vm.HardwareProfileAls u informatie wilt ophalen over een van de schijven, voert u de volgende opdracht uit:
$vm.StorageProfile.OsDiskBeschikbare VM-grootten ophalen:
Geef het VM-object door aan andere cmdlets om de beschikbare grootten op te halen:
$vm | Get-AzVMSizeHaal het openbare IP-adres op:
Haal het openbare IP-adres op om verbinding te maken met de virtuele machine en sla het op in een variabele.
$ip = Get-AzPublicIpAddress -ResourceGroupName myResourceGroupName -Name testvm-eus-01Verbinding maken met de VIRTUELE machine:
Maak verbinding met de VM met SSH met behulp van het IP-adres van de variabele. Als de gebruikersnaam bijvoorbeeld is
bob, gebruikt u de volgende opdracht:ssh bob@$($ip.IpAddress)Meld u af door afsluiten te typen.
Een VM verwijderen
Als u meer opdrachten wilt proberen, gaan we de VIRTUELE machine verwijderen. Volg vervolgens deze stappen:
Sluit de VM af:
Voer de volgende opdracht uit:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
De VM verwijderen:
Nadat de VM is gestopt, verwijdert u deze door de cmdlet uit te
Remove-AzVMvoeren.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Alle resources in de resourcegroep weergeven:
Gebruik de
Get-AzResourcecmdlet om alle resources in de resourcegroep weer te geven. De resultaten worden doorgesluisd omSelect-Objectspecifieke eigenschappen te retourneren:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupNameU ziet nu verschillende resources, waaronder schijven, virtuele netwerken, enzovoort, die nog steeds bestaan:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts myResourceGroupName testvm-eus-01 Microsoft.Network/virtualNetworks myResourceGroupName testvm-eus-01 Microsoft.Network/publicIPAddresses myResourceGroupName testvm-eus-01 Microsoft.Network/networkSecurityGroups myResourceGroupName testvm-eus-01 Microsoft.Network/networkInterfaces myResourceGroupName testvm-eus-01_OsDisk_1 Microsoft.Compute/disks myResourceGroupNameMet
Remove-AzVMde opdracht wordt alleen de virtuele machine verwijderd. Er worden geen andere resources opgeschoond. Voer de volgende stappen uit om ze handmatig op te schonen:Verwijder de netwerkinterface:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterfaceVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Verwijder de netwerkbeveiligingsgroep:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroupVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Verwijder het openbare IP-adres:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddressVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Verwijder het virtuele netwerk:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetworkVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Verwijder de beheerde besturingssysteemschijven:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDiskVoer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Controleer of alle resources zijn verwijderd:
Controleer de resourcegroep om ervoor te zorgen dat alle resources worden verwijderd:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Terwijl u deze opdrachten interactief hebt uitgevoerd, is het beter om een PowerShell-script te schrijven. Met scripts kunt u de logica voor het maken of verwijderen van een VIRTUELE machine in de toekomst opnieuw gebruiken
Laten we nu eens kijken hoe u deze taken kunt automatiseren met behulp van een PowerShell-script.