Övning – Skapa och spara skript i Azure PowerShell

Slutförd

I den här lektionen fortsätter du med exemplet med ett företag som tillverkar Linux-administratörsverktyg. Kom ihåg att du tänker använda virtuella Linux-datorer så att potentiella kunder kan testa din programvara. Du har en resursgrupp redo och nu är det dags att skapa de virtuella datorerna.

Ditt företag har betalat för en monter på en stor Linux-mässa. Du planerar en demonstration med tre terminaler som var och en är ansluten till en separat virtuell Linux-dator. I slutet av varje dag vill du ta bort de virtuella datorerna och återskapa dem så att de börjar om varje morgon. Det skulle vara felbenäget att skapa de virtuella datorerna manuellt efter jobbet när du är trött. Du vill 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 i Cloud Shell till höger för att skriva skriptet:

  1. Växla till din hemmapp i Cloud Shell.

    cd $HOME\clouddrive
    
  2. Skapa en ny textfil med namnet ConferenceDailyReset.ps1.

    touch "./ConferenceDailyReset.ps1"
    
  3. Öppna den integrerade redigeraren och välj filen ConferenceDailyReset.ps1 .

    code "./ConferenceDailyReset.ps1"
    

    Dricks

    Det inbyggda Cloud Shell stöder även vim, nano och emacs om du föredrar att använda en av dessa redigerare.

  4. Börja med att spara indataparametern i en variabel. Lägg till följande rad i skriptet.

    param([string]$resourceGroup)
    

    Kommentar

    Normalt skulle du behöva autentisera med Azure med dina autentiseringsuppgifter med hjälp av Connect-AzAccount, och du kan göra det i skriptet. Men i Cloud Shell-miljön är du redan autentiserad, så det här är onödigt.

  5. Fråga efter ett användarnamn och lösenord för den virtuella datorns administratörskonto och ange resultatet i en variabel:

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

    For ($i = 1; $i -le 3; $i++) 
    {
    
    }
    
  7. I looptexten skapar du ett namn för varje virtuell dator och lagrar den i en variabel och matar ut den till konsolen:

    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    
  8. Skapa därefter en virtuell dator med hjälp av variabeln $vmName:

    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
    
  9. Spara filen. Du kan använda "..." längst upp till höger i redigeraren. Det finns också vanliga acceleratornycklar för Spara, till exempel Ctrl + S.

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

param([string]$resourceGroup)

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

For ($i = 1; $i -le 3; $i++)
{
    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
}

Kör skriptet

  1. Spara filen och stäng redigeraren med hjälp av "..." snabbmenyn längst upp till höger i redigeraren (eller använd Ctrl + Q).

  2. Kör skriptet.

    ./ConferenceDailyReset.ps1 <rgn>[sandbox resource group name]</rgn>
    

    Skriptet kommer att ta flera minuter att slutföra. När den är klar kontrollerar du att den har körts genom att titta på de resurser som du nu har i resursgruppen:

    Get-AzResource -ResourceType Microsoft.Compute/virtualMachines
    

Du bör ha tre virtuella datorer, var och en med ett unikt namn.

Du skrev ett skript som automatiserade skapandet av tre virtuella datorer i resursgruppen med en skriptparameter. Skriptet är kort och enkelt, men automatiserar en process som skulle ta lång tid att slutföra manuellt med Azure-portalen.