Exemplo da CLI: criar e gerenciar um pool do Linux em Lote do Azure
O script demonstra alguns dos comandos disponíveis na CLI do Azure para criar e gerenciar um pool dos nós de computação do Linux no Lote do Azure.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Exemplo de script
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com.
Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e pressione Enter para executá-los.
Entrar no Azure
O Cloud Shell é autenticado automaticamente na conta inicial usada para entrar. Use o seguinte script para entrar com outra assinatura, substituindo subscriptionId pela ID de sua assinatura do Azure.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
subscription="subscriptionId" # Set Azure subscription ID here
az account set -s $subscription # ...or use 'az login'
Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa.
Para criar um pool do Linux no Lote do Azure
# Create and manage a Linux pool in Azure Batch
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
[[ "$RESOURCE_GROUP" == '' ]] && resourceGroup="msdocs-batch-rg-$randomIdentifier" || resourceGroup="${RESOURCE_GROUP}"
tag="manage-pool-linux"
batchAccount="msdocsbatch$randomIdentifier"
# Create a resource group.
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag
# Create a Batch account.
echo "Creating $batchAccount"
az batch account create --resource-group $resourceGroup --name $batchAccount --location "$location"
# Authenticate Batch account CLI session.
az batch account login --resource-group $resourceGroup --name $batchAccount --shared-key-auth
# Retrieve a list of available images and node agent SKUs.
az batch pool supported-images list --query "[?contains(imageReference.offer,'ubuntuserver') && imageReference.publisher == 'canonical'].{Offer:imageReference.offer, Publisher:imageReference.publisher, Sku:imageReference.sku, nodeAgentSkuId:nodeAgentSkuId}[-1]" --output tsv
# Create a new Linux pool with a virtual machine configuration. The image reference
# and node agent SKUs ID can be selected from the ouptputs of the above list command.
# The image reference is in the format: {publisher}:{offer}:{sku}:{version} where {version} is
# optional and defaults to 'latest'."
az batch pool create --id mypool-linux --vm-size Standard_A1 --image canonical:ubuntuserver:18_04-lts-gen2 --node-agent-sku-id "batch.node.ubuntu 18.04"
# Resize the pool to start some VMs.
az batch pool resize --pool-id mypool-linux --target-dedicated 5
# Check the status of the pool to see when it has finished resizing.
az batch pool show --pool-id mypool-linux
# List the compute nodes running in a pool.
az batch node list --pool-id mypool-linux
# returns [] if no compute nodes are running
Para reinicializar um nó de lote
Se um nó específico no pool estiver tendo problemas, ele poderá ser reinicializado ou sua imagem pode ser refeita. A ID do nó pode ser recuperada com o comando de lista acima. Uma típica ID do nó está no formato tvm-xxxxxxxxxx_1-<timestamp>
.
az batch node reboot \
--pool-id mypool-linux \
--node-id tvm-123_1-20170316t000000z
Para excluir um nó de lote
Um ou mais nós de computação podem ser excluídos do pool e qualquer trabalho já atribuído a ele pode ser realocado para outro nó.
az batch node delete \
--pool-id mypool-linux \
--node-list tvm-123_1-20170316t000000z tvm-123_2-20170316t000000z \
--node-deallocation-option requeue
Limpar os recursos
Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete, a menos que você necessite desses recursos com frequência. A criação e a exclusão de alguns desses recursos podem demorar um pouco.
az group delete --name $resourceGroup
Exemplo de referência
Este script usa os comandos a seguir. Cada comando na tabela redireciona para a documentação específica do comando.
Comando | Observações |
---|---|
az group create | Cria um grupo de recursos no qual todos os recursos são armazenados. |
az batch account create | Cria a conta do Lote. |
az batch account login | Autentica na conta do Lote especificada para interação adicional com a CLI. |
az batch pool node-agent-skus list | Lista as informações de imagem e SKUs do agente de nó disponíveis. |
az batch pool create | Cria um pool de nós de computação. |
az batch pool resize | Redimensiona o número de VMs em execução no pool especificado. |
az batch pool show | Exibe as propriedades de um pool. |
az batch node list | Lista todos os nós de computação no pool especificado. |
az batch node reboot | Reinicia o nó de computação especificado. |
az batch node delete | Exclui os nós listados do pool especificado. |
az group delete | Exclui um grupo de recursos, incluindo todos os recursos aninhados. |
Próximas etapas
Para saber mais sobre a CLI do Azure, veja a documentação da CLI do Azure.