Oefening: Azure-resources maken met Azure PowerShell met behulp van een script

Voltooid

In deze les gaat u verder met het voorbeeld van een bedrijf dat Linux-beheerhulpprogramma's ontwikkelt. Het doel is om virtuele Linux-machines (VM's) te gebruiken zodat potentiële klanten uw software kunnen testen. Nu een resourcegroep al is ingesteld, is het tijd om de VIRTUELE machines te maken.

Uw bedrijf heeft een stand beveiligd op een grote Linux-beurs. U bent van plan een demogebied in te stellen met drie terminals, elk verbonden met een afzonderlijke Linux-VM. U moet de VM's verwijderen en deze aan het einde van elke dag opnieuw maken, zodat ze elke ochtend vers beginnen. Het handmatig maken van de VM's na een lange dag is foutgevoelig. U moet dus een PowerShell-script schrijven om het proces voor het maken van de VIRTUELE machine te automatiseren.

Een script schrijven om virtuele machines te maken

Volg deze stappen om een script te schrijven in Azure Cloud Shell waarmee het maken van virtuele machines wordt geautomatiseerd.

Notitie

Normaal gesproken verifieert u zich bij Azure met behulp van uw referenties, Connect-AzAccountmaar in Cloud Shell bent u al geverifieerd. Deze stap is dus niet nodig.

  1. Ga naar uw basismap:

    Set-Location -Path $HOME
    
  2. Maak een nieuw PowerShell-scriptbestand:

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. Open de geïntegreerde Visual Studio Code-editor (VS Code):

    code ./ConferenceDailyReset.ps1
    

    Tip

    De geïntegreerde Cloud Shell-editor ondersteunt ook vim, nano en emacs als u liever een van deze editors gebruikt.

  4. Definieer een parameter voor de naam van de resourcegroep:

    Voeg de volgende regel toe aan het script:

    param (
        [string]$ResourceGroupName
    )
    
  5. Vragen om referenties van de VM-beheerder:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. Maak een lus om drie keer uit te voeren:

    $vms = 1..3
    foreach ($vm in $vms) {
        $vm
    }
    
  7. Maak in de lus een naam voor elke virtuele machine en retourneer deze:

    $vmName = "ConferenceDemo-$vm"
    Write-Output "Creating VM: $vmName"
    
  8. Maak een VIRTUELE machine met behulp van de $vmName variabele:

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vmName
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
    
  9. Sla het bestand op:

    Als u het script wilt opslaan, gebruikt u het contextmenu met het beletselteken (...) in de rechterbovenhoek van de editor of de sneltoets Ctrl + S.

Voltooid script

Het voltooide script moet eruitzien als in het volgende voorbeeld:

param (
    [string]$ResourceGroupName
)

$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'

$vms = 'web','app','sql'

foreach ($vm in $vms) {

    $vmName = "ConferenceDemo-$vm"
    Write-Output "Creating VM: $vmName"

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vmName
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
}

Nadat u hebt bevestigd dat uw script eruitziet als de code in het vorige voorbeeld, sluit u de editor met behulp van het contextmenu met het beletselteken (...) in de rechterbovenhoek van de editor of de sneltoets Ctrl + Q.

Het script uitvoeren

  1. Voer het script uit met behulp van de volgende opdracht:

    ./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  2. Wacht op voltooiing. Het uitvoeren van het script duurt enkele minuten.

  3. Controleer de VM's. Zodra het script is voltooid, controleert u of het is voltooid door de VM's in de resourcegroep weer te geven:

    Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

    Als het goed is, ziet u drie virtuele machines die allemaal zijn voorzien van een unieke naam.

U hebt een script gemaakt waarmee het maken van drie VM's, elk in een specifieke resourcegroep, wordt geautomatiseerd, zodat deze klaar zijn voor dagelijkse demo's op de beurs. Hoewel het script kort en eenvoudig is, versnelt het een proces dat anders tijdrovend en foutgevoelig zou zijn als het handmatig wordt uitgevoerd via Azure Portal.