PackerBuild@1 - 生成计算机映像 v1 任务

使用此任务使用 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.

输入

templateType - Packer 模板
string。 必填。 允许的值:builtin(自动生成)、custom(用户提供)。 默认值:builtin

指定任务是自动生成 Packer 模板还是使用你提供的自定义模板。


customTemplateLocation - Packer 模板位置
stringtemplateType = custom时是必需的。

指定自定义用户提供的模板的路径。


customTemplateParameters - 模板参数
string。 可选。 当 templateType = custom时使用。 默认值:{}

指定将传递给 Packer 以生成自定义模板的参数。 这应映射到自定义模板中的 variables 部分。 例如,如果模板具有名为 drop-location的变量,则在此处添加一个名称 drop-location 和要使用的值的参数。 也可以将该值链接到发布变量。 若要查看/编辑网格中的其他参数,请单击文本框旁边的


ConnectedServiceName - Azure 订阅
stringtemplateType = builtin时是必需的。

指定用于烘焙和存储计算机映像的 Azure 资源管理器订阅。


isManagedImage - 托管 VM 磁盘映像
boolean。 可选。 当 templateType = builtin时使用。 默认值:true

检查生成的映像是否应为托管映像。


managedImageName - 托管 VM 磁盘映像名称
stringisManagedImage = true && templateType = builtin时是必需的。

指定自动生成模板的托管磁盘映像的名称。


location - 存储位置
stringtemplateType = builtin时是必需的。

指定用于存储生成的计算机映像的位置。 此位置还用于创建临时 VM,以便生成映像。


storageAccountName - 存储帐户
stringtemplateType = builtin时是必需的。

指定用于存储生成的计算机映像的存储帐户。 此存储帐户必须预先存在于所选位置。


azureResourceGroup - 资源组
stringtemplateType = builtin时是必需的。

指定包含所选存储帐户的 Azure 资源组。


baseImageSource - 基础映像源
stringtemplateType = builtin时是必需的。 允许的值:default(库)、customVhd(自定义)。 默认值:default

指定基础映像的源。 可以从精选的 OS 映像库中进行选择,也可以提供自定义 VHD 映像的 URL。

注释

如果通过选中“Managed VM disk image”选项选择了用于创建托管映像的选项,则应仅在此处选择 Gallery 选项。 不支持创建托管映像 Custom 源。


baseImage - 基础映像
stringbaseImageSource = 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),Canonical:UbuntuServer:18.04-LTS:linux (Ubuntu 18.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

从精选的 OS 映像列表中选择。 这将用于在捕获计算机映像之前安装先决条件(s)和应用程序(s)。


customImageUrl - 基础映像 URL
stringbaseImageSource = customVhd && templateType = builtin时是必需的。

指定基本映像的 URL。 这将用于在捕获计算机映像之前安装先决条件(s)和应用程序(s)。


customImageOSType - 基础映像 OS
stringbaseImageSource = customVhd && templateType = builtin时是必需的。 允许的值:windowslinux。 默认值:windows


packagePath - 部署包
stringtemplateType = builtin时是必需的。

指定相对于 $(System.DefaultWorkingDirectory)的部署包目录的路径。 支持微型模式。 示例路径:FrontendWebApp/**/GalleryApp

注释

此包将复制到 Packer 创建的临时虚拟机。 如果包包含大量文件和/或文件的大小非常大,上传可能需要很长时间(可能运行几个小时)。 若要优化上传时间,请查看包的大小是否可以有意义地减少。 另一种替代方法是使用中间 Azure 存储帐户。 在运行此任务之前,将包上传到存储帐户。 对于此任务,请使用包含脚本的包,该脚本将从存储帐户下载所需的包。


deployScriptPath - 部署脚本
stringtemplateType = builtin时是必需的。

指定 powershell 脚本(适用于 Windows)或部署包的 shell 脚本(适用于 Linux)的相对路径。 此脚本应包含在上面选择的包路径中。 支持微型模式。 示例路径:deploy/**/scripts/windows/deploy.ps1


deployScriptArguments - 部署脚本参数
string。 可选。 当 templateType = builtin时使用。

指定要传递给部署脚本的参数。


additionalBuilderParameters - 其他生成器参数
string。 可选。 当 templateType = builtin时使用。 默认值:{"vm_size":"Standard_D3_v2"}

在自动生成的 Packer 模板模式下,任务使用 Azure 生成器创建 Packer 模板。 此生成器用于生成计算机映像。 可以将密钥添加到 Azure 生成器以自定义生成的 Packer 模板。 例如:如果使用的是 CentOS 基础映像,并且需要有一个 tty 才能运行 sudo,则设置 ssh_tty=true。 若要查看/编辑网格中的其他参数,请单击文本框旁边的


skipTempFileCleanupDuringVMDeprovision - 取消预配 期间跳过临时文件清理
boolean。 可选。 当 templateType = builtin时使用。 默认值:true

在取消预配 VM 期间,跳过上传到 VM 的临时文件的清理。 详细了解在 Packer Azure 虚拟机映像生成器。


packerVersion - Packer 版本
string。 可选。 当 templateType = custom时使用。

指定要安装的 Packer 版本。 这仅适用于自定义模板。


imageUri - 图像 URL 或名称
string

指定输出变量的名称,该变量将为未管理的 VM 映像存储生成的计算机映像 VHD URL 或托管 VM 映像的映像名称。


imageId - Azure 资源 ID
string

指定输出变量的名称,该变量将存储新创建的映像的 Azure 资源 ID。 这仅适用于托管映像。


任务控制选项

除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性

输出变量

没有。

注解

使用此任务使用 Packer 生成计算机映像。 此映像可用于 Azure 虚拟机规模集部署。

注释

若要启用详细日志,请导航到 管道>编辑>变量,然后添加新变量 PACKER_LOG 并将其值设置为 1。

要求

要求 说明
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 2.0.0 或更高版本
任务类别 部署