PackerBuild@1 - 建置機器映射 v1 工作

使用此工作來使用 Packer 建置機器映射,這可用於 Azure 虛擬機器擴展集部署。

Syntax

# 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 Resource Manager訂用帳戶。


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 不支援建立受控映射的來源。


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) 、 (CentOS 7.2) 、 OpenLogic:CentOS:7.2:linuxOpenLogic:CentOS:6.8:linux (CentOS 6.8) 、 (Debian 8) 、 credativ:Debian:8:linuxcredativ: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 時為必要。 允許值:windowslinux。 預設值:windows


packagePath - 部署套件
string. 當 templateType = builtin 時為必要。

指定相對於 的部署套件目錄 $(System.DefaultWorkingDirectory) 路徑。 支援迷你配對模式。 範例路徑: FrontendWebApp/**/GalleryApp

注意

此套件將會複製到 Packer 所建立的暫存虛擬機器。 如果套件包含大量檔案和/或檔案大小非常大,上傳可能需要很長的時間 (可能需要數小時) 。 若要優化上傳時間,請參閱套件大小是否可以有意義地減少。 另一個替代方法是使用中繼 Azure 儲存體帳戶。 在執行這項工作之前,將套件上傳至儲存體帳戶。 針對這項工作,請使用包含腳本的套件,以從儲存體帳戶下載所需的套件。


deployScriptPath - 部署腳本
string. 當 templateType = builtin 時為必要。

指定適用于 Windows) 的 powershell 腳本 (的相對路徑,或部署套件的 Linux) 殼層腳本 (。 此腳本應該包含在上面選取的套件路徑中。 支援迷你配對模式。 範例路徑: deploy/**/scripts/windows/deploy.ps1


deployScriptArguments - 部署腳本引數
string. 選擇性。 使用 時機 templateType = builtin

指定要傳遞至部署腳本的引數。


additionalBuilderParameters - 其他產生器參數
string. 選擇性。 使用 時 templateType = builtin 。 預設值:{"vm_size":"Standard_D3_v2"}

在自動產生的 Packer 範本模式中,工作會使用 Azure 建立器建立 Packer 範本。 此產生器可用來產生電腦映射。 您可以將金鑰新增至 Azure 產生器,以自訂產生的 Packer 範本。 例如: ssh_tty=true 如果您使用的是 CentOS 基底映射,而且需要有 tty 才能執行 sudo 。 若要在方格中檢視/編輯其他參數,請按一下 文字方塊旁的 。


skipTempFileCleanupDuringVMDeprovision - 在取消布建期間略過暫存檔清除
boolean. 選擇性。 使用 時 templateType = builtin 。 預設值:true

在取消布建 VM 期間,會略過上傳至 VM 的暫存檔清除。 深入瞭解 Packer 中的 Azure 虛擬機器映射產生器


packerVersion - Packer 版本
string. 選擇性。 使用 時 templateType = custom

指定要安裝的 Packer 版本。 這只適用于自訂範本。


imageUri - 影像 URL 或名稱
string.

指定輸出變數的名稱,以儲存未受控 VM 映射的產生的機器映射 VHD URL 或受控 VM 映射的映射名稱。


imageId - Azure 資源識別碼
string.

指定輸出變數的名稱,以儲存新建立映射的 Azure 資源識別碼。 這僅適用于受控映射。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制選項和一般工作屬性

輸出變數

無。

備註

使用此工作來使用 Packer 建置電腦映射。 此映射可用於 Azure 虛擬機器擴展集部署。

注意

如果您想要啟用詳細的記錄,請流覽至[管線>編輯>變數],然後新增變數PACKER_LOG並將其值設定為 1。

規格需求

需求 描述
管線類型 YAML、傳統組建、傳統版本
在 上執行 Agent、DeploymentGroup
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任何
可設定變數 任何
代理程式版本 2.0.0 或更新版本
工作類別 部署