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


AzureVmssDeployment@1 — задача развертывания масштабируемого набора виртуальных машин Azure версии 1

Разверните образ масштабируемого набора виртуальных машин.

Замечание

В этой версии задачи для подключения к хранилищу Azure используется Azure RBAC. Дополнительные сведения см. в статье Настройка Azure RBAC для доступа к хранилищу Azure.

Синтаксис

# Azure VM scale set deployment v1
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@1
  inputs:
  # Azure Details
    azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription. 
    action: 'Update image' # 'Update image' | 'Configure application startup'. Required. Action. Default: Update image.
    vmssName: # string. Required. Virtual Machine scale set name. 
    vmssOsType: # 'Windows' | 'Linux'. Required. OS type. 
  # Image Details
    #imageUrl: # string. Required when action = Update image || action = UpdateImage. Image URL. 
  # Configure start-up
    #customScriptsDirectory: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Custom script directory. 
    #customScript: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Command. 
    #customScriptArguments: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Arguments. 
    #customScriptsStorageAccount: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Azure storage account where custom scripts will be uploaded. 
  # Advanced
    #skipArchivingCustomScripts: false # boolean. Skip Archiving custom scripts. Default: false.

Входные данные

azureSubscription - подписке Azure
Псевдоним ввода: ConnectedServiceName. string. Обязательное.

Выберите подписку Azure Resource Manager для масштабируемого набора.


action - действие
string. Обязательное. Допустимые значения: Update image (обновление масштабируемого набора виртуальных машин с помощью образа), Configure application startup (расширение настраиваемой виртуальной машины в масштабируемом наборе виртуальных машин). Значение по умолчанию: Update image.

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


vmssName - имя масштабируемого набора виртуальных машин
string. Обязательное.

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


типа ОС
string. Обязательное. Допустимые значения: Windows, Linux.

Выберите тип операционной системы масштабируемого набора виртуальных машин.


imageUrl - URL-адрес изображения
string. Требуется, если action = Update image || action = UpdateImage.

Укажите URL-адрес VHD-образа. Если это URL-адрес BLOB-объекта хранилища Azure, расположение учетной записи хранения должно совпадать с расположением масштабируемого набора.


customScriptsDirectory - каталог пользовательских скриптов
string. Необязательно. Используется при action = Configure application startup || action = Update image || action = UpdateImage.

Путь к каталогу, содержащему пользовательские скрипты, которые будут запускаться с помощью расширения Custom Script VM. Подход к расширению полезен для конфигурации после развертывания, установки приложения или программного обеспечения или любой другой задачи настройки или управления приложениями. Например: скрипт может установить переменную окружения на уровне компьютера, которую использует приложение, например, строку подключения к базе данных.


Команда customScript -
string. Необязательно. Используется при action = Configure application startup || action = Update image || action = UpdateImage.

Скрипт, который будет выполняться с помощью расширения виртуальной машины пользовательского скрипта. Этот скрипт может вызывать другие скрипты в каталоге. Скрипт будет вызван с аргументами, переданными ниже.
Этот скрипт в сопряжении с такими аргументами может быть использован для выполнения команд. Рассмотрим пример.
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) обновит строку подключения в web.config веб-приложения.
2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey создаст зашифрованный файл, содержащий ключ субъекта-службы.


customScriptArguments - аргументы
string. Необязательно. Используется при action = Configure application startup || action = Update image || action = UpdateImage.

Настраиваемый скрипт будет вызываться с переданными аргументами. Можно использовать переменные сборки/освобождения, что упрощает использование секретов.


customScriptsStorageAccount - учетной записи хранения Azure, в которой будут отправляться пользовательские скрипты
string. Необязательно. Используется при action = Configure application startup || action = Update image || action = UpdateImage.

Расширение пользовательских скриптов скачивает и выполняет предоставленные вами скрипты на каждой виртуальной машине в масштабируемом наборе виртуальных машин. Эти скрипты будут храниться в указанной здесь учетной записи хранения. Укажите существующую учетную запись хранения ARM.


skipArchivingCustomScripts - Пропускать настраиваемые скрипты архивации
boolean. Значение по умолчанию: false.

По умолчанию эта задача создает сжатый архив директории, содержащий пользовательские скрипты. Это повышает производительность и надежность при отправке в хранилище Azure. Если не выбрано, архивация не будет выполнена, и все файлы будут отправлены по отдельности.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Нет.

Замечания

Используйте эту задачу для развертывания образа масштабируемого набора виртуальных машин.

Выполнение скрипта сообщается успешно, однако экземпляры VMSS не обновляются.

Масштабируемые наборы имеют политику обновления, которая определяет, как виртуальные машины будут доставлены up-to-date с последней моделью масштабируемого набора, и если политика обновления настроена вручную, необходимо вручную обновить каждую виртуальную машину. Дополнительные сведения см. в статье Как перенести виртуальные машины up-to-date с помощью последней модели масштабируемого набора. Вы можете изменить политику обновления или вручную обновить каждую виртуальную машину. Например, чтобы обновить политику до Automatic, используйте следующую команду Az CLI: az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>

Ошибка: "Разрешение запрещено: скрипт не является исполняемым"

Эта проблема возникает, если вы пытаетесь запустить пользовательский скрипт, но скрипт не является исполняемым.

Чтобы устранить проблему, сначала убедитесь, что входные данные customScript не имеют ./ или ничего другого перед именем скрипта 'test.sh':

    customScript: 'test.sh'

Затем попробуйте добавить задачу командной строки перед задачей масштабируемого набора виртуальных машин:

    - task: CmdLine@2
      inputs:
        script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh' 

Настройка Azure RBAC для доступа к хранилищу Azure

В этой версии задачи используется подключение к службе Azure Resource Manager , настроенное с помощью федерации удостоверений рабочей нагрузки и Azure RBAC для подключения к хранилищу Azure вместо ключей учетных записей хранения или подписанных URL-адресов общего доступа (SAS). Чтобы подключиться к хранилищу Azure из этой задачи, необходимо назначить роль участника данных BLOB-объектов хранилища в учетной записи хранения удостоверению подключения к службе, настроенного для azureSubscription.

Дополнительные сведения см. в статьях Назначение роли Azure для доступа к данным BLOB-объектов и Действия по назначению роли.

Для выполнения AzureVmssDeployment@1 задачи требуются следующие дополнительные роли RBAC, настроенные для доступа к учетной записи хранения, настроенной в customScriptsStorageAccount.

Должность Ресурс Пользователь
Участник или участник виртуальной машины Набор масштабируемых виртуальных машин Удостоверение подключения к службе, настроенного для azureSubscription
Сотрудник по работе с BLOB-данными хранилища Учетная запись хранения Azure, содержащая пользовательский скрипт Удостоверение подключения к службе, настроенного для azureSubscription
Читатель данных блобов хранилища Учетная запись хранения Azure, содержащая пользовательский скрипт Масштабируемый набор виртуальных машин: управляемое удостоверение, назначаемое системой

Доступ к Azure RBAC для доступа к пользовательским скриптам.

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
Требования Отсутствует
Возможности Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента 2.209.0 или более поздней версии
Категория задач Развертывание