Oefening: een Azure-resource interactief maken met Azure PowerShell

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.

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 [naam sandbox-resourcegroep]. Houd rekening met de locatiebeperkingen.

U maakt als volgt een nieuwe Virtuele Azure-machine met Azure PowerShell:

  1. 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).

  2. 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.

  3. Wacht tot de VM is gemaakt:

    Het maken van de VM duurt enkele minuten.

  4. 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>
    
  5. 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}
    ...
    
  6. VM-eigenschappen controleren:

    U kunt complexe objecten inspecteren via de operator voor lidtoegang (.). Als u bijvoorbeeld de eigenschappen wilt zien in het VMSize 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
    
  7. Beschikbare VM-grootten ophalen:

    Geef het VM-object door aan andere cmdlets om de beschikbare grootten op te halen:

    $vm | Get-AzVMSize
    
  8. 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
    
  9. 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:

  1. 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.

  2. 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.

  3. Alle resources in de resourcegroep weergeven:

    Gebruik de Get-AzResource cmdlet om alle resources in de resourcegroep weer te geven. De resultaten worden doorgesluisd om Select-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:

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.