Skapa resurser med ett Azure CLI-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 datorer. Dessa datorer kan behöva tas bort kontinuerligt och återskapas. Att använda ett Azure CLI-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 az vm create 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 Azure CLI-skript i en Bash-miljö som uppfyller dessa krav.

Vad är az Azure CLI Bash-skript?

Ett Azure CLI-skript är en textfil som innehåller kommandon och kontrollkonstruktioner. Skriptet kör referenskommandon och kontrollkonstruktionerna är programmeringsfunktioner som loopar, variabler, parametrar, kommentarer osv. som tillhandahålls av Bash.

Azure CLI Bash-skriptfiler har ett .sh filnamnstillägg. Du kan skapa och spara dessa filer med valfri textredigerare.

När du har skapat ett skript kan du köra det från kommandoraden genom att skicka namnet på filen. Föregå filnamnet med en punkt för den aktuella katalogen och ett omvänt snedstreck:

.\myScript.sh

Bash-tekniker

Bash innehåller funktioner som ofta finns i programmeringsspråk. För skriptet som du fokuserar på i den här övningen använder du tre viktiga funktioner: variabler, loopar och parametrar.

Variabler

Om du tilldelar ett värde till en variabel i Azure CLI skapas variabeln automatiskt. Till exempel:

location="eastus"

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

echo $location

Loopar

Bash har flera loopstrukturer, inklusive until, whileoch for. Loopen for är ett bra alternativ för scenarier där du behöver köra en loop över ett angivet antal värden i en samling.

#!/bin/bash
for i in 1 2 3
do
   echo "Loop $i times"
done

Parametrar

När du skapar ett Azure CLI-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.sh parameter1 parameter2 parameter3

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

#!/bin/bash

loopCount=3
name="msdocs"

for i in $(seq 1 $loopCount)
do
    loopName="loop $i for $name"
    echo $loopName
done

Utdata ser ut så här:

loop 1 for msdocs
loop 2 for msdocs
loop 3 for msdocs

Du kan använda 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.

Exempelskript

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

#!/bin/bash
    
# Assign parameters to variables
vmCount=$1
adminUserPrefix=$2
shift 2
images=("$@")
    
# Loop 
for i in $(seq 1 $vmCount)
do
    let "randomIdentifier=$RANDOM*$RANDOM"
    resourceGroupName="msdocs-rg-$randomIdentifier"
    location="westus"
    adminUserName="msdocs-$randomIdentifier"
    vmName="msdocs-vm-$randomIdentifier"
    vmImage=${images[$((i-1)) % ${#images[@]}]}

    echo "Creating VM $vmName on $mvImage with admin $adminUserName in resource group $resourceGroupName"

    # create the resource group
    az group create --name $resourceGroupName --location $location

    # create the VM
    az vm create \
        --resource-group $resourceGroupName \
        --location $location \
        --admin-username $adminUserName \
        --name $vmName \
        --image $vmImage \
        --generate-ssh-keys

done

Köra skriptet

Spara skriptet som msdocs-script.sh och kör det från en Bash-kommandorad med de parametrar som krävs:

./msdocs-script.sh 3  Debian11 Debian11 Ubuntu2204

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ö. I nästa lektion ska vi bygga ut det här skriptet för att inkludera ytterligare parametrar och söka efter lyckat slutförande.