Criar recursos usando um script da CLI do Azure
Tarefas complexas ou repetitivas podem ser demoradas e propensas a erros quando executadas manualmente. As organizações preferem automatizar essas tarefas para reduzir custos e evitar erros.
A automação é essencial no exemplo de Customer Relationship Management (CRM), onde você está testando seu software em várias máquinas virtuais. Essas máquinas podem precisar ser excluídas e recriadas continuamente. Usar um script da CLI do Azure para automatizar a criação de VMs é muito mais eficiente e confiável do que criá-las manualmente a cada vez.
Além da operação principal de criar uma VM, seu script precisa atender a alguns outros requisitos:
-
Criar várias VMs: use
az vm createpara criar várias VMs com nomes exclusivos. - Parâmetro do grupo de recursos: permita que o script aceite o nome do grupo de recursos como um parâmetro.
Nesta unidade, você aprenderá a escrever e executar um script da CLI do Azure em um ambiente Bash que atenda a esses requisitos.
O que é az Azure CLI Bash script?
Um script da CLI do Azure é um arquivo de texto que contém comandos e construções de controle. O script executa comandos de referência, e as construções de controle são recursos de programação como loops, variáveis, parâmetros, comentários, etc. fornecidos pelo Bash.
Os arquivos de script Bash da CLI do Azure têm uma extensão de .sh arquivo. Você pode criar e salvar esses arquivos usando qualquer editor de texto.
Depois de criar um script, você pode executá-lo a partir da linha de comando, passando o nome do arquivo. Preceda o nome do arquivo com um ponto para o diretório atual e uma barra invertida:
.\myScript.sh
Técnicas de Bash
Bash inclui recursos comumente encontrados em linguagens de programação. Para o script no qual você está se concentrando neste exercício, você está usando três recursos principais: variáveis, loops e parâmetros.
Variáveis
Na CLI do Azure, atribuir um valor a uma variável cria automaticamente a variável. Por exemplo:
location="eastus"
Para determinar o valor armazenado em uma variável, use o prefixo $ e seu nome:
echo $location
Ciclos
Bash tem várias estruturas de loop, incluindo until, whilee for. O for loop é uma boa opção para cenários em que você precisa executar um loop sobre um número definido de valores em uma coleção.
#!/bin/bash
for i in 1 2 3
do
echo "Loop $i times"
done
Parâmetros
Ao criar um script da CLI do Azure, você pode adicionar parâmetros ao script e, em seguida, especificar valores para esses parâmetros ao executar o script. Por exemplo:
.\setupEnvironment.sh parameter1 parameter2 parameter3
Dentro do script, capture os valores em variáveis. Neste exemplo, os parâmetros são loopCount e name:
#!/bin/bash
loopCount=3
name="msdocs"
for i in $(seq 1 $loopCount)
do
loopName="loop $i for $name"
echo $loopName
done
O resultado tem o seguinte aspeto:
loop 1 for msdocs
loop 2 for msdocs
loop 3 for msdocs
Você pode usar parâmetros como entrada e um loop para criar um conjunto de VMs com base nos parâmetros fornecidos. Essa abordagem mantém o script genérico e evita repetir o mesmo código.
Script de exemplo
Aqui está um script de exemplo que demonstra o uso de variáveis, loops e parâmetros para criar várias VMs:
#!/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
Executar o script
Salve o script como msdocs-script.sh e execute-o a partir de uma linha de comando Bash, fornecendo os parâmetros necessários:
./msdocs-script.sh 3 Debian11 Debian11 Ubuntu2204
Usando esse script, você pode criar com eficiência várias VMs em diferentes grupos de recursos, automatizar tarefas repetitivas e garantir a consistência em seu ambiente do Azure. Na próxima unidade, vamos desenvolver esse script para incluir parâmetros adicionais e verificar se a conclusão foi bem-sucedida.