Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
패커로 AMI 빌드하고, 베이그런트로 이미지 검증하기
Search
nacyot
July 28, 2018
Programming
370
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
패커로 AMI 빌드하고, 베이그런트로 이미지 검증하기
nacyot
July 28, 2018
More Decks by nacyot
See All by nacyot
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
1.3k
AI 코딩 에이전트 더 똑똑하게 쓰기
nacyot
0
960
기술 블로그 생존 전략 - 구글 시대의 글쓰기
nacyot
7
2.9k
연말정산이란 무엇인가
nacyot
1
12k
테라폼 도입기: 클라우드 인프라스트럭처 코드로 재정의하기
nacyot
5
1.4k
Write the Docs Seoul Meetup #1: Explorable Explanations
nacyot
1
1k
Write the Docs Seoul Meetup #1: Welcome
nacyot
0
180
주피터: 파이썬 노트북, 파이썬을 넘어
nacyot
5
2.8k
ConfConf 2016 - Act Festival by 김대권
nacyot
0
680
Other Decks in Programming
See All in Programming
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
RTSPクライアントを自作してみた話
simotin13
0
600
dRuby over BLE
makicamel
2
340
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
190
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
7
4.3k
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
Lessons from Spec-Driven Development
simas
PRO
0
190
net-httpのHTTP/2対応について
naruse
0
480
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
750
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
AIで効率化できた業務・日常
ochtum
0
130
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to build a perfect <img>
jonoalderson
1
5.6k
Done Done
chrislema
186
16k
WCS-LA-2024
lcolladotor
0
630
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
Bash Introduction
62gerente
615
220k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Faster Mobile Websites
deanohume
310
31k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
ಁழPacker۽ AMI ࠽٘ೞҊ Hashicorp Korea User Group 1st Meetup @nacyo_t
߬Ӓ۠Vagrant۽ Ѩૐೞӝ
Ӕ݃
44bits.io
• Part 1. ಁழ • hashicorp/packer • Part 2. ߬Ӓ۠
• hashicorp/vagrant য়ט ઁ Hashicorp
• Part 1. ಁழ • ಁழ ࣗѐ ߂ AMI ࠽٘ೞӝ
• Part 2. ߬Ӓ۠ • ࢿ য়ט ઁ Hashicorp
ಁழ: ߧਊ ழझథ ࠽٘ بҳ Part 1
• ఋѶ গܻா࣌ زೞח Ӑഋ ࢚క • ۽࠺ դ ࢚కܳ
۽ ழझథ ࠽٘?
“ ۽࠺ۆ ࢲߡ ١ ਃࣗܳ ࢎਊೡ ࣻ ח ࢚క ۽
݅٘ח ରܳ ݈ೠ. ৈӝীח ೧ ਃࣗী ਗਸ ೡೞҊ, ੋझఢझചೞҊ, ҳࢿਸ ೠ റ, хदա DNS ৬ э ੋۄ ࢲ࠺झী ١۾ೞח ରо ನೣػ. ۽࠺ ରо ৮ܐغݶ ೧ ਃࣗח ࢎਊೡ ળ࠺о ػ Ѫ. ٘۽ ੋۄ ҙܻೞӝ 6, Kief Morris
• և • ೞ٘ਝয৬ ֎ਕ ਗਸ ನೣ • hashicorp/terraform
• ગ • ઁ ਤীࢲ গܻா࣌ਸ प೯ оמೠ ࢚క • hashicorp/packer ۽࠺
• և • ೞ٘ਝয৬ ֎ਕ ਗਸ ನೣ • hashicorp/terraform
• ગ • ઁ ਤীࢲ গܻா࣌ਸ प೯ оמೠ ࢚క • hashicorp/packer ۽࠺
• গܻா࣌ زೞח ੋझఢझܳ Ӓ۽ • ࢲߡҙܻо ࢲߡܳ
ࣻ • ߸҃ ࢎ೦ ਵݶ ࢚కܳ द Ӓ۽ • ࢲߡ ࢚కܳ ഝਊ оמೠ ഄनੋ ߑߨ! ӝઓ ࠽٘
ӝઓ ࠽٘ AMI A AMI A' AMI A'' AMI
A''' EC2 A EC2 A' EC2 A'' EC2 A'''
• গܻா࣌ زೞח ੋझఢझܳ Ӓ۽ • ࢲߡҙܻо ࢲߡܳ
ࣻ • ߸҃ ࢎ೦ ਵݶ ࢚కܳ द Ӓ۽ • ࢲߡ ࢚కܳ ഝਊ оמೠ ഄनੋ ߑߨ! • ҙܻо য۵Ҋ അ ࠛоמ New! ӝઓ ࠽٘
• ࠽٘ җਸ ഛ അ ࠛо • زചо য۵Ҋ
࠽٘/ઁܳ ࣚࣻ ೧ঠೣ • جইоҊ ח ࢲߡܳ ୭ೠ ߑೞѱ غח ࠗਊ • ઁ ਃೡ ݽܰ۽ ب ઁ ࠛо • ח ҅ࣘ ऺӝ݅ ೣ ӝઓ ࠽٘ ޙઁ
brew install packer
• ಁழ ࠽٘ח ࠽؊৬ ۽࠺ց ઑ • ࠽؊: ౠ ۖಬ
ܳ ݅٘ח ۞Ӓੋ • ۽࠺ց: ۽࠺ਸ ࣻ೯ೞח ۞Ӓੋ ಁழ ҳࢿ ਃࣗ ࠽؊ / ۽࠺ց
Builder Image Provisioner Image
Builder: docker Docker Image Provisioner shell Docker Image
Builder: virtualbox-ovf VirtualBox VM Provisioner chef-solo OVF
Builder: amazon-ebs AMI Provisioner ansible-local AMI
{ "builders": [ ... ], "provisioners": [ ... ] }
ಁழ ࢸ ੌ
"builders": [ { "type": "amazon-ebs", "region": "ap-northeast-2", "availability_zone": "ap-northeast-2c", "source_ami":
"ami-9d6fd8f3", "instance_type": "t2.small", "ssh_username": "ubuntu", "ami_name": "image {{isotime \"2006-01-02 1504\" | clean_ami_name}}", "security_group_ids": [ "sg-b8ad09d1", "sg-5594bc3f" ], "subnet_id": "subnet-abcacae1", "ssh_interface": "public_ip", "associate_public_ip_address": true } ], ࠽؊: amazon-ebs
"provisioners": [ { "type": "ansible", "playbook_file": "./provisioner/server.yml", "host_alias": "server", "extra_arguments":
[ "--extra-vars", "ansible_python_interpreter=/usr/bin/python3" ] } ] ۽࠺ց: ansible
• ಁழ ۽ં • ۽࠺ց৬ ೣԋ ٘۽ ҙܻ • ߸҃
ਸ ٸ݃ ݒߣ ܳ ࢜۽ ࠽٘ • ߸҃ ࢎ೦ ݽف غ۽ അ оמ೧ • ٘ച۽ ҙܻغ۽ زചо оמ೧ ಁழ ࠽٘ ౠ
Packer Build Builder: amazon-ebs AMI Provisioner ansible-local AMI
Packer Build Repo 8b819 AMI A Repo 2ce54 AMI B
Repo 099c3 AMI C Repo 934b6 AMI D commit
AMI A AMI A' AMI A'' AMI A''' EC2 A
EC2 A' EC2 A'' EC2 A''' Packer Build Repo 8b819 AMI A Repo 2ce54 AMI B Repo 099c3 AMI C Repo 934b6 AMI D commit ੋझఢझ ӝ߈ ࠽٘ ಁழܳ ࢎਊೠ ࠽٘
1. ੋझఢझ ߂ द ܻࣗझ ࢤࢿ 2. ੋझఢझী ܻ ળ࠺ೠ
۽࠺ց۽ ۽࠺ 3. ۽࠺ աݶ ࢚కܳ ۽ 4. ੋझఢझ ߂ द ܻࣗझ ઁѢ ಁழ۽ ࠽٘ җ
• nacyot/packer_and_vagrant ؘݽ 01 ಁழ۽ AMI ࠽٘
• ݽٚ җ ױ ೠ ߑী ܖয • ࠽٘
दр ӡ • ਗਵ۽ ࠽٘ җী ѐੑೡ ࣻ হ • ۽࠺ীࢲ ޙઁо ࢤӝݶ ࠗఠ द ಁழ ױ
߬Ӓ۠۽ ࢿ Part 2
brew cask install vagrant
ठۄ٘ ࢚
• ߬Ӓ۠ ߅झח ۽߄؊৬ ۽࠺ց ઑ • ۽߄؊: ౠ ۖಬ
VMਸ ݅٘ח ۞Ӓੋ • ۽࠺ց: ۽࠺ਸ ࣻ೯ೞח ۞Ӓੋ ߬Ӓ۠ ҳࢿਃࣗ ۽߄؊ / ۽࠺ց
• ۽߄؊ vs. ࠽؊ • ಁழ ࠽؊ח ߬Ӓ۠ ۽߄؊ী
• ۽߄؊: Ѿҗޛ۽ VMਸ ݅ٝ • ࠽٘: Ѿҗޛ۽ ܳ ݅ٝ • ۽࠺ց = ۽࠺ց ߬Ӓ۠৬ ಁழ ࠺Ү (1)
• ಁழ ࠽٘ • ܻࣗझ ࢤࢿ, ࠽٘, ܻࣗझ
ઁѢо ೠߣী • ߬Ӓ۠ VM ળ࠺ җ • upਸ ೞݶ VMਸ ࢤࢿೞҊ ۽࠺ ೯ؽ • ۽࠺ցо ߸҃غݶ ୶о۽ provision оמ • VM ਗೞח दী destroy оמ ߬Ӓ۠৬ ಁழ ࠺Ү (2)
Packer Build Repo 8b819 AMI A Repo 2ce54 AMI B
Repo 099c3 AMI C Repo 934b6 AMI D commit
ग܉٬Ѣ ಁழ ࠽٘ ࠽٘ܳ प೯ೞӝ өח ࠽٘ ࢿҕ ৈࠗܳ ঌ
ࣻ হ ۽࠺ց ٘ সؘ
Packer Build Repo 8b819 AMI A Repo 2ce54 Error! Repo
099c3 Error! Repo 934b6 AMI D commit
Repo a3e89 Packer build Repo 32ab21 AMI VM vagrant up
VM' VM'' vagrant provision vagrant provision error! update provisioner code
о࢚ ݠन? о࢚ ݠनҗ ಁழ ࠽٘ ജ҃ ܰ
• VM न AWS ੋझఢझо प೯ • ಁழо पઁ۽ ࠽٘ೞח
ജ҃ਸ Ӓ۽ ࢎਊ оמ • AMI ܳ ࢎਊ оמ • ই݃ઓ ֿܻझ ജ҃ب ࢎਊ оמ • ݄݃ ழ 2016֙... vagrant-aws ߬Ӓ۠ AWS ۽߄؊
• nacyot/packer_and_vagrant ؘݽ 02 vagrant-aws ۽࠺
• destroyܳ ೞ ঋਵݶ ੋझఢझо ҅ࣘ թই • زਵ۽ ઙܐೞب۾
ҳࢿೞח ѱ ߬झ • ޑೞѱ ಁழ ࠽٘ ജ҃җ ܳ ࣻ • оמೞݶ ݽٚ ২࣌ਸ ಁழ ജ҃җ زੌೞѱ • ۽࠺ਸ ৈ۞ߣ ೞࠁݶ ࢚కо ׳ۄ • ಁழ ࠽٘ ীח destroy റ द up೧ࢲ Ѩૐ ߬Ӓ۠ ೣ
• ಁழܳ ࢎਊ೧ ࠽٘ܳ زച • ߬Ӓ۠ܳ ࢎਊ೧
࠽٘ җਸ ܻ Ѩૐ • Ӕ݃ীࢲ पઁ۽ ࢎਊೞҊ ח ߑߨ • Үള: әೡࣻ۾ جইо Ѿۿ
None
Thank you @nacyo_t