Azure-resources maken met Azure PowerShell met behulp van een script
Complexe of terugkerende taken kunnen tijdrovend en foutgevoelig zijn wanneer ze handmatig worden uitgevoerd. Organisaties automatiseren deze taken liever om kosten te verlagen en fouten te voorkomen.
Automatisering is essentieel in het CRM-voorbeeld (Customer Relationship Management), waarbij u uw software test op meerdere virtuele Linux-machines (VM's) die continu moeten worden verwijderd en opnieuw moeten worden gemaakt. Het gebruik van een PowerShell-script om het maken van vm's te automatiseren, is veel efficiënter en betrouwbaarder dan ze telkens handmatig te maken.
Naast de kernbewerking van het maken van een VIRTUELE machine moet uw script voldoen aan een aantal andere vereisten:
- Meerdere VM's maken: gebruik
New-AzVM
dit om meerdere unieke VM's te maken. - Resourcegroepparameter: Sta het script toe om de naam van de resourcegroep als parameter te accepteren.
In deze les leert u hoe u een PowerShell-script schrijft en uitvoert dat voldoet aan deze vereisten.
Wat is een PowerShell-script?
Een PowerShell-script is een tekstbestand dat opdrachten en controleconstructies bevat. De opdrachten zijn aanroepen van cmdlets en de besturingsconstructies zijn programmeerfuncties zoals lussen, variabelen, parameters, opmerkingen, enzovoort.
PowerShell-scriptbestanden hebben een .ps1
bestandsextensie. U kunt deze bestanden maken en opslaan met een teksteditor.
Tip
Als u PowerShell-scripts schrijft, kunt u overwegen Om Visual Studio Code (VS Code) te gebruiken. Dit wordt gratis en ondersteund in Windows, Linux en macOS. De PowerShell-extensie voor VS Code biedt functies zoals syntaxismarkeringen en een lijst met beschikbare cmdlets.
De volgende schermopname is een voorbeeld van VS Code met een voorbeeldscript om verbinding te maken met Azure en een virtuele machine te maken:
Zodra u een script hebt gemaakt, kunt u het uitvoeren vanaf de PowerShell-opdrachtregel door de naam van het bestand door te geven dat wordt voorafgegaan door een punt voor de huidige map en een backslash:
.\myScript.ps1
PowerShell-technieken
PowerShell bevat functies die vaak worden gevonden in programmeertalen. U kunt variabelen definiëren, vertakkingen en lussen gebruiken, opdrachtregelparameters vastleggen, functies schrijven, opmerkingen toevoegen en meer. Voor het script waarop u zich richt, hebt u drie belangrijke functies nodig: variabelen, lussen en parameters.
Variabelen
In PowerShell worden variabelen gedeclareerd met behulp van het dollarteken ($
) en toegewezen waarden met behulp van de operator equals (=
). Voorbeeld:
$location = 'eastus'
Als u de waarde wilt bepalen die is opgeslagen in een variabele, gebruikt u het voorvoegsel en de $
naam ervan:
$location
Variabelen kunnen objecten bevatten. Met de volgende definitie wordt de $adminCredential
variabele bijvoorbeeld ingesteld op het object dat wordt geretourneerd door de Get-Credential
cmdlet:
$adminCredential = Get-Credential
Lussen
PowerShell heeft verschillende lusstructuren, waaronder , , , en While
Do-While
. Do-Until
Foreach
For
De Foreach
lus is een goede keuze voor scenario's waarbij u een lus moet uitvoeren voor een reeks waarden in een verzameling.
$items = 'web','app','sql'
foreach ($item in $items) {
$item
}
Parameters
Wanneer u een PowerShell-script maakt, kunt u parameters toevoegen aan het script en vervolgens waarden voor deze parameters opgeven bij het uitvoeren van het script. Voorbeeld:
.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus
Leg in het script de waarden vast in variabelen. In dit voorbeeld zijn de parameters Naam en Locatie:
param (
[string[]]$Name,
[string]$Location
)
U kunt deze parameters gebruiken als invoer en een lus om een set virtuele machines te maken op basis van de opgegeven parameters. Met deze methode blijft het script algemeen en wordt voorkomen dat dezelfde code wordt herhaald.
Technieken combineren
De combinatie van PowerShell-taalfuncties en Azure PowerShell-cmdlets biedt alle hulpprogramma's die u nodig hebt om Azure-taken te automatiseren. In het CRM-voorbeeld kunt u meerdere Virtuele Linux-machines maken met behulp van een geparameteriseerd script en een lus om het proces te stroomlijnen. Met dit script kunt u in één stap een complexe bewerking uitvoeren.
Voorbeeldscript
Hier volgt een voorbeeldscript dat laat zien hoe u variabelen, lussen en parameters gebruikt om meerdere VM's te maken:
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
}
Het script uitvoeren
Sla het script op als CreateVMs.ps1
en voer het uit vanaf de PowerShell-opdrachtregel, waarbij u de vereiste parameters opgeeft:
.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>
Met dit script kunt u efficiënt meerdere VM's maken in verschillende resourcegroepen, terugkerende taken automatiseren en consistentie in uw Azure-omgeving garanderen.