このタスクを使用して、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.
#canDeleteTempFolder: false # boolean. Optional. Use when templateType = builtin. Delete temp folder. Default: false.
# 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' | '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.
Inputs
templateType
-
パッカーテンプレート
string。 Required. 使用できる値: builtin (自動生成)、custom (ユーザー指定)。 既定値: builtin.
タスクが Packer テンプレートを自動生成するか、ユーザーが提供するカスタム テンプレートを使用するかを指定します。
Note
カスタムテンプレートを使用している場合は、JSON 形式で記述されていることを確認してください。 HCL2 テンプレートは現在サポートされていません。
customTemplateLocation
-
Packer テンプレートの場所の
string。
templateType = customする場合に必要です。
ユーザー指定のカスタム テンプレートへのパスを指定します。
customTemplateParameters
-
テンプレートのパラメーター
string。 Optional.
templateType = customするときに使用します。 既定値: {}.
カスタム テンプレートを構築するために Packer に渡されるパラメーターを指定します。 これは、カスタム テンプレートの variables セクションにマップされます。 たとえば、テンプレートに drop-___locationという名前の変数がある場合は、drop-___location 名と使用する値を含むパラメーターをここに追加します。 値をリリース変数にリンクすることもできます。 グリッド内の追加のパラメーターを表示または編集するには、テキスト ボックスの横にある … をクリックします。
Azure サブスクリプション を
string。
templateType = builtinする場合に必要です。
マシン イメージをベイクして格納するための Azure Resource Manager サブスクリプションを指定します。
マネージド VM ディスク イメージの isManagedImage -
boolean。 Optional.
templateType = builtinするときに使用します。 既定値: true.
生成されたイメージがマネージド イメージである必要があるかどうかを確認します。
マネージド VM ディスク イメージ名の managedImageName -
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 を指定できます。
Note
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-Datacenter)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-LT) 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 を指定します。 これは、マシン イメージをキャプチャする前に前提条件とアプリケーションをインストールするために使用されます。
基本イメージ OSの customImageOSType -
string。
baseImageSource = customVhd && templateType = builtinする場合に必要です。 使用できる値: windows、linux。 既定値: windows.
packagePath
-
展開パッケージ
string。
templateType = builtinする場合に必要です。
$(System.DefaultWorkingDirectory)を基準とした配置パッケージ ディレクトリのパスを指定します。 ミニマッチ パターンをサポートします。 例のパス: FrontendWebApp/**/GalleryApp
Note
このパッケージは、Packer によって作成される一時的な仮想マシンにコピーされます。 パッケージに多数のファイルが含まれている場合や、ファイルのサイズが非常に大きい場合、アップロードに時間がかかる場合があります (場合によっては数時間実行されます)。 アップロード時間を最適化するために、パッケージのサイズを有意に削減できるかどうかを確認してください。 もう 1 つの方法は、中間 Azure ストレージ アカウントを使用することです。 このタスクを実行する前に、パッケージをストレージ アカウントにアップロードします。 このタスクでは、必要なパッケージをストレージ アカウントからダウンロードするスクリプトを含むパッケージを使用します。
deployScriptPath
-
デプロイ スクリプト
string。
templateType = builtinする場合に必要です。
パッケージをデプロイする PowerShell スクリプト (Windows の場合) またはシェル スクリプト (Linux の場合) への相対パスを指定します。 このスクリプトは、上記で選択したパッケージ パスに含まれている必要があります。 ミニマッチ パターンをサポートします。 パスの例: deploy/**/scripts/windows/deploy.ps1.
deployScriptArguments
-
Deployment スクリプトの引数
string。 Optional.
templateType = builtinするときに使用します。
デプロイ スクリプトに渡す引数を指定します。
canDeleteTempFolder
-
一時フォルダを削除する
boolean。 Optional.
templateType = builtinするときに使用します。 既定値: false.
このオプションを使用すると、一時フォルダを削除できます。
追加のビルダー パラメーターを additionalBuilderParameters - する
string。 Optional.
templateType = builtinするときに使用します。 既定値: {"vm_size":"Standard_D3_v2"}.
自動生成された Packer テンプレート モードでは、タスクは Azure ビルダーを使用して Packer テンプレートを作成します。 このビルダーは、マシン イメージを生成するために使用されます。 Azure ビルダーにキーを追加して、生成された Packer テンプレートをカスタマイズできます。 例: CentOS 基本イメージを使用していて、ssh_tty=trueを実行するために tty が必要な場合は、sudo を設定します。
グリッド内の追加のパラメーターを表示または編集するには、テキスト ボックスの横にある … をクリックします。
skipTempFileCleanupDuringVMDeprovision
-
プロビジョニング解除中の一時ファイルのクリーンアップをスキップ
boolean。 Optional.
templateType = builtinするときに使用します。 既定値: true.
VM のプロビジョニング解除中に、VM にアップロードされた一時ファイルのクリーンアップをスキップします。 Packer Azure Virtual Machine Image Builders の詳細について説明します。
packerVersion
-
パッカーバージョン
string。 Optional.
templateType = customするときに使用します。
インストールする Packer のバージョンを指定します。 これはカスタム テンプレートでのみ機能します。
imageUri
-
イメージの URL または名前の
string。
非マネージド VM イメージの生成されたマシン イメージ VHD URL またはマネージド VM イメージのイメージ名を格納する出力変数の名前を指定します。
Azure リソース IDの imageId -
string。
新しく作成されたイメージの Azure リソース ID を格納する出力変数の名前を指定します。 これはマネージド イメージ専用です。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
None.
Remarks
このタスクを使用して、Packer を使用してマシン イメージをビルドします。 このイメージは、Azure 仮想マシン スケール セットのデプロイに使用できます。
Note
詳細なログを有効にする場合は、 Pipelines>Edit>Variables に移動し、新しい変数 PACKER_LOG を追加し、その値を 1 に設定します。
Requirements
| Requirement | Description |
|---|---|
| パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
| で実行されます | エージェント、DeploymentGroup |
| Demands | None |
| Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
| コマンドの制限 | Any |
| 設定可能な変数 | Any |
| エージェントのバージョン | 2.0.0 以上 |
| タスク カテゴリ | Deploy |