지금부터 Packer를 쓰는 너. - 1.7 시리즈.
개시하다
패커 1.7 라인을 사용했기 때문에 사용감 등을 알려드릴게요.
투고할 때의 최신 버전은 1.7.3이다
Packer와 처음 만났던 분들은 기고된지금부터 Packer를 사용하시는 분들께... 기사가 있으니 참고하시기 바랍니다.
따라서 이번에는 Packer씨와 부분을 생략할 것이니 양해해 주십시오
창고도 공개했지만 참고로 남겨두셨으면 좋겠습니다.
여러 버전 동시 사용
나는 약간의 세부 사항을 생략하지만, 지난번과 같이 미리 컴파일된 2진법을 사용할 것이다
(OS당 하도급 포함)
패키지 관리 명령을 사용하여 최신 버전 설치
나는 쓰면서 옛 판본은 미리 컴파일한 이진법을 사용하는 것이 비교적 좋다고 생각한다
설치하다.
참조마지막으로 기재된 설치 방법
어쨌든 나는 이미 여러 버전의 사용을 준비했다
1.6.0
$ which packer-160
/usr/local/bin/packer-160
$ packer-160 -v
1.6.0
1.7.3$ which packer-173
/usr/local/bin/packer-173
$ packer-173 -v
1.7.3
수정점
이전에는 템플릿을 Json으로 만들어야 했다
1.7 계열 추천 HCL2
이 형식은 Terraform이 채택한 것이다
명령하다
간단하게 말하면 다음과 같은 명령이 추가되었다
hcl2_upgrade
Json 형식→HCL2 형식 변환, 파일 생성
그러나 모든 것을 바꿀 수 있는 것은 아니다. 이전 버전의 Packer에서 사용할 수 있는 기술만 있으면 된다.
sample.json을 HCL2로 변환
$ packer hcl2_upgrade -output-file=sample.pkr.hcl sample.json
Successfully created sample.pkr.hcl. Exit 0
-output-file
: 모든 경로로 출력 가능위 옵션을 사용하지 않으면
.pkr.hcl
파일 끝에샘플은 아래의 내용을 참조하시오
fmt
형식 검사와 유사
-check
: 적절한 형식일 경우 종료 상태는 0
이고 이외에는 0입니다.-diff
: 서식 변경의 차분 표시(변경도 가능)-write=false
: 원본 파일을 수정하지 마십시오.예를 들어 방금 HCL2로 변환된 샘플 템플릿을 살짝 편집해서 실행해 보았습니다
diff 옵션
$ packer fmt -diff sample/sample.pkr.hcl
sample/sample.pkr.hcl
--- old/sample/sample.pkr.hcl
+++ new/sample/sample.pkr.hcl
@@ -1,7 +1,7 @@
data "amazon-ami" "autogenerated_1" {
filters = {
- name = "amzn2-ami-hvm-*-x86_64-gp2"
+ name = "amzn2-ami-hvm-*-x86_64-gp2"
}
most_recent = true
owners = ["amazon"]
diff 지령을 하는 것 같아요.그런데 이렇게 하면 변경된 부분이 원상태로 돌아옵니다.옵션
-write=false
을 사용하여 차분만 출력할 수 있습니다.-check
기본값은 -write=false
로 변경되지 않습니다.check 옵션
$ packer fmt -check sample/sample.pkr.hcl
sample/sample.pkr.hcl
변경 사항이 있으면 위에서 설명한 출력 파일 이름을init
지정한 플러그인을 설치하고 업데이트할 수 있습니다
플러그인 설치
$ packer init plugins.pkr.hcl
Installed plugin github.com/wata727/amazon-ami-management v1.1.2 in "/Users/kaqua/.packer.d/plugins/github.com/wata727/amazon-ami-management/packer-plugin-amazon-ami-management_v1.1.2_x5.0_darwin_amd64"
플러그인 설명이 있는 파일만 지정하고 실행하기 때문에 간단합니다로컬 어디에 두었는지도 출력했어요.
파일 컨텐트는 다음 컨텐트를 참조하십시오.
기계 영상 을 제작 하다
드디어 메인 메뉴입니다.
이번에는 AWS의 기계 이미지(AMI)를 제작한다.
이미지를 만드는 서비스 계정과 권한이 필요합니다. 주의하십시오
클라우드 서비스의 경우 가동 실례는 비용을 지불해야 한다
사용할 파일
사용할 파일
$ tree
.
├── build.pkr.hcl # 以前の builders 部分用ファイル
├── plugins.pkr.hcl # init用ファイル
├── sources.pkr.hcl # 以前の provisioners 部分用ファイル
├── variables.pkr.hcl # 変数用ファイル
└── {environment}.pkrvars.hcl # 変数用(オーバーライド)ファイル
파일 내용에 관해서는 다음과 같은 내용을 참조하시오Terrafrom을 사용한 적은 없지만 조금만 조사해 보면 파일을 분리해서 관리할 수 있습니다
위의 파일 그룹은 샘플 템플릿을 HCL2로 변환할 때 생성된 파일 분할이며 약간 수정된 파일입니다.
고친 곳
변환된 샘플 템플릿을 보면
"autogenerated_1"
라고 적힌 부분이 있고 Packer 측에서 자동으로 부여한 값입니다.sample.pkr.hcl의 일부분
data "amazon-ami" "autogenerated_1" {
filters = {
name = "amzn2-ami-hvm-*-x86_64-gp2"
}
autogenerated_다른 파일에서 1의 값으로 참조할 수 있는 것 같아서 알기 쉬운 값으로 변경해 보았습니다(값은 무엇이든지 가능합니다)sources.pkr.hcl의 일부분
source "amazon-ebs" "src" {
ami_name = "${var.name}-${var.env}"
instance_type = "${var.instance_type}"
build.pkr.hcl의 일부분build {
sources = [
"source.amazon-ebs.src"
]
위에서 말한 바와 같이 구축할 때 지정한 소스를 사용할 수 있다변수 파일 처리
구축 시 옵션
-var
과 -var-file
를 지정할 수 있지만 이전 버전과 달리 환경에 따라 변수 파일을 준비하는 것이 좋습니다.사용할 파일에도 기재되어 있지만 다음과 같은 구분이 필요합니다.
1.7 계열의 기본 변수 파일 + 환경 파일
덮어쓰기는 덮어쓰기를 의미하기 때문에 원자재가 없는 곳은 덮어쓸 수 없습니다
관리 파일 추가
기준용 변수 파일을 참조하십시오. 그러나 구체적인 값을 입력할 필요는 없습니다. 선언
type
만 하고 각 환경의 변수 파일에 구체적인 값을 넣으면 됩니다.구축
변수 파일이 지정되지 않은 경우
$ packer build .
변수 파일 지정하기$ packer build -var-file=オーバーライド用ファイル .
파일을 분할할 현재 디렉토리를 지정합니다.(파일 하나에 대한 작업 확인)
또 다른 옵션 등에 대해서는 직접 조사하시기 바랍니다.
끝말
어때?
지금까지 Packer를 사용한 사람들에게는 Json에 익숙해져서 조금 귀찮은 점이 있을 수 있습니다.Terraform을 사용하는 사람에게는 간단하다고 느낄 수 있습니다.
저는 개인적으로 구판부터 1.7과 버전을 시도해 봤는데 몇 시간 걸려서 기계 이미지를 만들 수 있어서 학습 원가가 높지 않다고 생각합니다.
이 문서 보세요. Packer 1.7 라인을 사용할 수 있었으면 좋겠어요.
일찍 일어날 때는 왠지 공부에 대한 열정이 높다.그럼 안녕히 주무세요.(개잠)
Reference
이 문제에 관하여(지금부터 Packer를 쓰는 너. - 1.7 시리즈.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kaq/articles/3228ed7a0d3899텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)