packer validate 명령어 레퍼런스
packer validate 명령어 레퍼런스
packer validate Packer 명령어는 템플릿의 문법과 구성을 검증하는 데 사용돼요. 이 명령어는 성공하면 0의 종료 상태를, 실패하면 0이 아닌 종료 상태를 반환해요. 또한 템플릿이 검증되지 않으면 모든 오류 메시지가 출력돼요.
출처: Packer 공식 문서
본문
사용 예:
$ packer validate my-template.pkr.hcl
Template validation failed. Errors are shown below.
Errors validating build 'vmware'. 1 error(s) occurred:
* Either a path or inline script must be specified.
옵션 (Options)
-
-syntax-only- 템플릿의 문법만 점검해요. 구성은 검증되지 않아요. -
-evaluate-datasources- 템플릿을 검증할 때 모든 데이터 소스를 평가해요. 이 옵션은 HCL2 템플릿에서만 유효해요. JSON 템플릿은 데이터 소스가 없으므로 이 옵션은 무시돼요.
경고: 데이터 소스는 데이터를 가져오기 위해 외부 서비스에 의존할 수 있어요. 접촉하는 서비스가 작업당 과금을 한다면 검증 시 일부 비용이 발생할 수 있어요.
-
-except=foo,bar,baz- 쉼표로 구분된 이름을 가진 것들을 제외한 모든 빌드를 검증해요. 레거시 JSON 템플릿에서는 구성 안에 특정name속성이 지정되지 않는 한 빌드 이름은 builder의 타입(예:docker,amazon-ebs,virtualbox-iso)을 기본값으로 해요. HCL2 템플릿에서 "name"은 source 블록의 "name" 라벨이에요(빌드 안의 source 정의가 "name" 구성 옵션을 추가하지 않는 한). -
-no-warn-undeclared-var- 변수 정의 파일에 선언되지 않은 변수에 대한 변수 할당이 있을 때 경고를 잠재워요. 주어진 HCL2 템플릿에 비해 사용하지 않는 변수가 많이 담긴 var-file을 쓸 때 이런 일이 생길 수 있어요. HCL2 템플릿에서 var-file에 변수 값을 정의하는 것만으로는 Packer가 동작하기에 충분하지 않아요. 템플릿 파일pkr.hcl안에 그 변수에 대한variable블록 정의도 있어야 하거든요. 기본적으로packer validate는 var-file에 선언되지 않은 변수가 하나 이상 있어도 경고해요. -
-only=foo,bar,baz- 주어진 쉼표로 구분된 이름을 가진 빌드만 검증해요. 레거시 JSON 템플릿에서는 구성 안에 특정name속성이 지정되지 않는 한 빌드 이름은 builder의 타입(예:docker,amazon-ebs,virtualbox-iso)을 기본값으로 해요. HCL2 템플릿에서 "name"은 source 블록의 "name" 라벨이에요(빌드 안의 source 정의가 "name" 구성 옵션을 추가하지 않는 한). -
-machine-readable모든 출력을 stdout에서 기계가 읽을 수 있게 설정해요. 활성화된 경우 로깅은 계속 stderr에 나타나요. -
-var- Packer 템플릿에 변수를 설정해요. 이 옵션은 여러 번 사용할 수 있어요. 빌드의 버전 번호를 설정할 때 유용해요. -
-var-file- 파일에서 템플릿 변수를 설정해요.