Dela via


CLI-exempel: Skapa och hantera en Linux-pool i Azure Batch

Det här skriptet visar några av de kommandon som är tillgängliga i Azure CLI för att skapa och hantera en pool med Linux-beräkningsnoder i Azure Batch.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

Exempelskript

Starta Azure Cloud Shell

Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.

Om du vill öppna Cloud Shell väljer du bara Prova från det övre högra hörnet i ett kodblock. Du kan också starta Cloud Shell i en separat webbläsarflik genom att gå till https://shell.azure.com.

När Cloud Shell öppnas kontrollerar du att Bash har valts för din miljö. Efterföljande sessioner använder Azure CLI i en Bash-miljö, Välj Kopiera för att kopiera kodblocken, klistra in dem i Cloud Shell och tryck på Retur för att köra det.

Logga in på Azure

Cloud Shell autentiseras automatiskt under det första kontot som loggas in med. Använd följande skript för att logga in med en annan prenumeration och ersätta subscriptionId med ditt Azure-prenumerations-ID.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

Mer information finns i ange en aktiv prenumeration eller logga in interaktivt.

Skapa en Linux-pool i 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

Starta om en batchnod

Om en viss nod i poolen har problem kan den startas om eller omskapas. Nodens ID kan hämtas med listkommandot ovan. Ett typiskt nod-ID är i formatet tvm-xxxxxxxxxx_1-<timestamp>.

az batch node reboot \
    --pool-id mypool-linux \
    --node-id tvm-123_1-20170316t000000z

Ta bort en batchnod

En eller flera beräkningsnoder kan tas bort från poolen, och allt arbete som redan har tilldelats den kan omallokeras till en annan nod.

az batch node delete \
    --pool-id mypool-linux \
    --node-list tvm-123_1-20170316t000000z tvm-123_2-20170316t000000z \
    --node-deallocation-option requeue

Rensa resurser

Använd följande kommando för att ta bort resursgruppen och alla resurser som är associerade med den med kommandot az group delete – såvida du inte har ett pågående behov av dessa resurser. Vissa av dessa resurser kan ta ett tag att skapa och ta bort.

az group delete --name $resourceGroup

Exempelreferens

Det här skriptet använder följande kommandon. Varje kommando i tabellen länkar till kommandospecifik dokumentation.

Command Kommentar
az group create Skapar en resursgrupp där alla resurser lagras.
az batch account create Skapar Batch-kontot.
az batch account login Autentiserar mot det angivna Batch-kontot för ytterligare CLI-interaktion.
az batch pool node-agent-skus list Visar en lista över tillgängliga SKU:er för nodagent och avbildningsinformation.
az batch pool create Skapar en pool med beräkningsnoder.
az batch pool resize Ändrar storlek på hur många virtuella datorer som körs i den angivna poolen.
az batch pool show Visar egenskaperna för en pool.
az batch node list Visar en lista med alla beräkningsnoder i den angivna poolen.
az batch node reboot Startar om den angivna beräkningsnoden.
az batch node delete Tar bort de listade noderna från den angivna poolen.
az group delete Tar bort en resursgrupp, inklusive alla kapslade resurser.

Nästa steg

Mer information om Azure CLI finns i Azure CLI-dokumentationen.