Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Packer で自分だけの Raspberry Pi イメージを 作った話 / #techst...
Search
さたけ
May 14, 2020
Technology
440
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
81
Dockerを使ってみよう / #kosenconf131hokkaido
satackey
0
200
Cloud Foundry を使ってみた / #aosc 2018-02-23
satackey
0
36
Other Decks in Technology
See All in Technology
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
4
1.7k
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1k
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
140
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
720
beyond jj: config & tools ecosystem
indirect
0
370
データ_AIの事業の勝敗をわけるもの
nek0128
0
330
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.3k
10分で知る最近のOmarchy
komagata
0
310
Spring BootからQuarkusへの移行
tatsuya1bm
2
110
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
GraphQLとの向き合い方2022年版
quramy
50
15k
4 Signs Your Business is Dying
shpigford
187
23k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
610
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
290
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Why Our Code Smells
bkeepers
PRO
340
58k
For a Future-Friendly Web
brad_frost
183
10k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
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
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠!