Scripts maken en opslaan in Azure PowerShell

Voltooid

Complexe en terugkerende taken kosten vaak veel beheertijd. Daarom kiezen organisaties ervoor om die taken te automatiseren, waarmee ze kosten verlagen en fouten voorkomen.

Automatisering is belangrijk in het voorbeeld van het CRM-bedrijf (Customer Relationship Management). Daar test u uw software op meerdere virtuele Linux-machines (VM's) die u continu moet verwijderen en opnieuw maken. U wilt een PowerShell-script gebruiken om het maken van vm's te automatiseren en ze elke keer handmatig te maken.

Naast de kernbewerking van het maken van een VIRTUELE machine hebt u nog enkele vereisten voor uw script:

  • U maakt meerdere VM's, dus u wilt het maken binnen een lus plaatsen.
  • U moet VM's maken in drie verschillende resourcegroepen, dus de naam van de resourcegroep moet als parameter worden doorgegeven aan het script.

In deze sectie ziet u hoe u een Azure 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. De besturingsconstructies zijn programmeerfuncties zoals lussen, variabelen, parameters, opmerkingen, enzovoort die door PowerShell worden geleverd.

PowerShell-scriptbestanden hebben een .ps1 bestandsextensie. U kunt deze bestanden maken en opslaan met elke teksteditor.

Tip

Als u PowerShell-scripts schrijft in Windows, kunt u de Windows PowerShell Integrated Scripting Environment (ISE) gebruiken. Deze editor biedt functies zoals syntaxiskleuren en een lijst van beschikbare cmdlets.

In de volgende schermafbeelding ziet u de Windows PowerShell Integrated Scripting Environment (ISE) met een voorbeeldscript om verbinding te maken met Azure en een virtuele machine te maken in Azure.

Screenshot of the Windows PowerShell Integrated Scripting Environment with a script to create a virtual machine open in the editing window.

Nadat u het script hebt geschreven, voert u het uit vanaf de PowerShell-opdrachtregel door de naam van het bestand door te geven dat voorafgaat door een punt en een backslash:

.\myScript.ps1

PowerShell-technieken

PowerShell heeft veel functies van moderne programmeertalen. U kunt variabelen definiëren, vertakkingen en lussen gebruiken, opdrachtregelparameters vastleggen, functies schrijven, opmerkingen toevoegen, enzovoort. We hebben drie functies nodig voor ons script: variabelen, lussen en parameters.

Variabelen

In de vorige les hebt u gezien dat PowerShell variabelen ondersteunt. Gebruik $ om een variabele te declareren en = om een waarde toe te wijzen. Bijvoorbeeld:

$loc = "East US"
$iterations = 3

Variabelen kunnen objecten bevatten. Met de volgende definitie stelt u bijvoorbeeld de variabele adminCredential in op het object dat wordt geretourneerd door de cmdlet Get-Credential.

$adminCredential = Get-Credential

Als u de waarde wilt verkrijgen die is opgeslagen in een variabele, gebruikt u het voorvoegsel en de $ naam ervan, zoals in het volgende:

$loc = "East US"
New-AzResourceGroup -Name "MyResourceGroup" -Location $loc

Lussen

PowerShell heeft verschillende lusstructuren, waaronder For, Do...Whileen For...Each. De For lus is de beste overeenkomst voor onze behoeften, omdat we een cmdlet een vast aantal keren uitvoeren.

In het volgende voorbeeld ziet u de kernsyntaxis. Het voorbeeld wordt uitgevoerd voor twee iteraties en drukt elke keer de waarde van i af. De vergelijkingsoperatoren worden geschreven -lt voor 'kleiner dan', -le voor 'kleiner dan of gelijk', -eq voor 'gelijk', -ne voor 'niet gelijk', enzovoort.

For ($i = 1; $i -lt 3; $i++)
{
    $i
}

Parameters

Wanneer u een script uitvoert, kunt u argumenten doorgeven in de opdrachtregel. U kunt de namen van parameters opgeven zodat het script de waarden kan ophalen. Bijvoorbeeld:

.\setupEnvironment.ps1 -size 5 -location "East US"

In het script legt u de waarden vast in variabelen. In dit voorbeeld zijn de parameters hetzelfde als hun naam:

param([string]$location, [int]$size)

U kunt de namen weglaten uit de opdrachtregel. Bijvoorbeeld:

.\setupEnvironment.ps1 5 "East US"

In het script vertrouwt u op de positie voor overeenkomende waarden wanneer de parameters een naam hebben:

param([int]$size, [string]$location)

We kunnen deze parameters gebruiken als invoer en een lus gebruiken om een set virtuele machines te maken op basis van de opgegeven parameters. Dit gaan we hierna proberen.

Dankzij de combinatie van PowerShell en Azure PowerShell beschikt u over alles dat u nodig hebt om Azure te automatiseren. In ons CRM-voorbeeld kunnen we meerdere Linux-VM's maken met behulp van een parameter om het script algemeen en een lus te houden om herhaalde code te voorkomen. Met dit script kunnen we in één stap een voorheen complexe bewerking uitvoeren.