packer init 명령 참조

packer init 명령 참조

참고: 2025년 8월 1일부터 HashiCorp가 유지 관리하는 많은 공식 Packer 플러그인의 소스가 GitHub releases에서 공식 HashiCorp 릴리스 사이트인 releases.hashicorp.com으로 이동하고 있어요. 자세한 내용은 Install HashiCorp-maintained plugins을 참고하세요.

packer init 명령은 HCL 템플릿 설정에 따라 Packer를 초기화해요. 플러그인 설치에 대한 자세한 내용은 Installing Plugins를 참고하세요.

출처: Packer 공식 문서

본문

설명 (Description)

packer init 명령은 HCL로 작성된 Packer 템플릿의 required_plugins 블록에 따라 플러그인을 다운로드하고 설치하는 데 사용해요. required_plugins 블록 구성에 대한 자세한 내용은 템플릿 설정 참조의 Specifying plugin requirements를 참고하세요.

레거시 JSON 템플릿은 지원되지 않아요. JSON 템플릿 파일은 hcl2_upgrade 명령을 사용해 HCL로 변환할 수 있어요.

새 템플릿이나 기존 템플릿으로 작업할 때는 packer init 명령을 첫 단계로 실행하는 걸 권장해요. 이 명령은 여러 번 실행할 수 있어요. 이후 실행에서 오류가 나올 수도 있지만, 명령이 이미 설치된 플러그인을 절대 삭제하지는 않아요.

서드파티 플러그인 검증

설치하려는 서드파티 플러그인은 반드시 검토하고 검증하길 권장해요.

설치 위치

기본적으로 Packer는 Unix에서는 $HOME/.config/packer/plugins, Windows에서는 %APPDATA%\packer.d\plugins의 plugins 디렉터리에 플러그인을 설치해요. 하지만 PACKER_PLUGIN_PATH 환경 변수로 다른 디렉터리를 지정할 수도 있어요. 자세한 내용은 Packer 설정 참조(Packer configuration reference)를 참고하세요.

사용법 (Usage)

packer init 명령을 실행하려면 다음 문법을 사용해요.

$ packer init <path-to-template>

이 명령은 pkr.hcl로 끝나는 모든 템플릿 파일을 처리해요. 단일 템플릿 파일에 대해 명령을 실행할 때 템플릿은 모든 의존성을 포함해야 해요. 부분(partial)들의 번들로 빌드하려는 템플릿이면 명령이 실패해요.

변수 정의에는 .pkrvars.hcl 또는 .auto.pkrvars.hcl 확장자를 사용하는 것이 좋아요. 디렉터리에서 packer init을 실행할 때 이 변수 정의 파일들은 자동으로 처리 대상에서 제외돼요.

예시 (Examples)

다음 예시는 현재 디렉터리의 템플릿에 지정된 플러그인을 설치해요.

$ packer init .

다음 예시는 현재 디렉터리의 template.pkr.hcl이라는 템플릿에 지정된 플러그인을 설치해요.

$ packer init template.pkr.hcl

다음 예시는 builds/foo/ 디렉터리에 지정된 플러그인을 설치해요.

$ packer init builds/foo/.

다음 예시는 builds/foo/template.pkr.hcl 경로의 템플릿에 지정된 플러그인을 설치해요.

$ packer init builds/foo/template.pkr.hcl

인자 (Arguments)

다음 인자를 전달할 수 있어요.

  • Packer 템플릿: HCL2 템플릿 또는 유효한 HCL2 템플릿 최소 하나와 관련 의존성을 포함하는 디렉터리의 경로를 지정해요.

옵션 (Options)

  • -upgrade: 이미 설치된 플러그인을 사용 가능한 최신 버전으로 업그레이드할 때 사용하는 옵션이에요. Packer는 템플릿에 지정된 버전 제약(version constraints)에 따라 최신 버전으로 업그레이드해요.
  • -force: Packer가 플러그인을 강제로 재설치하도록 하는 옵션이에요.