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가 플러그인을 강제로 재설치하도록 하는 옵션이에요.