Övning – Skapa Azure-resurser med Azure PowerShell med hjälp av ett skript

Slutförd

I den här lektionen fortsätter du med exemplet på ett företag som utvecklar Linux-administratörsverktyg. Målet är att använda virtuella Linux-datorer (VM) för att tillåta potentiella kunder att testa din programvara. När en resursgrupp redan har konfigurerats är det dags att skapa de virtuella datorerna.

Ditt företag säkrade en monter på en stor Linux-mässa. Du planerar att konfigurera ett demoområde med tre terminaler som var och en är ansluten till en separat virtuell Linux-dator. Du måste ta bort de virtuella datorerna och återskapa dem i slutet av varje dag så att de börjar om varje morgon. Att skapa de virtuella datorerna manuellt efter en lång dag är felbenäget, så du måste skriva ett PowerShell-skript för att automatisera processen för att skapa virtuella datorer.

Skriva ett skript för att skapa virtuella datorer

Följ de här stegen för att skriva ett skript i Azure Cloud Shell som automatiserar skapandet av virtuella datorer.

Kommentar

Vanligtvis autentiserar du till Azure med dina autentiseringsuppgifter med Connect-AzAccount, men i Cloud Shell är du redan autentiserad, så det här steget är onödigt.

  1. Växla till din hemmapp:

    Set-Location -Path $HOME
    
  2. Skapa en ny PowerShell-skriptfil:

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. Öppna den integrerade Visual Studio Code-redigeraren (VS Code):

    code ./ConferenceDailyReset.ps1
    

    Dricks

    Den integrerade Cloud Shell-redigeraren stöder även vim, nano och emacs om du föredrar att använda någon av dessa redigerare.

  4. Definiera en parameter för resursgruppens namn:

    Lägg till följande rad i skriptet:

    param (
        [string]$ResourceGroupName
    )
    
  5. Fråga efter autentiseringsuppgifter för VM-administratör:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. Skapa en loop som ska köras tre gånger:

    $vms = 'web','app','sql'
    foreach ($vm in $vms) {
        $vm
    }
    
  7. I loopen returnerar du namnet på varje virtuell dator:

    Write-Output "Creating VM: $vm"
    
  8. Skapa en virtuell dator med hjälp av variabeln $vm :

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

    Om du vill spara skriptet använder du snabbmenyn med ellipser (...) i det övre högra hörnet i redigeraren eller ctrl + S-kortkommandot .

Slutfört skript

Det färdiga skriptet bör se ut som i följande exempel:

param (
    [string]$ResourceGroupName
)

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

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

foreach ($vm in $vms) {

    Write-Output "Creating VM: $vm"

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

När du har bekräftat att skriptet ser ut som koden i föregående exempel stänger du redigeraren med snabbmenyn med ellipsen (...) längst upp till höger i redigeraren eller kortkommandot Ctrl + Q .

Kör skriptet

  1. Kör skriptet med följande kommando:

    ./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  2. Vänta tills det är klart. Det tar flera minuter att slutföra skriptet.

  3. Verifiera de virtuella datorerna. När skriptet är klart kontrollerar du att det har slutförts genom att visa en lista över de virtuella datorerna i resursgruppen:

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

    Du bör se tre virtuella datorer – var och en med ett unikt namn.

Du har skapat ett skript som automatiserar skapandet av tre virtuella datorer, var och en i en specifik resursgrupp, vilket säkerställer att de är redo för dagliga demonstrationer på mässan. Även om skriptet är kort och enkelt, påskyndar det avsevärt en process som annars skulle vara tidskrävande och felbenägen om den utförs manuellt via Azure-portalen.