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.
Een virtuele Linux-machine maken met behulp van Azure PowerShell
Omdat u de Azure-sandbox gebruikt, hoeft u geen resourcegroep te maken. Gebruik in plaats daarvan de bestaande sandbox-resourcegroep
U maakt als volgt een nieuwe Virtuele Azure-machine met Azure PowerShell:
Gebruik de
New-AzVM
cmdlet om de virtuele machine te maken.Geef de sandbox-resourcegroep op: [naam sandbox-resourcegroep]
. Geef de VM een naam, 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 Ubuntu Linux-installatiekopie:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest
.Gebruik de
Get-Credential
cmdlet om de referenties van de VM-beheerder in te stellen.Voeg de parameter OpenPorts toe met poort
22
voor SSH-toegang.Maak een openbare IP-adresnaam voor SSH-aanmelding.
$azVmParams = @{ ResourceGroupName = '<rgn>[sandbox resource group name]</rgn>' 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 @azVmParams
Tip
U kunt de knop Kopiëren gebruiken om opdrachten te kopiëren naar het klembord. 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 <rgn>[sandbox resource group name]</rgn>
Informatie over de VM weergeven:
Als u informatie over de virtuele machine wilt weergeven, geeft u de inhoud van de variabele weer.
$vm
Voorbeelduitvoer:
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rgn>[sandbox resource group name]</rgn>/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 hetVMSize
object dat is gekoppeld aan de sectie HardwareProfile , voert u de volgende opdracht uit:$vm.HardwareProfile
Als u informatie wilt ophalen over een van de schijven, voert u de volgende opdracht uit:
$vm.StorageProfile.OsDisk
Beschikbare VM-grootten ophalen:
Geef het VM-object door aan andere cmdlets om de beschikbare grootten op te halen:
$vm | Get-AzVMSize
Haal 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 <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
Verbinding 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.ResourceGroupName
Voer 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-AzVM
voeren.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Voer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Alle resources in de resourcegroep weergeven:
Gebruik de
Get-AzResource
cmdlet om alle resources in de resourcegroep weer te geven. De resultaten worden doorgesluisd omSelect-Object
specifieke eigenschappen te retourneren:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
U ziet nu verschillende resources, waaronder schijven, virtuele netwerken, enzovoort, die nog steeds bestaan:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/virtualNetworks <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/publicIPAddresses <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkInterfaces <rgn>[sandbox resource group name]</rgn> testvm-eus-01_OsDisk_1 Microsoft.Compute/disks <rgn>[sandbox resource group name]</rgn>
Met
Remove-AzVM
de 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-AzNetworkInterface
Voer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Verwijder de netwerkbeveiligingsgroep:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup
Voer 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-AzPublicIpAddress
Voer Y in en druk op Enter wanneer u wordt gevraagd om door te gaan.
Verwijder het virtuele netwerk:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork
Voer 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-AzDisk
Voer 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.