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


PackerBuild@1 . Задача "Сборка образа компьютера" версии 1

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

Синтаксис

# Build machine image v1
# Build a machine image using Packer, which may be used for Azure Virtual machine scale set deployment.
- task: PackerBuild@1
  inputs:
    templateType: 'builtin' # 'builtin' | 'custom'. Required. Packer template. Default: builtin.
    #customTemplateLocation: # string. Required when templateType = custom. Packer template location. 
    #customTemplateParameters: '{}' # string. Optional. Use when templateType = custom. Template parameters. Default: {}.
  # Azure Details
    ConnectedServiceName: # string. Required when templateType = builtin. Azure subscription. 
    #isManagedImage: true # boolean. Optional. Use when templateType = builtin. Managed VM disk image. Default: true.
    #managedImageName: # string. Required when isManagedImage = true && templateType = builtin. Managed VM Disk Image Name. 
    location: # string. Required when templateType = builtin. Storage location. 
    storageAccountName: # string. Required when templateType = builtin. Storage account. 
    azureResourceGroup: # string. Required when templateType = builtin. Resource group. 
  # Deployment Inputs
    baseImageSource: 'default' # 'default' | 'customVhd'. Required when templateType = builtin. Base image source. Default: default.
    #baseImage: 'MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows' # 'MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows' | 'MicrosoftWindowsServer:WindowsServer:2016-Datacenter:windows' | 'MicrosoftWindowsServer:WindowsServer:2012-Datacenter:windows' | 'MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:windows' | 'Canonical:UbuntuServer:14.04.4-LTS:linux' | 'Canonical:UbuntuServer:16.04-LTS:linux' | 'Canonical:UbuntuServer:18.04-LTS:linux' | 'RedHat:RHEL:7.2:linux' | 'RedHat:RHEL:6.8:linux' | 'OpenLogic:CentOS:7.2:linux' | 'OpenLogic:CentOS:6.8:linux' | 'credativ:Debian:8:linux' | 'credativ:Debian:7:linux' | 'SUSE:openSUSE-Leap:42.2:linux' | 'SUSE:SLES:12-SP2:linux' | 'SUSE:SLES:11-SP4:linux'. Required when baseImageSource = default && templateType = builtin. Base image. Default: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows.
    #customImageUrl: # string. Required when baseImageSource = customVhd && templateType = builtin. Base image URL. 
    #customImageOSType: 'windows' # 'windows' | 'linux'. Required when baseImageSource = customVhd && templateType = builtin. Base image OS. Default: windows.
    packagePath: # string. Required when templateType = builtin. Deployment Package. 
    deployScriptPath: # string. Required when templateType = builtin. Deployment script. 
    #deployScriptArguments: # string. Optional. Use when templateType = builtin. Deployment script arguments. 
  # Advanced
    #additionalBuilderParameters: '{"vm_size":"Standard_D3_v2"}' # string. Optional. Use when templateType = builtin. Additional Builder parameters. Default: {"vm_size":"Standard_D3_v2"}.
    #skipTempFileCleanupDuringVMDeprovision: true # boolean. Optional. Use when templateType = builtin. Skip temporary file cleanup during deprovision. Default: true.
    #packerVersion: # string. Optional. Use when templateType = custom. Packer Version. 
  # Output
    #imageUri: # string. Image URL or Name. 
    #imageId: # string. Azure Resource Id.
# Build machine image v1
# Build a machine image using Packer, which may be used for Azure Virtual machine scale set deployment.
- task: PackerBuild@1
  inputs:
    templateType: 'builtin' # 'builtin' | 'custom'. Required. Packer template. Default: builtin.
    #customTemplateLocation: # string. Required when templateType = custom. Packer template location. 
    #customTemplateParameters: '{}' # string. Optional. Use when templateType = custom. Template parameters. Default: {}.
  # Azure Details
    ConnectedServiceName: # string. Required when templateType = builtin. Azure subscription. 
    #isManagedImage: true # boolean. Optional. Use when templateType = builtin. Managed VM disk image. Default: true.
    #managedImageName: # string. Required when isManagedImage = true && templateType = builtin. Managed VM Disk Image Name. 
    location: # string. Required when templateType = builtin. Storage location. 
    storageAccountName: # string. Required when templateType = builtin. Storage account. 
    azureResourceGroup: # string. Required when templateType = builtin. Resource group. 
  # Deployment Inputs
    baseImageSource: 'default' # 'default' | 'customVhd'. Required when templateType = builtin. Base image source. Default: default.
    #baseImage: 'MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows' # 'MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows' | 'MicrosoftWindowsServer:WindowsServer:2016-Datacenter:windows' | 'MicrosoftWindowsServer:WindowsServer:2012-Datacenter:windows' | 'MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:windows' | 'Canonical:UbuntuServer:14.04.4-LTS:linux' | 'Canonical:UbuntuServer:16.04-LTS:linux' | 'RedHat:RHEL:7.2:linux' | 'RedHat:RHEL:6.8:linux' | 'OpenLogic:CentOS:7.2:linux' | 'OpenLogic:CentOS:6.8:linux' | 'credativ:Debian:8:linux' | 'credativ:Debian:7:linux' | 'SUSE:openSUSE-Leap:42.2:linux' | 'SUSE:SLES:12-SP2:linux' | 'SUSE:SLES:11-SP4:linux'. Required when baseImageSource = default && templateType = builtin. Base image. Default: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows.
    #customImageUrl: # string. Required when baseImageSource = customVhd && templateType = builtin. Base image URL. 
    #customImageOSType: 'windows' # 'windows' | 'linux'. Required when baseImageSource = customVhd && templateType = builtin. Base image OS. Default: windows.
    packagePath: # string. Required when templateType = builtin. Deployment Package. 
    deployScriptPath: # string. Required when templateType = builtin. Deployment script. 
    #deployScriptArguments: # string. Optional. Use when templateType = builtin. Deployment script arguments. 
  # Advanced
    #additionalBuilderParameters: '{"vm_size":"Standard_D3_v2"}' # string. Optional. Use when templateType = builtin. Additional Builder parameters. Default: {"vm_size":"Standard_D3_v2"}.
    #skipTempFileCleanupDuringVMDeprovision: true # boolean. Optional. Use when templateType = builtin. Skip temporary file cleanup during deprovision. Default: true.
  # Output
    #imageUri: # string. Image URL or Name. 
    #imageId: # string. Azure Resource Id.

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

