Resources maken met behulp van een Azure CLI-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) waarin u uw software test op meerdere virtuele machines. Deze machines moeten mogelijk continu worden verwijderd en opnieuw worden gemaakt. Het gebruik van een Azure CLI-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:

  • az vm create 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 Azure CLI-script schrijft en uitvoert in een Bash-omgeving die voldoet aan deze vereisten.

Wat is az Azure CLI Bash script?

Een Azure CLI-script is een tekstbestand met opdrachten en besturingsconstructies. Het script voert referentieopdrachten uit en de besturingsconstructies zijn programmeerfuncties zoals lussen, variabelen, parameters, opmerkingen, enzovoort.

Azure CLI Bash-scriptbestanden hebben een .sh bestandsextensie. U kunt deze bestanden maken en opslaan met een teksteditor.

Nadat u een script hebt gemaakt, kunt u het uitvoeren vanaf de opdrachtregel door de naam van het bestand door te geven. Ga vooraf aan de bestandsnaam met een punt voor de huidige map en een backslash:

.\myScript.sh

Bash-technieken

Bash bevat functies die vaak worden gevonden in programmeertalen. Voor het script waarop u zich in deze oefening richt, gebruikt u drie belangrijke functies: variabelen, lussen en parameters.

Variabelen

Als u in Azure CLI een waarde toewijst aan een variabele, wordt de variabele automatisch gemaakt. Voorbeeld:

location="eastus"

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

echo $location

Lussen

Bash heeft verschillende lusstructuren, waaronder until, whileen for. De for lus is een goede keuze voor scenario's waarbij u een lus moet uitvoeren op een bepaald aantal waarden in een verzameling.

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

Parameters

Wanneer u een Azure CLI-script maakt, kunt u parameters toevoegen aan het script en vervolgens waarden voor deze parameters opgeven bij het uitvoeren van het script. Voorbeeld:

.\setupEnvironment.sh parameter1 parameter2 parameter3

Leg in het script de waarden vast in variabelen. In dit voorbeeld zijn de parameters loopCount en de naam:

#!/bin/bash

loopCount=3
name="msdocs"

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

De uitvoer ziet er als volgt uit:

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

U kunt 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.

Voorbeeldscript

Hier volgt een voorbeeldscript dat laat zien hoe u variabelen, lussen en parameters gebruikt om meerdere VM's te maken:

#!/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

Het script uitvoeren

Sla het script op als msdocs-script.sh en voer het uit vanaf een Bash-opdrachtregel, waarbij u de vereiste parameters opgeeft:

./msdocs-script.sh 3  Debian11 Debian11 Ubuntu2204

Met dit script kunt u efficiƫnt meerdere VM's maken in verschillende resourcegroepen, terugkerende taken automatiseren en consistentie in uw Azure-omgeving garanderen. In de volgende les gaan we dit script uitbouwen om extra parameters op te nemen en te controleren of het is voltooid.