Gestione dei pool di Azure Batch con l'interfaccia della riga di comando di AzureManaging Azure Batch pools with Azure CLI

Questi script illustrano alcuni degli strumenti disponibili nell'interfaccia della riga di comando di Azure per creare e gestire pool di nodi di calcolo nel servizio Azure Batch.These script demonstrates some of the tools available in the Azure CLI to create and manage pools of compute nodes in the Azure Batch service.

Nota

I comandi in questo esempio creano macchine virtuali di Azure.The commands in this sample create Azure virtual machines. L'esecuzione di macchine virtuali comporterà addebiti all'account.Running VMs will accrue charges to your account. Per ridurre al minimo tali addebiti, eliminare le macchine virtuali dopo aver eseguito l'esempio.To minimize these charges, delete the VMs once you're done running the sample. Vedere Eseguire la pulizia dei pool.See Clean up pools.

È possibile configurare i pool di Batch in due modi: con una configurazione Servizi cloud (solo Windows) o con una configurazoine Macchina virtuale (Windows e Linux).Batch pools can be configured in two ways, either with a Cloud Services configuration (Windows only), or a Virtual Machine configuration (Windows and Linux). Gli script di esempio seguenti mostrano come creare pool con entrambe le configurazioni.The sample scripts below show how to create pools with both configurations.

PrerequisitiPrerequisites

Script di esempio per un pool con configurazione Servizi cloudPool with cloud service configuration sample script

#!/bin/bash

# Authenticate Batch account CLI session.
az batch account login -g myresourcegroup -n mybatchaccount

# We want to add an application package reference to the pool, so first
# we'll list the available applications.
az batch application summary list

# Create a new Windows cloud service platform pool with 3 Standard A1 VMs.
# The pool has an application package reference (taken from the output of the
# above command) and a start task that will copy the application files to a shared directory.
az batch pool create \
    --id mypool-windows \
    --os-family 4 \
    --target-dedicated 3 \
    --vm-size small \
    --start-task-command-line "cmd /c xcopy %AZ_BATCH_APP_PACKAGE_MYAPP% %AZ_BATCH_NODE_SHARED_DIR%" \
    --start-task-wait-for-success \
    --application-package-references myapp

# We can add some metadata to the pool.
az batch pool set --pool-id mypool-windows --metadata IsWindows=true VMSize=StandardA1

# Let's change the pool to enable automatic scaling of compute nodes.
# This autoscale formula specifies that the number of nodes should be adjusted according
# to the number of active tasks, up to a maximum of 10 compute nodes.
az batch pool autoscale enable \
    --pool-id mypool-windows \
    --auto-scale-formula "$averageActiveTaskCount = avg($ActiveTasks.GetSample(TimeInterval_Minute * 15));$TargetDedicated = min(10, $averageActiveTaskCount);"

# We can monitor the resizing of the pool.
az batch pool show --pool-id mypool-windows

# Once we no longer require the pool to automatically scale, we can disable it.
az batch pool autoscale disable --pool-id mypool-windows

Script di esempio per un pool con configurazione Macchina virtualePool with virtual machine configuration sample script

#!/bin/bash

# Authenticate Batch account CLI session.
az batch account login -g myresource group -n mybatchaccount

# Retrieve a list of available images and node agent SKUs.
az batch pool node-agent-skus list

# 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 will default to 'latest'.
az batch pool create \
    --id mypool-linux \
    --vm-size Standard_A1 \
    --image canonical:ubuntuserver:16.04.0-LTS \
    --node-agent-sku-id batch.node.ubuntu 16.04

# Now let's resize the pool to start up some VMs.
az batch pool resize --pool-id mypool-linux --target-dedicated 5

# We can 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

# If a particular node in the pool is having issues, it can be rebooted or reimaged.
# The ID of the node can be retrieved with the list command above.
# A typical node ID will be in the format 'tvm-xxxxxxxxxx_1-<timestamp>'.
az batch node reboot --pool-id mypool-linux --node-id tvm-123_1-20170316t000000z

# Alternatively, one or more compute nodes can be deleted from the pool, and any
# work already assigned to it can be re-allocated to another node.
az batch node delete \
    --pool-id mypool-linux \
    --node-list tvm-123_1-20170316t000000z tvm-123_2-20170316t000000z \
    --node-deallocation-option requeue

Eseguire la pulizia dei poolClean up pools

Dopo aver eseguito lo script di esempio precedente, eseguire il comando seguente per eliminare i pool.After you run the above sample script, run the following command to delete the pools.

az batch pool delete --pool-id mypool-windows
az batch pool delete --pool-id mypool-linux

Spiegazione dello scriptScript explanation

Questo script usa i comandi seguenti per creare e manipolare pool Batch.This script uses the following commands to create and manipulate Batch pools. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.Each command in the table links to command-specific documentation.

ComandoCommand NoteNotes
az batch account loginaz batch account login Eseguire l'autenticazione con un account Batch.Authenticate against a Batch account.
az batch application summary listaz batch application summary list Elencare le applicazioni disponibili nell'account Batch.List the available applications in the Batch account.
az batch pool createaz batch pool create Creare un pool di macchine virtuali.Create a pool of VMs.
az batch pool setaz batch pool set Aggiornare le proprietà di un pool.Update properties of a pool.
az batch pool node-agent-skus listaz batch pool node-agent-skus list Elencare gli SKU agente nodo disponibili e le informazioni dell'immagine.List available node agent SKUs and image information.
az batch pool resizeaz batch pool resize Ridimensionare il numero di macchine virtuali in esecuzione nel pool specificato.Resize the number of running VMs in the specified pool.
az batch pool showaz batch pool show Visualizzare le proprietà di un pool.Display the properties of a pool.
az batch pool deleteaz batch pool delete Eliminare il pool specificato.Delete the specified pool.
az batch pool autoscale enableaz batch pool autoscale enable Abilitare la scalabilità automatica in un pool e applicare una formula.Enable auto-scaling on a pool and apply a formula.
az batch pool autoscale disableaz batch pool autoscale disable Disabilitare la scalabilità automatica in un pool.Disable auto-scaling on a pool.
az batch node listaz batch node list Elencare tutti i nodi di calcolo nel pool specificato.List all the compute node in the specified pool.
az batch node rebootaz batch node reboot Riavviare il nodo di calcolo specificato.Reboot the specified compute node.
az batch node deleteaz batch node delete Eliminare i nodi elencati dal pool specificato.Delete the listed nodes from the specified pool.

Passaggi successiviNext steps

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere la documentazione sull'interfaccia della riga di comando di Azure.For more information on the Azure CLI, see Azure CLI documentation.

Altri esempi di script dell'interfaccia della riga di comando di Batch sono disponibili nella documentazione dell'interfaccia della riga di comando di Azure Batch.Additional Batch CLI script samples can be found in the Azure Batch CLI documentation.