templateType - Шаблон Packer
string. Обязательный. Допустимые значения: builtin (автоматически создается), custom (пользователь указан). Значение по умолчанию: builtin.

Указывает, создает ли задача автоматически шаблон Упаковщика или использует предоставленный вами пользовательский шаблон.


customTemplateLocation - Расположение шаблона Packer
string. Требуется, если templateType = custom.

Указывает путь к пользовательскому шаблону, предоставленному пользователем.


customTemplateParameters - Параметры шаблона
string. Необязательный элемент. Используйте при templateType = custom. Значение по умолчанию: {}.

Указывает параметры, которые будут переданы упаковщику для создания пользовательского шаблона. Он должен сопоставляться с разделом в пользовательском variables шаблоне. Например, если шаблон содержит переменную с именем drop-location, добавьте сюда параметр с именем drop-location и значением, которое вы хотите использовать. Вы также можете связать значение с переменной выпуска. Чтобы просмотреть или изменить дополнительные параметры в сетке, щелкните рядом с текстовым полем.


ConnectedServiceName - Подписка Azure
string. Требуется, если templateType = builtin.

Указывает подписку azure Resource Manager для создания и хранения образа компьютера.


isManagedImage - Образ управляемого диска виртуальной машины
boolean. Необязательный элемент. Используйте при templateType = builtin. Значение по умолчанию: true.

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


managedImageName - Имя образа диска управляемой виртуальной машины
string. Требуется, если isManagedImage = true && templateType = builtin.

Указывает имя образа управляемого диска для автоматически создаваемых шаблонов.


location - Расположение хранилища
string. Требуется, если templateType = builtin.

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


storageAccountName - Учетная запись хранения
string. Требуется, если templateType = builtin.

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


azureResourceGroup - Группа ресурсов
string. Требуется, если templateType = builtin.

Указывает группу ресурсов Azure, содержащую выбранную учетную запись хранения.


baseImageSource - Базовый источник образа
string. Требуется, если templateType = builtin. Допустимые значения: default (коллекция), customVhd (пользовательское). Значение по умолчанию: default.

Указывает источник базового образа. Вы можете выбрать один из проверенных образов ОС или указать URL-адрес пользовательского образа VHD.

Примечание

Если вы выбрали параметр для создания управляемого образа, проверив Managed VM disk image параметр , выберите только Gallery этот параметр. Custom Source не поддерживается для создания управляемого образа.


baseImage - Базовый образ
string. Требуется, если baseImageSource = default && templateType = builtin. Допустимые значения: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows (Windows 2012-R2-Datacenter), MicrosoftWindowsServer:WindowsServer:2016-Datacenter:windows (Windows 2016-Datacenter), MicrosoftWindowsServer:WindowsServer:2012-Datacenter:windows (Windows 2012-Datacenter), MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:windows (Windows 2008-R2-SP1), Canonical:UbuntuServer:14.04.4-LTS:linux (Ubuntu 14.04.4-LTS), Canonical:UbuntuServer:16.04-LTS:linux (Ubuntu 16.04-LTS), (Ubuntu 18.04-LTS). Canonical:UbuntuServer:18.04-LTS:linux 04-LTS), RedHat:RHEL:7.2:linux (RHEL 7.2), RedHat:RHEL:6.8:linux (RHEL 6.8), OpenLogic:CentOS:7.2:linux (CentOS 7.2), OpenLogic:CentOS:6.8:linux (CentOS 6.8), credativ:Debian:8:linux (Debian 8), credativ:Debian:7:linux (Debian 7), SUSE:openSUSE-Leap:42.2:linux (openSUSE-Leap 42.2), SUSE:SLES:12-SP2:linux (SLES 12-SP2), SUSE:SLES:11-SP4:linux (SLES 11-SP4). Значение по умолчанию: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows.

