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.
# 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
。
指定任务是自动生成 Packer 模板,还是使用你提供的自定义模板。
customTemplateLocation
- Packer 模板位置
string
. 当 templateType = custom
时,需要此选项。
指定用户提供的自定义模板的路径。
customTemplateParameters
- 模板参数
string
. 可选。 在 时 templateType = custom
使用 。 默认值:{}
。
指定将传递给 Packer 以生成自定义模板的参数。 这应映射到自定义模板中的节 variables
。 例如,如果模板有一个名为 的 drop-location
变量,则在此处添加一个参数,其中包含名称和 drop-location
要使用的值。 还可以将该值链接到发布变量。 若要查看/编辑网格中的其他参数,请单击 …
文本框旁边的。
ConnectedServiceName
- Azure 订阅
string
. 当 templateType = builtin
时,需要此选项。
指定用于烘焙和存储计算机映像的 Azure 资源管理器订阅。
isManagedImage
- 托管 VM 磁盘映像
boolean
. 可选。 在 时 templateType = builtin
使用 。 默认值:true
。
检查生成的映像是否应为托管映像。
managedImageName
- 托管 VM 磁盘映像名称
string
. 当 isManagedImage = true && templateType = builtin
时,需要此选项。
指定自动生成模板的托管磁盘映像的名称。
location
- 存储位置
string
. 当 templateType = builtin
时,需要此选项。
指定存储生成的计算机映像的位置。 此位置还用于创建临时 VM 以生成映像。
storageAccountName
- 存储帐户
string
. 当 templateType = builtin
时,需要此选项。
指定用于存储生成的计算机映像的存储帐户。 此存储帐户必须预先存在于所选位置。
azureResourceGroup
- 资源组
string
. 当 templateType = builtin
时,需要此选项。
指定包含所选存储帐户的 Azure 资源组。
baseImageSource
- 基本映像源
string
. 当 templateType = builtin
时,需要此选项。 允许的值: default
(库) , customVhd
(自定义) 。 默认值:default
。
指定基础映像的源。 可以从精选的 OS 映像库中进行选择,也可以提供自定义 VHD 映像的 URL。
注意
如果通过选中 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) 、 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 映像的特选列表中进行选择。 这将用于在捕获计算机映像之前安装必备 () 和应用程序 () 。
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
。
从 OS 映像的特选列表中进行选择。 这将用于在捕获计算机映像之前安装必备 () 和应用程序 () 。
customImageUrl
- 基本映像 URL
string
. 当 baseImageSource = customVhd && templateType = builtin
时,需要此选项。
指定基础映像的 URL。 这将用于在捕获计算机映像之前安装必备 () 和应用程序 () 。
customImageOSType
- 基础映像 OS
string
. 当 baseImageSource = customVhd && templateType = builtin
时,需要此选项。 允许的值:windows
、linux
。 默认值:windows
。
packagePath
- 部署包
string
. 当 templateType = builtin
时,需要此选项。
指定相对于 $(System.DefaultWorkingDirectory)
的部署包目录的路径。 支持微型匹配模式。 示例路径:FrontendWebApp/**/GalleryApp
注意
此包将复制到 Packer 创建的临时虚拟机。 如果包包含大量文件,并且/或文件非常大,则上传可能需要很长时间 () 可能运行几个小时。 若要优化上传时间,请查看是否可以有意义地减小包的大小。 另一种方法是使用中间 Azure 存储帐户。 在运行此任务之前,将包上传到存储帐户。 对于此任务,请使用包含脚本的包,该脚本将从存储帐户下载所需的包。
deployScriptPath
- 部署脚本
string
. 当 templateType = builtin
时,需要此选项。
指定适用于 Windows) 的 powershell 脚本 (的相对路径,或部署包的 Linux) shell 脚本 (的相对路径。 此脚本应包含在上面选择的包路径中。 支持微型匹配模式。 示例路径: 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。