CH03_08 후 처리기 (Post-processor)
Post-processor는 패커가 빌드를 끝낸 후에 후처리를 하기 위해 필요하다.
build 블록 내에서 post-processor라는 블록을 지정해서 어떻게 후 처리를 할지 정의할 수 있다.
https://www.packer.io/docs/post-processors
Packer by HashiCorp
Post-processors run after the image is built by the builder and provisioned by the provisioner(s).
www.packer.io
보편적으로 많이 사용되는 post-processor들이 있다.
첫 번째로 checksum이다. 보통은 패커가 빌드를 거쳐서 이미지를 만들고 나면 artifact(산출물)이 나온다.
artifact를 가지고 post-processor가 또 다른 artifact를 만든다.
checksum 같은 경우에는 입력산출물을 가지고 checksum 파일을 만든다.
checksum은 해시 함수로 무결성을 검증한다.
두 번째로 compress이다. 이는 빌드 결과물을 .tar.gz로 압축을 한다. 또한 다른 압축 파일로도 만들 수 있다.
세 번째로 manifest이다. 이는 패커의 빌드 과정을 거치고 나면 해당 빌드 과정에 대한 meta 데이터를 남긴다.
마지막으로 local shell이다. 이는 수동으로 커스텀하게 후 처리를 할 수 있다.
이제 실습코드를 보자
https://github.com/tedilabs/fastcampus-devops/tree/main/2-packer/06-post-processor
GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료
🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.
github.com
main 파일부터 보면 총 3가지 post-processor가 있다.
첫 번째는 manifest이고 두 번째와 세 번째는 post-processors로 여러 post-processor 블록들을 선언했다.
두 번째와 세 번째post-processors 안의 첫 번째 post-processor는 shell-local로 빌드 산출물을 직접 입력으로 받는다.
두 번째 post-processors의 두 번째 post-processor는 후 처리 산출물을 세 번째 post-processor의 입력으로 보낸다.