Compartilhar via


Exemplo da CLI: criar e gerenciar um pool no Linux no Azure Batch

Este script demonstra alguns dos comandos disponíveis no Azure CLI para criar e gerenciar um pool de nós de computação Linux no Azure Batch.

Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

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 possui ferramentas comuns do Azure pré-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 for aberto, verifique se o Bash está selecionado para seu 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.

Se você ainda não tiver uma conta do Azure, crie uma conta gratuita 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 Azure Batch

# 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.
O comando az group delete é usado para excluir um grupo no Azure. 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.