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

Slutförd

Komplexa eller repetitiva uppgifter kan vara tidskrävande och felbenägna när de utförs manuellt. Organisationer föredrar att automatisera dessa uppgifter för att minska kostnaderna och undvika misstag.

Automatisering är viktigt i crm-exemplet (Customer Relationship Management), där du testar din programvara på flera virtuella Linux-datorer (VM) som kontinuerligt måste tas bort och återskapas. Att använda ett PowerShell-skript för att automatisera skapandet av virtuella datorer är mycket mer effektivt och tillförlitligt än att skapa dem manuellt varje gång.

Utöver kärnåtgärden för att skapa en virtuell dator måste skriptet uppfylla några andra krav:

  • Skapa flera virtuella datorer: Använd New-AzVM för att skapa flera unikt namngivna virtuella datorer.
  • Resursgruppsparameter: Tillåt att skriptet accepterar namnet på resursgruppen som en parameter.

I den här lektionen får du lära dig hur du skriver och kör ett PowerShell-skript som uppfyller dessa krav.

Vad är ett PowerShell-skript?

Ett PowerShell-skript är en textfil som innehåller kommandon och styrelement. Kommandona är anrop av cmdletar och kontrollkonstruktionerna är programmeringsfunktioner som loopar, variabler, parametrar, kommentarer osv. som tillhandahålls av PowerShell.

PowerShell-skriptfiler har ett .ps1 filnamnstillägg. Du kan skapa och spara dessa filer med valfri textredigerare.

Dricks

Om du skriver PowerShell-skript bör du överväga att använda Visual Studio Code (VS Code), som är kostnadsfri och stöds i Windows, Linux och macOS. PowerShell-tillägget för VS Code erbjuder funktioner som syntaxmarkering och en lista över tillgängliga cmdletar.

Följande skärmbild är ett exempel på VS Code med ett exempelskript för att ansluta till Azure och skapa en virtuell dator:

Skärmbild av VS Code med ett PowerShell-skript för att skapa en virtuell dator i Azure.

När du har skapat ett skript kan du köra det från PowerShell-kommandoraden genom att skicka namnet på filen som föregås av en punkt för den aktuella katalogen och ett omvänt snedstreck:

.\myScript.ps1

PowerShell-tekniker

PowerShell innehåller funktioner som ofta finns i programmeringsspråk. Du kan definiera variabler, använda grenar och loopar, samla in kommandoradsparametrar, skriva funktioner, lägga till kommentarer med mera. För skriptet som du fokuserar på behöver du tre viktiga funktioner: variabler, loopar och parametrar.

Variabler

I PowerShell deklareras variabler med hjälp av dollartecknet ($) och tilldelade värden med operatorn equals (=). Till exempel:

$location = 'eastus'

Om du vill fastställa värdet som lagras i en variabel använder du prefixet $ och dess namn:

$location

Variabler kan innehålla objekt. Följande definition anger till exempel variabeln $adminCredential till det objekt som returneras av cmdleten Get-Credential :

$adminCredential = Get-Credential

Loopar

PowerShell har flera loopstrukturer, inklusive For, Foreach, Do-Until, Do-Whileoch While. Loopen Foreach är ett bra alternativ för scenarier där du behöver köra en loop över en uppsättning värden i en samling.

$items = 'web','app','sql'
foreach ($item in $items) {
    $item
}

Parametrar

När du skapar ett PowerShell-skript kan du lägga till parametrar i skriptet och sedan ange värden för dessa parametrar när du kör skriptet. Till exempel:

.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus

I skriptet samlar du in värdena i variabler. I det här exemplet är parametrarna Namn och Plats:

param (
    [string[]]$Name,
    [string]$Location
)

Du kan använda dessa parametrar som indata och en loop för att skapa en uppsättning virtuella datorer baserat på de angivna parametrarna. Den här metoden håller skriptet allmänt och undviker att upprepa samma kod.

Kombinera tekniker

Kombinationen av PowerShell-språkfunktioner och Azure PowerShell-cmdletar innehåller alla verktyg du behöver för att automatisera Azure-uppgifter. I CRM-exemplet kan du skapa flera virtuella Linux-datorer med hjälp av ett parametriserat skript och en loop för att effektivisera processen. Med det här skriptet kan du utföra en komplex åtgärd i ett enda steg.

Exempelskript

Här är ett exempelskript som visar hur du använder variabler, loopar och parametrar för att skapa flera virtuella datorer:

param (
    [string[]]$Name = 'web','app','sql',
    [string]$ResourceGroupName,
    [string]$Location = 'eastus'
)

$adminCredential = Get-Credential

foreach ($vm in $Name) {
    $azVmParams = @{
        ResourceGroupName   = $ResourceGroupName
        Name                = $vm
        Credential          = $adminCredential
        Location            = $Location
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = $vm
    }
    New-AzVM @azVmParams
}

Körning av skriptet

Spara skriptet som CreateVMs.ps1 och kör det från PowerShell-kommandoraden med de parametrar som krävs:

.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>

Med det här skriptet kan du effektivt skapa flera virtuella datorer i olika resursgrupper, automatisera repetitiva uppgifter och säkerställa konsekvens i din Azure-miljö.