packer console 명령어 레퍼런스
packer console 명령어 레퍼런스
packer console 명령어를 쓰면 Packer 변수 보간(interpolation)을 직접 실험해 볼 수 있어요. console을 호출할 때 사용한 Packer 설정 안의 변수에 접근할 수도 있고, -var 또는 -var-file 커맨드라인 옵션으로 변수를 직접 제공할 수도 있답니다.
출처: Packer 공식 문서
본문
보간(interpolation)을 입력하고 <enter>를 누르면 결과를 볼 수 있어요. console을 종료하려면 exit를 입력하고 <enter>를 누르거나, Control-C를 누르면 돼요.
$ packer console my_template.json
console 명령어가 받아들이는 전체 옵션 목록은 packer console -h로 확인할 수 있는 help 출력에서 볼 수 있어요.
:::note
console은 버전 1.4.2 이상에서 사용할 수 있어요.
:::
:::note
HCL2에서는 console이 버전 1.6.0 이상에서 사용 가능해요. 설정 파일 없이 시험해 보려면 packer console --config-type=hcl2를 쓰세요. Go 템플릿(즉 {{..}} 호출)은 HCL2 모드에서 동작하지 않아요.
:::
Options (옵션)
-var— Packer 템플릿에 변수를 설정해요. 이 옵션은 여러 번 사용할 수 있어요. 빌드의 버전 번호를 설정할 때 유용하죠. 예:-var "myvar=asdf"-var-file— 파일로부터 템플릿 변수를 설정해요. 예:-var-file myvars.json
REPL commands (REPL 명령어)
help— Packer console에 대한 도움말 텍스트를 표시해요.exit— console을 종료해요.variables—-var옵션,-var-file옵션, 그리고 템플릿으로부터 console로 읽어들인 모든 변수 목록을 출력해요.
Usage Examples - repl session ( JSON )
Packer 템플릿 example_template.json으로 console을 실행한다고 해 볼게요.
$ packer console example_template.json
그러면 템플릿 함수를 입력하고 어떻게 평가되는지 확인할 수 있는 프롬프트로 들어가요. 예를 들어 myvar 변수가 example_template의 variables 섹션에 정의되어 있다면:
"variables":{
"myvar": "asdfasdf"
},
...
Packer console에 {{user myvar}}를 입력하면 myvar의 값이 보여요.
> {{user `myvar`}}
asdfasdf
여기서 더 복잡한 보간도 시험해 볼 수 있어요.
> {{user `myvar`}}-{{timestamp}}
asdfasdf-1559854396
console 사용이 끝나면 exit나 CTRL-C를 입력하면 돼요.
> exit
$
변수나 변수 파일을 제공하고 싶다면 이렇게 하면 돼요.
$ packer console -var "myvar=fdsafdsa" -var-file myvars.json example_template.json
특정 변수나 변수 파일 없이 특정 템플릿 엔진을 실험해 보고 싶다면, 템플릿 파일 없이 그냥 packer console을 호출하면 돼요.
Usage Examples - piped commands ( JSON )
REPL을 실행하지 않고 특정 보간 하나만 확인하고 싶다면, 문자열을 echo로 console 명령어에 파이프하면 돼요.
$ echo {{timestamp}} | packer console
1559855090
Usage Examples - repl session ( HCL2 )
:::note
HCL2에서는 console이 버전 1.6.0 이상에서 사용 가능해요. 설정 파일 없이 시험해 보려면 packer console --config-type=hcl2를 쓰세요. Go 템플릿(즉 {{..}} 호출)은 HCL2 모드에서 동작하지 않아요.
:::
설정 파일 없이도 packer console을 사용해 표현식 문법과 내장 함수를 실험해 볼 수 있어요.
Starting (시작하기)
HCL2 설정 파일이 들어 있는 폴더에서 세션을 시작하려면:
packer console folder/
folder/가 폴더이기 때문에 Packer는 HCL2 모드로 시작해요. HCL2 형식의 설정 파일을 직접 넘겨도 되고:
packer console file.pkr.hcl
파일이 .pkr.hcl 접미사로 끝나기 때문에 Packer는 HCL2 모드로 시작해요. 설정 파일 없이 그냥 놀아보고 싶다면 --config-type=hcl2 옵션을 설정하면 Packer가 HCL2 모드로 시작해요:
packer console --config-type=hcl2
Scripting (스크립트 사용)
packer console 명령어는 새 줄로 구분된 명령어를 파이프해서 비대화형 스크립트에서도 쓸 수 있어요. 중간에 오류가 나지 않는 한, 마지막 명령어의 출력만 출력돼요.
예를 들어:
$ echo "1 + 5" | packer console
6