Udostępnij za pomocą


Przykład CLI: Utwórz i zarządzaj pulą Linux w Azure Batch

Ten skrypt demonstruje kilka poleceń dostępnych w Azure CLI do tworzenia i zarządzania pulą węzłów obliczeniowych Linux w usłudze Azure Batch.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Przykładowy skrypt

Uruchamianie usługi Azure Cloud Shell

Azure Cloud Shell to bezpłatna interaktywna powłoka, którą można użyć do realizacji kroków opisanych w tym artykule. Ma zainstalowane i skonfigurowane popularne narzędzia Azure do użycia z Twoim kontem.

Aby otworzyć Cloud Shell, należy po prostu wybrać Try it w prawym górnym rogu bloku kodu. Możesz również uruchomić Cloud Shell w osobnej karcie przeglądarki, przechodząc do https://shell.azure.com.

Po otwarciu Cloud Shell upewnij się, że w Twoim środowisku wybrano Bash. Następne sesje będą korzystać z Azure CLI w środowisku Bash. Wybierz Kopiuj , aby skopiować bloki kodu, wklej je do Cloud Shell i naciśnij Enter , aby je uruchomić.

Zaloguj się do Azure

Cloud Shell jest automatycznie uwierzytelniany za pomocą początkowego konta, na które się zalogowano. Użyj poniższego skryptu, aby zalogować się przy użyciu innej subskrypcji, zastępując subscriptionId swoim identyfikatorem subskrypcji Azure.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

subscription="subscriptionId" # Set Azure subscription ID here

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

Aby uzyskać więcej informacji, zobacz ustaw aktywną subskrypcję lub zaloguj się interaktywnie.

Aby utworzyć pulę systemu Linux w 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

Aby ponownie uruchomić węzeł przetwarzania wsadowego

Jeśli w puli występują problemy z określonym węzłem, można go ponownie uruchomić lub odtworzyć obraz. Identyfikator węzła można pobrać za pomocą polecenia "list" powyżej. Typowy identyfikator węzła ma format tvm-xxxxxxxxxx_1-<timestamp>.

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

Aby usunąć węzeł wsadowy

Co najmniej jeden węzeł obliczeniowy można usunąć z puli, a wszystkie zadania już przypisane do niego można ponownie przydzielić do innego węzła.

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

Uprzątnij zasoby

Aby usunąć grupę zasobów i wszystkie zasoby z nią związane, użyj następującego polecenia az group delete - chyba że nadal potrzebujesz tych zasobów. Niektóre z tych zasobów mogą zająć trochę czasu, aby je utworzyć, jak i usunąć.

az group delete --name $resourceGroup

Przykładowe odniesienie

Ten skrypt używa następujących poleceń. Każde polecenie w tabeli prowadzi do dokumentacji specyficznej dla danego polecenia.

Komenda Notatki
Polecenie az group create służy do utworzenia grupy w Azure. Tworzy grupę zasobów, w której są przechowywane wszystkie zasoby.
az batch account create - Komenda do stworzenia konta w usłudze batch. Tworzy konto Batch.
az batch account zaloguj Uwierzytelnia się w określonym koncie Batch w celu dalszej interakcji z interfejsem wiersza poleceń (CLI).
az batch pool node-agent-skus list Wyświetla dostępne jednostki SKU agenta węzła oraz informacje o obrazach.
Polecenie az batch pool create tworzy pulę w usłudze Azure Batch. Tworzy pulę węzłów obliczeniowych.
az batch pool zmień rozmiar Zmienia rozmiar uruchomionych maszyn wirtualnych w określonej puli.
az batch pool show Wyświetla właściwości puli.
az batch node list Wyświetla listę wszystkich węzłów obliczeniowych w określonej puli.
"Polecenie az batch node reboot umożliwia ponowne uruchomienie węzła batch." Restartuje określony węzeł obliczeniowy.
az batch node delete Usuwa wymienione węzły z określonej puli.
az group delete - usuwa grupę zasobów w Azure Usuwa grupę zasobów, łącznie ze wszystkimi zagnieżdżonymi zasobami.

Następne kroki

Aby uzyskać więcej informacji na temat Azure CLI, zapoznaj się z dokumentacją Azure CLI.