Поделиться через


Пример использования CLI: создание пула Linux и управление им в пакетной службе Azure

В этом скрипте показаны некоторые из доступных команд Azure CLI для создания пулов вычислительных узлов Linux в пакетной службе Azure и управления ими.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Предварительные условия

Пример скрипта

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com.

Когда откроется Cloud Shell, убедитесь, что для вашей среды выбран вариант Bash. В последующих сеансах в среде Bash будет использоваться Azure CLI. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.

Вход в Azure

Проверка подлинности Cloud Shell автоматически производится с данными той учетной записи, с которой был осуществлен вход. Используйте следующий сценарий для входа с помощью другой подписки, заменив subscriptionId идентификатором подписки Azure.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

subscription="subscriptionId" # Set Azure subscription ID here

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

Дополнительные сведения см. в интерактивном режиме для задания активной подписки или входа.

Создание пула Linux в пакетной службе Azure

# 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

Перезагрузка пакетного узла

Если у конкретного узла в пуле возникли проблемы, его можно перезагрузить или пересоздать его образ. Идентификатор узла можно получить с помощью приведенной выше команды отображения списка. Типичный идентификатор узла имеет формат tvm-xxxxxxxxxx_1-<timestamp>.

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

Удаление пакетного узла

Один или несколько вычислительных узлов можно удалить из пула, и все уже назначенные ему работы можно переназначить другому узлу.

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

Очистка ресурсов

Если вам больше не нужны определенные ресурсы, вы можете удалить их и соответствующую группу ресурсов с помощью команды az group delete. Как создание, так и удаление определенных ресурсов может занять некоторое время.

az group delete --name $resourceGroup

Пример ссылки

Этот скрипт использует следующие команды. Для каждой команды в таблице приведены ссылки на соответствующую документацию.

Команда Примечания.
az group create Создает группу ресурсов, в которой хранятся все ресурсы.
az batch account create Создает учетную запись Batch.
az вход в пакетный аккаунт Выполняет проверку подлинности с помощью указанной учетной записи Batch для дальнейшего взаимодействия с интерфейсом командной строки.
az batch pool node-agent-skus list Отображает список доступных номеров SKU агента узла и сведения об образе.
az batch pool create Создает пул вычислительных узлов.
az batch pool resize - изменение размера пула в пакете az Изменяет количество работающих виртуальных машин в указанном пуле.
az batch pool show Отображает свойства пула.
az batch node list Отображает список всех вычислительных узлов в указанном пуле.
az batch node reboot Перезапускает указанный вычислительный узел.
az batch node delete Удаляет указанные узлы из выбранного пула.
az group delete Удаляет группу ресурсов со всеми вложенными ресурсами.

Следующие шаги

Дополнительные сведения об Azure CLI см. в документации по Azure CLI.