====== Packer ====== * [[https://www.packer.io/|Packer]] * 표준화된 Machine Image 생성기 * Machine image formats change for each platform. Some examples include AMIs for EC2, VMDK/VMX files for VMware, OVF exports for VirtualBox, etc. ===== Install ===== * [[https://www.packer.io/downloads.html|Packer downloads]] 에서 적합한 버전을 받아서 ''~/.local/bin'' 등에 복사하고 ''PATH'' 걸어주고 사용한다. ===== Template Engine ===== * 기본 템플릿 https://www.packer.io/docs/templates/engine.html * 시간 포매팅 2006, 01, 02는 실제 년월일로 자동 대체된다. JSON에서 따옴표는 ''\"''로 지정한다. {{isotime "2006-01-02"}} ===== Templates ===== * [[https://github.com/kaorimatz/packer-templates|Packer Templates for vagrant]] * [[https://github.com/geerlingguy/packer-ubuntu-1604|geerlingguy/packer-ubuntu-1604: Packer Example - Ubuntu 16.04 minimal Vagrant Box using Ansible provisioner]] ===== AWS AMI Builder ===== * ''vpc_ic'', ''subnet_id'' 등을 명시하지 않으면 ''Error launching source instance: VPCIdNotSpecified: No default VPC for this user'' 같은 오류가 발생할 수 있다. * public IP가 있어야 외부 패키지 설치가 가능한 경우등에는(defualt VPC가 아니라면) 다음 필요 associate_public_ip_address": true ===== Provisioners ===== ==== file ==== * 파일 복사시에 디렉토리로 복사할 경우 destination의 끝에 ''/''가 있어야 한다. { "type": "file", "source": "./welcom.txt", "destination": "/home/ec2-user/" }, ===== 참조 ===== * [[https://www.slideshare.net/awskr/packer-ansible-ami-autoscaling-group-88560117|Packer + Ansible을 이용한 AMI 생성 및 AutoScaling Group 이미지 교체 이야기]] * [[https://www.youtube.com/watch?v=9Zd1j0z4zS0|Packer + Ansible을 이용한 AMI 생성 및 AutoScaling Group 이미지 교체 이야기 - YouTube]] * [[https://www.44bits.io/ko/post/building-docker-image-and-using-packer|패커(Packer)를 사용한 도커 이미지와 AMI 만들기(feat. Ansible) | 44BITS]] * [[http://bcho.tistory.com/1225|VM 이미지 생성을 위한 오픈소스 Packer]]