Packer 용어 정리
Packer 용어 정리 (Packer terminology)
이 문서는 이 문서 전반에서 우리가 쓰는, Packer 안에서 특별한 의미를 지닌 용어들을 정리한 거예요. Packer를 써 본 적이 없다면 이 용어들이 당장 와닿지 않을 수 있어요.
출처: Packer 공식 문서
본문
-
아티팩트(Artifacts) 는 단일 빌드의 결과물로, 보통 머신 이미지를 나타내는 ID나 파일들의 집합이에요. 모든 builder는 단일 아티팩트를 만들어요. 예를 들어 Amazon EC2 builder의 경우 아티팩트는 AMI ID들의 집합(지역마다 하나)이에요. VMware builder의 경우 아티팩트는 생성된 가상 머신을 이루는 파일들의 디렉터리예요.
-
빌드(Builds) 는 단일 플랫폼을 위한 아티팩트를 결국 만들어내는 단일 작업이에요. 여러 빌드는 병렬로 실행돼요. 문장에서의 사용 예: "The Packer build produced an AMI to run our web application." 또는 "Packer is running the builds now for VMware, AWS, and VirtualBox."
-
빌더(Builders) 는 단일 플랫폼을 위한 머신 이미지를 만들 수 있는 Packer의 구성 요소예요. Builder는 어떤 구성을 읽어서 그것을 사용해 머신 이미지를 실행하고 생성해요. builder는 실제 결과 아티팩트를 만들기 위해 빌드의 일부로 호출돼요. 예시 builder로는 VirtualBox, VMware, Amazon EC2가 있어요.
-
명령어(Commands) 는 작업을 수행하는
packer프로그램의 하위 명령어예요. 예시 명령어로는packer build로 호출되는 "build"가 있어요. Packer는 자체 명령줄 인터페이스를 정의하기 위해 기본 제공 명령어 세트를 동봉해요. -
데이터 소스(Data sources) 는 Packer 바깥에서 데이터를 가져와 템플릿 안에서 사용할 수 있게 해주는 Packer의 구성 요소예요. 데이터 소스의 예로는 Amazon AMI와 Amazon Secrets Manager가 있어요.
-
포스트 프로세서(Post-processors) 는 builder나 다른 post-processor의 결과를 받아 처리해서 새 아티팩트를 만드는 Packer의 구성 요소예요. post-processor 예로는 아티팩트를 압축하는 compress, 아티팩트를 업로드하는 upload 등이 있어요.
-
프로비저너(Provisioners) 는 실행 중인 머신이 정적 아티팩트로 바뀌기 전에 그 머신 안에 소프트웨어를 설치하고 구성하는 Packer의 구성 요소예요. 아티팩트가 유용한 소프트웨어를 담게 만드는 주요 작업을 수행해요. 예시 provisioner로는 셸 스크립트, Chef, Puppet 등이 있어요.
-
템플릿(Templates) 은 다양한 Packer 구성 요소를 구성해서 하나 이상의 빌드를 정의하는 파일이에요. Packer는 템플릿을 읽고 그 정보를 사용해 여러 머신 이미지를 병렬로 만들어요. 템플릿은 HCL 또는 JSON 파일 형식으로 작성할 수 있어요.