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
76
Dockerを使ってみよう / #kosenconf131hokkaido
satackey
0
200
Cloud Foundry を使ってみた / #aosc 2018-02-23
satackey
0
36
Other Decks in Technology
See All in Technology
歴史から理解するクラウドインフラのしくみ
kizawa2020
0
170
MCPをつなげて作る組織横断のAIエージェント基盤
tsubakimoto_s
0
170
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
160
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
850
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
530
基調講演:人とAIをつなぐIoTの今と未来 ー 「フィジカル」と「デジタル」が出会うその先へ【SORACOM Discovery 2026】
soracom
PRO
0
230
エンタープライズデータへ安全につなぐ Production-ready なエージェント設計 ― AI × MCP リファレンスアーキテクチャ ― #AIDevDay
cdataj
1
140
AI研修(Day1)【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
1.5k
Git 研修【MIXI 26新卒技術研修】#2
mixi_engineers
PRO
1
320
モバイル研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
220
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.7k
Flutter研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
180
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Chasing Engaging Ingredients in Design
codingconduct
0
240
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
370
The untapped power of vector embeddings
frankvandijk
2
1.8k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
640
Ruling the World: When Life Gets Gamed
codingconduct
0
290
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
370
Google's AI Overviews - The New Search
badams
0
1.1k
How to Ace a Technical Interview
jacobian
281
24k
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
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠!