CH03_07 데이터 소스 활용 (Data-source)
이번 시간에는 패커에서 데이터 소스를 활용하는 법에 대해 알아보자
https://www.packer.io/plugins/datasources/amazon/ami
Packer by HashiCorp
The Amazon AMI data source provides information from an AMI that will be fetched based on the filter options provided in the configuration.
www.packer.io
데이터 소스를 활용하게 되면 패커의 외부로부터 특정 provider가 제공해주는 데이터를 가져올 수 있다.
아마존 ami를 filter를 통해 가져왔다.
패커를 사용할 때도 앱을 프로비저닝하는 과정에 기밀 데이터를 필요로 할 수 있는데 그럴때 기밀 데이터를 패커 템플릿에 하드코딩을 하면 보안위험이 생긴다.
따라서 Parameter Store와 Secrets Manager는 aws상에서 서비스를 운영할 때 Configuration 데이터나 기밀 데이터를 관리할 때 많이 사용된다.
https://github.com/tedilabs/fastcampus-devops/tree/main/2-packer/05-data
GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료
🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.
github.com
먼저 source 파일을 보면
data 블록에서 아마존 ami 데이터 소스를 활용하고 있고 filiters로 추출한 값을 source 블록에서 참조하여 사용하고 있다.
전 실습코드처럼 source 블록에 데이터 소스를 선언하지 않고 따로 블록을 선언해서 코드를 깔끔하게 만들었다.
main 파일을 보면 amazon secretsmanager를 활용하고 있다.
그리고 build 블록 내에 shell provisioner 블록을 통해 가져온 데이터의 secret 값 출력한다.
이제 패커 빌드를 해보면 secret manager에 넣은 secret 값 456이 출력되고 우분투 ami를 생성하는걸 볼 수 있다.