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


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

В этом скрипте показаны некоторые из доступных команд Azure CLI для создания пулов вычислительных узлов Linux в пакетной службе 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, создайте бесплатную учетную запись перед началом.

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 — создание учетной записи пакета в Azure. Создает учетную запись 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 Отображает список всех вычислительных узлов в указанном пуле.
az batch node reboot Перезапускает указанный вычислительный узел.
Удаление узла пакета az Удаляет указанные узлы из выбранного пула.
az group delete (удалить группу az) Удаляет группу ресурсов, включая все вложенные в неё ресурсы.

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

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