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
Packer で自分だけの Raspberry Pi イメージを 作った話 / #techst...
Search
さたけ
May 14, 2020
Technology
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Packer で自分だけの Raspberry Pi イメージを 作った話 / #techstudygroupjp 2020.5.14
さたけ
May 14, 2020
More Decks by さたけ
See All by さたけ
GitHubとCircleCIで過去問管理 / #aosc 2019-12-21
satackey
0
75
Dockerを使ってみよう / #kosenconf131hokkaido
satackey
0
200
Cloud Foundry を使ってみた / #aosc 2018-02-23
satackey
0
29
Other Decks in Technology
See All in Technology
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
260
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
930
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
510
TypeScript Compiler APIとPHP-Parserを活用し、TypeScriptとPHPで型を共有する
shuta13
0
360
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2k
protovalidate-es を導入してみた
bengo4com
0
130
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
390
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
210
React、まだ楽しくて草
uhyo
7
4.1k
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
170
Cloud Run のアップデート 触ってみる&紹介
gre212
0
320
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.3k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.3k
First, design no harm
axbom
PRO
2
1.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Believing is Seeing
oripsolob
1
140
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
HDC tutorial
michielstock
2
690
How STYLIGHT went responsive
nonsquared
100
6.2k
Docker and Python
trallard
47
3.9k
ラッコキーワード サービス紹介資料
rakko
1
3.6M
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
PackerͰ͚ࣗͩͷ Raspberry PiΠϝʔδΛ ࡞ͬͨ ͚ͨ͞ #techstudygroupjp 2020.5.14
ࣗݾհ • খߴઐ 3 ใܥ ࠤ ߤر • WebϑϩϯτɾόοΫΤϯυ ΠϯϑϥͳͲ͍Ζ͍Ζ…
@satakenkoki ࡳຈ খ
Raspberry Pi • ͍҆: ຊମ5000ԁ͙Β͍ • ిؾ͍҆: 24࣌ؒىಈͯ͠ɺඦԁ /
݄ ࣗαʔόʹ࠷ద!!
Raspberry Pi • SDΧʔυʹOSΛॻ͖ࠐΉ • ΠϯετʔϥΛΘͳͯ͘OK microSDΧʔυ
RasPiͷΠϝʔδΛ࡞Δํ๏ 1 • ҰRaspberry PiΛىಈͯ͠ɺڥߏங • SDΧʔυΛΠϝʔδͱͯ͠PCʹอଘ͢Δ • όοΫΞοϓͱಉ͡!!
RasPiͷΠϝʔδΛ࡞Δํ๏ 2 • Raspberry Pi ͷΤϛϡϨʔλΛPC্Ͱɺ ىಈɺڥߏஙɻ • ΤϛϡϨʔλΛγϟοτμϯ͢Ε Πϝʔδͷ
ΰʔϧσϯΠϝʔδ • ΫϥυΛ͏ͱ͖ʹΑ͘ΘΕΔΓํ • ࣄલʹڥߏஙΛߦͬͨΠϝʔδΛ࡞Δ • ڥߏஙΛऴΘΒͤͨΠϝʔδ͔Β ԾϚγϯΛىಈ͢Δ
ڥߏஙͷޙɺʮӡ༻ʯ͕͋Δ • ී௨ͷαʔόͷӡ༻Ͱ ΞοϓσʔτͳͲͷมߋΛՃ͍͑ͯ͘ • ʮ࠷ॳͷߏங͕ࡁΊऴΘΓʯͰͳ͍
ڥߏஙͷޙɺʮӡ༻ʯ͕͋Δ • ී௨ͷαʔόͷӡ༻Ͱ ΞοϓσʔτͳͲͷมߋΛՃ͍͑ͯ͘ • ʮ࠷ॳͷߏங͕ࡁΊऴΘΓʯͰͳ͍ • هΛ͓͔ͯ͠ͳ͍ͱɺ ࠓͷঢ়ଶ͕Θ͔Βͳ͘ͳͬͯ͠·͏ ࣗͻͱΓ͚ͩͳΒ·ͣϝϞ͢Δ͜ͱͳ͍
ڥߏஙͷޙɺʮӡ༻ʯ͕͋Δ • खݩͷ։ൃڥͰಈ͚͘Ͳɺ αʔόͰͷಈ࡞͕͓͔͍͠ͱ͔…… • ڥΛ࠶ݱ͢Δͱ͖ɺهΛཔΓʹ ਓͷखͰ࡞ۀ͠ͳ͍ͱ͍͚ͳ͍
Immutable Infrastructure • ΰʔϧσϯΠϝʔδͷൃలܗ • ҰΠϝʔδΛ࡞ͬͨΒɺ αʔόʹखΛՃ͑ͳ͍ͱ͍͏ϙϦγʔ • ߋ৽͕ඞཁͳΒҰ͔Β࡞Γ͢
Ұ͔Β࡞Δ ΊΜͲ͍͘͞ͷͰ
Ұ͔Β࡞Δ ΊΜͲ͍͘͞ͷͰ
ࣗಈԽ͠Α͏ Infrastructure as Code ͱݴͬͨΓ͠·͢
ࣗಈԽ͠Α͏ Infrastructure as Code ͱݴͬͨΓ͠·͢
None
Packer • Πϝʔδ࡞ͷࣗಈԽπʔϧ • ެࣜͰɺAWSVirtualBoxͷ Πϝʔδͷ࡞ʹରԠ͍ͯ͠Δ • ͦΕͧΕϓϥάΠϯͱ࣮ͯ͠͞Ε͍ͯΔ • Raspberry
PiʹରԠͨ͠ϓϥάΠϯ͕ɺ GitHub ʹެ։͞Ε͍ͯΔ
solo-io/packer-builder-arm-image • ArmΠϝʔδΛ࡞ΔͨΊͷ PackerϓϥάΠϯ • QEMUΛͬͯArmͷԾڥΛ࡞͍ͬͯΔ
PackerͰΠϝʔδΛ࡞Δʹ? • PackerΛΠϯετʔϧ͢Δ • packer-builder-arm-image ͱ ͦͷґଘύοέʔδΛΠϯετʔϧ (Docker
Vagrant ͰͰ͖Δ) • JSONΛॻ͘ʂ
JSONͷॻ͘ { "builders": [ { "type": "arm-image", "iso_url" : "file:///build/2020-02-13-raspbian-buster-lite.zip",
"iso_checksum_type":"sha256", "iso_checksum": "12ae6e17bf95b6ba83beca61e7394e7411b45eba7e6a520f434b0748ea7370e8", "target_image_size": 4294967296 } ], "provisioners": [ { "type": "shell", "inline": [ "systemctl enable ssh”, "mkdir /home/pi/.ssh && chmod 644 /home/pi/.ssh", "curl -o /home/pi/.ssh/authorized_keys https://github.com/satackey.keys” ] } ] } ԿͷΠϝʔδΛ ࡞Δͷ͔(builder) ԿΛ࣮ߦ͢Δͷ͔ (provisioner)
JSONͷॻ͘ { "builders": [ { "type": "arm-image", "iso_url" : "file:///build/2020-02-13-raspbian-buster-lite.zip",
"iso_checksum_type":"sha256", "iso_checksum": "12ae6e17bf95b6ba83beca61e7394e7411b45eba7e6a520f434b0748ea7370e8", "target_image_size": 4294967296 } ], "provisioners": [ { "type": "shell", "inline": [ "systemctl enable ssh”, "mkdir /home/pi/.ssh && chmod 644 /home/pi/.ssh", "curl -o /home/pi/.ssh/authorized_keys https://github.com/satackey.keys” ] } ] } ϕʔεʹͳΔΠϝʔδͷ ύεΛࢦఆʢURLOKʣ
JSONͷॻ͘ { "builders": [ { "type": "arm-image", "iso_url" : "file:///build/2020-02-13-raspbian-buster-lite.zip",
"iso_checksum_type":"sha256", "iso_checksum": "12ae6e17bf95b6ba83beca61e7394e7411b45eba7e6a520f434b0748ea7370e8", "target_image_size": 4294967296 } ], "provisioners": [ { "type": "shell", "inline": [ "systemctl enable ssh", "mkdir /home/pi/.ssh && chmod 644 /home/pi/.ssh", "curl -o /home/pi/.ssh/authorized_keys https://github.com/satackey.keys" ] } ] } SSH Λ༗ޮԽ ࣗͷSSHެ։伴Λ GitHub͔Βμϯϩʔυ
ΠϝʔδΛ࡞Δ $ packer build ssh_key.json output-arm-image ʹ Πϝʔδ͕Ͱ͖͍ͯΔ ͜ΕΛSDΧʔυʹॻ͖ࠐΜͰʂ
Provisioner • ྫ Shell Λಈ͔͢ͷͰ͕ͨ͠ɺ ͦͷ΄͔ʹ͜Μͳ͜ͱͰ͖·͢ʂ • ϑΝΠϧͷίϐʔ • JSONॻ͖ΛͤͣγΣϧεΫϦϓτΛ࣮ߦ
• AnsibleͳͲΛ࣮ߦ
PackerͰ͚ࣗͩͷ Raspberry PiΠϝʔδΛ ࡞ͬͨ ͚ͨ͞ #techstudygroupjp 2020.5.14
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠!