다음을 통해 공유


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

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

구문론

# 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 템플릿 위치
string; templateType = custom때 필요합니다.

사용자 지정 사용자가 제공한 템플릿의 경로를 지정합니다.


customTemplateParameters - 템플릿 매개 변수
string; 선택 사항. templateType = custom때 사용합니다. 기본값은 {}입니다.

사용자 지정 템플릿을 빌드하기 위해 Packer에 전달될 매개 변수를 지정합니다. 사용자 지정 템플릿의 variables 섹션에 매핑되어야 합니다. 예를 들어 템플릿에 drop-location변수가 있는 경우 이름 drop-location 사용하려는 값이 포함된 매개 변수를 여기에 추가합니다. 릴리스 변수에도 값을 연결할 수 있습니다. 표에서 추가 매개 변수를 보거나 편집하려면 텍스트 상자 옆에 있는 클릭합니다.


Azure 구독
string; templateType = builtin때 필요합니다.

머신 이미지를 베이킹하고 저장하기 위한 Azure Resource Manager 구독을 지정합니다.


관리형 VM 디스크 이미지isManagedImage -
boolean; 선택 사항. 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을 제공할 수 있습니다.

비고

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), 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을 지정합니다. 이는 컴퓨터 이미지를 캡처하기 전에 필수 구성 요소 및 애플리케이션을 설치하는 데 사용됩니다.


기본 이미지 OScustomImageOSType -
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 이미지의 이미지 이름을 저장할 출력 변수의 이름을 지정합니다.


Azure 리소스 IDimageId -
string;

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


작업 제어 옵션

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

출력 변수

없음.

비고

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

비고

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

요구 사항

요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 2.0.0 이상
작업 범주 배치하다