본문 바로가기
AWS/Part 4. Ch03 패커를 이용한 머신 이미지 관리

CH03_06 프로비저너 (Provisioner)

by Engineer-Lee 2022. 6. 7.
반응형

이번 시간에는 프로비저너를 패커 코드에서 직접 사용해보자

프로비저닝은 머신 운영체제에 패키지를 설치, 설정, 앱을 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를 확인해보면 인스턴스도 잘 만들어진 걸 확인할 수 있다.

 

반응형