hcp-packer-image

hcp-packer-image (hcp-packer-image data source)

Official

이 데이터 소스는 사용 중단(deprecated)됐어요. 대신 hcp-packer-artifact 데이터 소스를 사용하세요.

출처: Packer 공식 문서

본문

hcp-packer-image 데이터 소스는 HCP Packer 레지스트리에서 이미지에 대한 정보를 가져와요. 이 정보는 다양한 Packer 빌더에 소스 이미지를 제공하는 데 사용할 수 있어요.

HCP Packer를 시작하려면 HCP Packer 문서를 참고하거나 Get Started with HCP Packer 튜토리얼을 시도해보세요.

참고: 비활성화되거나 삭제된 레지스트리에서 메타데이터를 참조하려 하면 오류가 나요. 관리자가 레지스트리를 수동으로 비활성화하거나 삭제할 수 있고, HCP Packer는 결제 문제가 있는 레지스트리를 자동으로 비활성화해요. 질문이 있으면 HashiCorp Support에 문의하세요.

Revoked Iterations (철회된 반복)

반복(iteration)이 철회되면 hcp-packer-iteration 데이터 소스가 실패하고 Packer는 빌드를 진행하지 않아요. 철회된 이미지에서 새 이미지를 빌드하는 것은 적합하지 않아요. 철회 예정인 반복은 철회 날짜까지 여전히 유효한 것으로 간주돼요.

Basic Example (기본 예시)

아래는 완전히 동작하는 예시예요. 이미지에 대한 정보를 저장하고, 이를 변수로 파싱·접근할 수 있어요.

data "hcp-packer-image" "example" {
  bucket_name = "hardened-ubuntu-16-04"
  iteration_id = "${data.hcp-packer-iteration.hardened-source.id}"
  cloud_provider = "aws"
  region = "us-east-1"
}

Full Example (전체 예시)

이 데이터 소스는 hcp-packer-iteration 데이터 소스와 함께 사용해서 채널(channel)을 통해 이미지 ID를 가져올 수 있어요. iteration 데이터 소스에 채널 이름을 제공하고, 이미지 데이터 소스에서 iteration 소스를 사용하고, 소스 블록 안에서 이미지 데이터 소스를 사용하면 돼요.

# Retrieves information about the HCP Packer "iteration"; an "iteration" can be
# thought of as all the metadata created by a single call of `packer build`.
data "hcp-packer-iteration" "hardened-source" {
  bucket_name = "hardened-ubuntu-16-04"
  channel = "packer-test"
}

# Retrieves information about the HCP Packer "image"; an image can be thought
# of as all the metadata (including the artifact names) created by a single
# "source" builder; this can include multiple images so we provide a cloud
# region to disambiguate.
data "hcp-packer-image" "foo" {
  bucket_name = "hardened-ubuntu-16-04"
  iteration_id = data.hcp-packer-iteration.hardened-source.id
  cloud_provider = "aws"
  region = "us-east-1"
}

# This source uses the output from a previous Packer build. By using the
# HCP Packer registry in this way, you can easily create build pipelines where
# a single base image can be customized in multiple secondary layers.
source "amazon-ebs" "packer-secondary" {
  source_ami       = data.hcp-packer-image.foo.id
  # ...
}

Configuration Reference (설정 참조)

구성 옵션은 필수(required)와 선택(optional) 두 범주로 정리돼요. 각 범주 안에서 사용 가능한 옵션은 알파벳순으로 정렬되어 설명돼요.

Required (필수):

  • bucket_name (string) — 이미지가 있는 버킷의 이름.
  • channel (string) — 이미지를 가져올 때 사용할 채널의 이름. 이것과 iteration_id 중 하나는 반드시 설정해야 해요. iteration_id 와 상호 배타적이에요. 하나의 반복에서 여러 이미지를 사용한다면, 먼저 반복을 소싱하고 이후 사용에 참조할 수 있어요. 채널이 설정된 모든 hcp-packer-image 는 잠재적으로 청구되는 HCP Packer 요청을 생성하지만, 여러 hcp-packer-image 가 공유 hcp-packer-iteration 을 사용하면 청구될 수 있는 요청을 하나만 생성하거든요.
  • iteration_id (string) — 이미지를 가져올 때 사용할 반복(iteration)의 ID. 이것과 channel 중 하나는 반드시 설정해야 해요. channel 과 상호 배타적이에요.
  • cloud_provider (string) — 이미지가 대상인 클라우드 제공자의 이름. 예: "aws" 또는 "gce".
  • region (string) — 이미지가 있는 클라우드 지역의 이름. 예: "us-east-1".

Optional (선택):

참고: 이 데이터 소스는 지정된 옵션으로 필터링된, 지정된 반복과 연결된 이미지 목록에서 첫 번째로 찾은 이미지의 메타데이터만 반환해요. 따라서 같은 지역에 여러 이미지가 있으면 그중 하나만 선택해요. 이 경우 component_type 옵션으로 소스 빌드 이름(예: amazon-ebs.example)으로 이미지를 필터링할 수 있어요.

  • component_type (string) — 이미지를 만드는 데 사용된 특정 Packer 빌더. 예: "amazon-ebs.example".

Output Fields (출력 필드):

  • cloud_provider (string) — 이미지가 존재하는 클라우드 제공자의 이름. 예: "aws", "azure" 또는 "gce".
  • component_type (string) — 이미지를 만드는 데 사용된 특정 Packer 빌더 또는 포스트-프로세서.
  • created_at (string) — 이미지가 생성된 날짜와 시간.
  • build_id (string) — 이미지를 만든 빌드의 ID. ULID로, UUID와 유사한 고유 식별자예요. 빌드가 처음 생성될 때 HCP Packer 레지스트리가 만들고 이 빌드에 고유해요.
  • iteration_id (string) — 반복 ID. ULID로, UUID와 유사한 고유 식별자예요. 반복이 처음 생성될 때 HCP Packer 레지스트리가 만들고 이 반복에 고유해요.
  • channel_id (string) — 이미지 반복을 조회하는 데 사용된 채널의 ID. 채널 대신 iteration_id 를 직접 사용했다면 이 값은 비어 있어요.
  • packer_run_uuid (string) — 이 이미지를 만든 Packer 실행과 연결된 UUID.
  • id (string) — 빌드가 제공한 원격 클라우드 이미지의 ID 또는 URL.
  • region (string) — packer build 가 제공한 클라우드 지역. 예: "ap-east-1". 로컬 관리 클라우드에서는 클러스터, 서버 또는 데이터스토어에 매핑될 수도 있어요.
  • labels (map[string]string) — 이 빌드와 연결된 key:value 메타데이터 라벨.

더 알아보기 (Learn more)