Skapa Azure-resurser med Azure PowerShell med hjälp av ett skript
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:
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-While
och 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ö.