Выбирает из курированного списка образов ОС. Он будет использоваться для установки предварительных требований и приложений перед записью образа компьютера.


baseImage - Базовый образ
string. Требуется, если baseImageSource = default && templateType = builtin. Допустимые значения: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows (Windows 2012-R2-Datacenter), MicrosoftWindowsServer:WindowsServer:2016-Datacenter:windows (Windows 2016-Datacenter), MicrosoftWindowsServer:WindowsServer:2012-Datacenter:windows (Windows 2012-Datacenter), MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:windows (Windows 2008-R2-SP1), Canonical:UbuntuServer:14.04.4-LTS:linux (Ubuntu 14.04.4-LTS), Canonical:UbuntuServer:16.04-LTS:linux (Ubuntu 16.04-LTS), RedHat:RHEL:7.2:linux (RHEL 7.2), RedHat:RHEL:6.8:linux (RHEL 6.8), OpenLogic:CentOS:7.2:linux (CentOS 7.2), OpenLogic:CentOS:6.8:linux (CentOS 6.8), credativ:Debian:8:linux (Debian 8), credativ:Debian:7:linux (Debian 7), SUSE:openSUSE-Leap:42.2:linux (openSUSE-Leap 42.2), SUSE:SLES:12-SP2:linux (SLES 12-SP2), SUSE:SLES:11-SP4:linux (SLES 11-SP4). Значение по умолчанию: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows.

Выбирает из курированного списка образов ОС. Он будет использоваться для установки предварительных требований и приложений перед записью образа компьютера.


customImageUrl - URL-адрес базового образа
string. Требуется, если baseImageSource = customVhd && templateType = builtin.

Указывает URL-адрес базового образа. Он будет использоваться для установки предварительных требований и приложений перед записью образа компьютера.


customImageOSType - ОС базового образа
string. Требуется, если baseImageSource = customVhd && templateType = builtin. Допустимые значения: windows, linux. Значение по умолчанию: windows.


packagePath - Пакет развертывания
string. Требуется, если templateType = builtin.

Указывает путь к каталогу пакета развертывания относительно $(System.DefaultWorkingDirectory). Поддерживает шаблон мини-сопоставления. Пример пути: FrontendWebApp/**/GalleryApp

Примечание

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


deployScriptPath - Скрипт развертывания
string. Требуется, если templateType = builtin.

Указывает относительный путь к скрипту PowerShell (для Windows) или скрипту оболочки (для Linux), который развертывает пакет. Этот скрипт должен содержаться в выбранном выше пути пакета. Поддерживает шаблон мини-сопоставления. Пример пути: deploy/**/scripts/windows/deploy.ps1.


deployScriptArguments - Аргументы скрипта развертывания
string. Необязательный элемент. Используйте при templateType = builtin.

Указывает аргументы, передаваемые в скрипт развертывания.


additionalBuilderParameters - Дополнительные параметры построителя
string. Необязательный элемент. Используйте при templateType = builtin. Значение по умолчанию: {"vm_size":"Standard_D3_v2"}.

В режиме автоматического создания шаблона Packer задача создает шаблон Packer с помощью конструктора Azure. Этот построитель используется для создания образа компьютера. Вы можете добавить ключи в построитель Azure, чтобы настроить созданный шаблон Packer. Например: настройка ssh_tty=true , если вы используете базовый образ CentOS и вам требуется tty для запуска sudo. Чтобы просмотреть или изменить дополнительные параметры в сетке , щелкните рядом с текстовым полем.


skipTempFileCleanupDuringVMDeprovision - Пропуск временной очистки файлов во время отзыва
boolean. Необязательный элемент. Используйте при templateType = builtin. Значение по умолчанию: true.

Во время отзыва виртуальной машины пропускает очистку временных файлов, отправленных на виртуальную машину. Узнайте больше о конструкторах образов виртуальных машин Azure в Packer.


packerVersion - Версия упаковщика
string. Необязательный элемент. Используйте при templateType = custom.

Указывает версию Packer для установки. Это будет работать только с пользовательскими шаблонами.


imageUri - URL-адрес или имя изображения
string.

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


imageId - Идентификатор ресурса Azure
string.

Указывает имя выходной переменной, в которой будет храниться идентификатор ресурса Azure для созданного образа. Это только для управляемых образов.


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

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

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

Нет.

Remarks

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

Примечание

Если вы хотите включить подробные журналы, перейдите в раздел Конвейеры>Изменение>переменных, а затем добавьте новую переменную PACKER_LOG и задайте для нее значение 1.

Требования

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