Azure-resources maken met Azure PowerShell met behulp van een script

Voltooid

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:

Schermopname van VS Code met een PowerShell-script voor het maken van een virtuele machine in Azure.

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 WhileDo-While. Do-UntilForeachFor 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.