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
80
Dockerを使ってみよう / #kosenconf131hokkaido
satackey
0
200
Cloud Foundry を使ってみた / #aosc 2018-02-23
satackey
0
36
Other Decks in Technology
See All in Technology
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
180
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
370
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
3
3.5k
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
530
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
130
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
220
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
320
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
1
330
Webとヘルスデータ
yukukotani
0
170
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
210
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
330
[RSJ26] AnoleVLA: Lightweight Vision-Language-Action Model with Deep State Space Models for Mobile Manipulation
keio_smilab
PRO
0
120
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
800
Designing Experiences People Love
moore
143
24k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
It's Worth the Effort
3n
188
29k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
230
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
The SEO Collaboration Effect
kristinabergwall1
1
550
Technical Leadership for Architectural Decision Making
baasie
3
550
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Amusing Abliteration
ianozsvald
1
280
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
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠!