Creare risorse usando uno script dell'interfaccia della riga di comando di Azure

Completato

Le attività complesse o ripetitive possono richiedere molto tempo e sono soggette a errori quando vengono eseguite manualmente. Le organizzazioni preferiscono automatizzare queste attività per ridurre i costi ed evitare gli errori.

L'automazione è essenziale nell'esempio di Customer Relationship Management (CRM), in cui si testa il software in più macchine virtuali. È possibile che queste macchine debbano essere eliminate e ricreate continuamente. L'utilizzo di uno script dell'interfaccia della riga di comando di Azure per automatizzare la creazione delle macchine virtuali è molto più efficiente e affidabile della loro creazione manuale di volta in volta.

Oltre al funzionamento principale della creazione di una macchina virtuale, lo script deve soddisfare alcuni altri requisiti:

  • Creare più macchine virtuali: Usare az vm create per creare più macchine virtuali denominate in modo univoco.
  • Parametro del gruppo di risorse: Consentire allo script di accettare il nome del gruppo di risorse come parametro.

Questa unità illustra come scrivere ed eseguire uno script dell'interfaccia della riga di comando di Azure in un ambiente Bash che soddisfi tali requisiti.

Che cos'è uno script Bash dell'interfaccia della riga di comando di Azure?

Uno script dell'interfaccia della riga di comando di Azure è un file di testo contenente costrutti di controllo e comandi. Gli script eseguono comandi di riferimento, mentre i costrutti di controllo sono funzionalità di programmazione come cicli, variabili, parametri, commenti e così via, forniti da Bash.

I file degli script Bash dell'interfaccia della riga di comando di Azure hanno l'estensione .sh. È possibile creare e salvare questi file usando un qualsiasi editor di testo.

Dopo aver creato uno script, è possibile eseguirlo dalla riga di comando passando il nome del file. Anteporre al nome del file un punto per la directory corrente e una barra rovesciata:

.\myScript.sh

Tecniche di Bash

Bash include funzionalità che si trovano in genere nei linguaggi di programmazione. Per lo script usato in questo esercizio, si utilizzano tre funzionalità chiave, ovvero variabili, cicli e parametri.

Variabili

Nell'interfaccia della riga di comando di Azure, se si assegna un valore a una variabile, la variabile viene creata automaticamente. Ad esempio:

location="eastus"

Per determinare il valore archiviato in una variabile, usare il prefisso $ e il relativo nome:

echo $location

Cicli

Bash include diverse strutture di ciclo, tra cui until, while e for. Il ciclo for è una scelta ottimale per gli scenari in cui è necessario eseguire un ciclo su un determinato numero di valori in una raccolta.

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

Parametri

Quando si crea uno script dell'interfaccia della riga di comando di Azure, è possibile aggiungere parametri allo script e quindi specificare i valori per questi parametri durante l'esecuzione dello script. Ad esempio:

.\setupEnvironment.sh parameter1 parameter2 parameter3

Nello script, i valori vengono acquisiti nelle variabili. In questo esempio i parametri sono loopCount e name:

#!/bin/bash

loopCount=3
name="msdocs"

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

L'output sarà simile al seguente:

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

È possibile usare i parametri come input e un ciclo per creare un set di macchine virtuali in base ai parametri specificati. Questo approccio mantiene lo script generico ed evita la ripetizione dello stesso codice.

Script di esempio

Di seguito è riportato uno script di esempio che illustra l'uso di variabili, cicli e parametri per creare più macchine virtuali:

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

Eseguire lo script

Salvare lo script come msdocs-script.sh ed eseguirlo dalla riga di comando di Bash, specificando i parametri necessari:

./msdocs-script.sh 3  Debian11 Debian11 Ubuntu2204

Usando questo script, è possibile creare in modo efficiente più macchine virtuali in gruppi di risorse diversi, automatizzare le attività ripetitive e garantire la coerenza nell'ambiente di Azure. L'unità successiva illustrerà come compilare questo script per includere parametri aggiuntivi e verificarne il corretto completamento.