Partilhar via


Exemplo da CLI: Criar e gerir um conjunto do Linux no Azure Batch

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

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

Pré-requisitos

Script de exemplo

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.

Quando o Cloud Shell abrir, verifique se Bash está selecionado para o 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-o no Cloud Shell e pressione Enter para executá-lo.

Iniciar sessão no Azure

Cloud Shell é autenticado automaticamente na conta inicial com a qual fez o login. Use o script a seguir para entrar usando uma assinatura diferente, substituindo subscriptionId pela sua ID de assinatura do Azure.

Se 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 obter mais informações, consulte definir assinatura ativa ou fazer login interativamente.

Para criar um pool 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ó em lote

Se um nó específico no pool estiver a ter problemas, ele poderá ser reiniciado ou reimaginado. O ID do nó pode ser recuperado com o comando "list" acima mencionado. Um identificador de nó típico 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 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ê tenha uma necessidade contínua desses recursos. Alguns desses recursos podem demorar um pouco para criar, bem como para excluir.

az group delete --name $resourceGroup

Referência de exemplo

Este script utiliza os seguintes comandos. Cada comando na tabela liga à documentação específica do comando.

Comando Notas
az group create (comando para criar um grupo no Microsoft Azure) Cria um grupo de recursos no qual todos os recursos são armazenados.
az batch account create (comando para criar uma conta batch no Azure) Cria a conta Batch.
Para aceder à conta de batch, utilize o comando az batch account login. Autentica na conta do Batch especificada para mais interações com a CLI.
az batch pool node-agent-skus list (listar skus de agentes de nó do batch pool) Lista os SKUs do agente de nó e as informações da imagem disponíveis.
az batch pool criar Cria um conjunto de nós de computação.
Redimensionamento do pool de lotes AZ Redimensiona o número de VMs em execução no conjunto especificado.
AZ Batch Pool Show Apresenta as propriedades de um pool.
Lista de nós de lote AZ Lista todos os nós de computação no conjunto especificado.
az batch node reboot (reiniciar nó do lote az) Reinicia o nó de computação especificado.
AZ Batch Node Delete Elimina os nós listados da pool especificada.
az group delete - comando para eliminar um grupo. Elimina um grupo de recursos, incluindo todos os recursos aninhados.

Próximos passos

Para obter mais informações sobre a CLI do Azure, veja Documentação da CLI do Azure.