PackerBuild@1 - 컴퓨터 이미지 v1 작업 빌드

이 작업을 사용하여 Azure 가상 머신 확장 집합 배포에 사용할 수 있는 Packer를 사용하여 컴퓨터 이미지를 빌드합니다.

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입니다. 허용되는 값: (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), (Ubuntu 16.04-LTS), Canonical:UbuntuServer:16.04-LTS:linuxCanonical:UbuntuServer:18.04-LTS:linux (Ubuntuuntu 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), (Debian 7), credativ:Debian:7:linuxSUSE:openSUSE-Leap:42.2:linux (openSUSE-Leap 42.2), (SLES 12-SP2), SUSE:SLES:11-SP4:linuxSUSE:SLES:12-SP2:linux (SLES 11-SP4). MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows 기본값은 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 Storage 계정을 사용하는 것입니다. 이 작업을 실행하기 전에 스토리지 계정에 패키지를 업로드합니다. 이 작업의 경우 스토리지 계정에서 필요한 패키지를 다운로드하는 스크립트가 포함된 패키지를 사용합니다.


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 템플릿 모드에서 작업은 Azure Builder를 사용하여 Packer 템플릿을 만듭니다. 이 작성기는 컴퓨터 이미지를 생성하는 데 사용됩니다. Azure Builder에 키를 추가하여 생성된 Packer 템플릿을 사용자 지정할 수 있습니다. 예를 들어 CentOS 기본 이미지를 사용 중이고 를 실행sudo하기 위해 tty가 필요한 경우 를 설정합니다ssh_tty=true. 표에서 추가 매개 변수를 보거나 편집하려면 텍스트 상자 옆을 클릭합니다 .


skipTempFileCleanupDuringVMDeprovision - 프로비전 해제 중 임시 파일 정리 건너뛰기
boolean. 선택 사항입니다. 를 사용하는 경우 templateType = builtin를 사용합니다. 기본값은 true입니다.

VM의 프로비전 해제 중에 VM에 업로드된 임시 파일 정리를 건너뜁니다. Packer의 Azure Virtual Machine Image Builders에 대해 자세히 알아봅니다.


packerVersion - Packer 버전
string. 선택 사항입니다. 를 사용하는 경우 templateType = custom를 사용합니다.

설치할 Packer 버전을 지정합니다. 사용자 지정 템플릿에서만 작동합니다.


imageUri - 이미지 URL 또는 이름
string.

관리되지 않는 VM 이미지의 생성된 컴퓨터 이미지 VHD URL 또는 관리되는 VM 이미지의 이미지 이름을 저장할 출력 변수의 이름을 지정합니다.


imageId - Azure 리소스 ID
string.

새로 만든 이미지의 Azure 리소스 ID를 저장할 출력 변수의 이름을 지정합니다. 관리되는 이미지에만 해당됩니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

Packer를 사용하여 컴퓨터 이미지를 빌드하려면 이 작업을 사용합니다. 이 이미지는 Azure 가상 머신 확장 집합 배포에 사용할 수 있습니다.

참고

자세한 로그를 사용하도록 설정하려면 파이프라인>변수 편집>으로 이동한 다음 PACKER_LOG 새 변수 추가하고 해당 값을 1로 설정합니다.

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 2.0.0 이상
작업 범주 배포