이번 시간에는 프로비저너를 패커 코드에서 직접 사용해보자
프로비저닝은 머신 운영체제에 패키지를 설치, 설정, 앱을 deploy하는 과정이다.
https://www.packer.io/docs/provisioners
Packer by HashiCorp
Provisioners use builtin and third-party software to install and configure the machine image after booting.
www.packer.io
https://github.com/tedilabs/fastcampus-devops/tree/main/2-packer/04-provisioner
GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료
🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.
github.com
source 파일을 보면 우분투 소스에 대한 블록이 정의되어 있다.
main 파일을 보면 빌드 프로세스의 이름은 fastcampus-packer이고
source는 우분투 소스를 이용해서 amazon ebs 빌더를 사용하고 있다.
provisioner는 총 4개가 정의되어 있는데 프로비저너는 순서대로 실행되기 때문에 순서를 잘 맞춰야 한다.
첫 번째 프로비저너는 shell 프로비저너이다. 우분투 이미지 상에서 apt-get update를 통해서 패키지 목록을 갱신하고 whoami를 통해서 사용자 아이디를 출력한다.
두 번째 프로비저너는 file 프로비저너이다. files 디렉토리 안에 있는 index.html 파일을 tmp 디렉토리로 업로드 시켜준다.
세 번째 프로비저너는 shell 프로비저너이다. nginx를 apt-get을 통해 설치하고 tmp 디렉토리 안에 index.html 파일을 적절한 위치로 이동시켜준다.
마지막 프로비저너는 breakpoint 프로비저너이다. 이 프로비저너가 실행될 차례가 되면 잠시 패커의 빌드 프로세스가 멈춘다. 사용자가 ok를 하면 다시 프로세스를 진행시킨다.
이제 패커를 빌드해보자
그럼 breakpoint에서 잠시 멈춘 것을 확인할 수 있다.
엔터를 입력해서 AMI를 만드는 과정을 계속 진행할 수 있다.
aws ec2를 확인해보면 인스턴스도 잘 만들어진 걸 확인할 수 있다.
'AWS > Part 4. Ch03 패커를 이용한 머신 이미지 관리' 카테고리의 다른 글
CH03_08 후 처리기 (Post-processor) (0) | 2022.06.07 |
---|---|
CH03_07 데이터 소스 활용 (Data-source) (0) | 2022.06.07 |
CH03_05 선택적 빌드 (only & except) (0) | 2022.06.07 |
CH03_04 빌더 (Builder) (0) | 2022.06.07 |
CH03_03 패커 HCL 기초 문법 (0) | 2022.06.07 |