Creare risorse usando uno script dell'interfaccia della riga di comando di Azure
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.