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
僕とHaconiwa /haconiwa-intro
Search
KONDO Uchio
August 29, 2016
Technology
1
1.5k
僕とHaconiwa /haconiwa-intro
KIXS #0 LT 大会にて
https://kixs.doorkeeper.jp/events/49820
KONDO Uchio
August 29, 2016
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.5k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
260
Narrative of Ruby & Rust
udzura
0
240
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.7k
Talk of RBS
udzura
0
460
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
800
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
750
Device access filtering in cgroup v2
udzura
1
940
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
860
Other Decks in Technology
See All in Technology
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
600
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
270
ヘンリー会社紹介資料(エンジニア向け) / company deck for engineer
henryofficial
0
440
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
160
20251102 WordCamp Kansai 2025
chiilog
0
340
Azure Well-Architected Framework入門
tomokusaba
1
150
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
130
今から間に合う re:Invent 準備グッズと現地の地図、その他ラスベガスを周る際の Tips/reinvent-preparation-guide
emiki
1
200
RemoteFunctionを使ったコロケーション
mkazutaka
1
170
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
240
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
170
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
2.5k
Featured
See All Featured
Building an army of robots
kneath
306
46k
Six Lessons from altMBA
skipperchong
29
4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Code Reviewing Like a Champion
maltzj
526
40k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Designing for humans not robots
tammielis
254
26k
The Invisible Side of Design
smashingmag
302
51k
Scaling GitHub
holman
463
140k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
͋Δ͍ԼܥΠϯσΟʔόϯυγʔϯʹ͍ͭͯ 6DIJP,POEP ,*94 ͱ)BDPOJXB GSPNIUUQTIPXDBTFDJUZGVLVPLBMHKQBMMSJHIUTSFTFSWFE
ΤϯδχΞ݉ਓؒ 6DIJP,POEP!VE[VSB (.0ϖύϘٕज़ج൫νʔϜ
!VE[VSBͷਓؒྺ ΄Ͳ3VCZਥͱͯ͠ΞοϓϦέʔγϣ ϯΤϯδχΞΛܦݧ͠ɺۀγεςϜɺ &$αΠτɺΦϯϥΠϯήʔϜͳͲΛ ܦͯϖύϘɻͦΕͱҰॹʹౚژ͔Β ԬʹҠॅ͢Δɻ ϖύϘͰྲྀΕͰ1VQQFUΛओʹ৮Δ ۀʹैࣄ͍͕ͯͨ͠ɺ࠷ۙ$ݴޠ ͱNSVCZͰγεςϜϓϩάϥϛϯάॳ ৺ऀͱͯ͠ؤு͍ͬͯΔɻ
͖ͳϙέϞϯൃੜҬඦಓɻ
ΞϨͰ͢CZ=
)BDPOJXBͱ
)BDPOJXBͱ wίϯςφΤϯδϯ w࠷େͷಛɺ3VCZ NSVCZ Ͱίϯςφͷઃఆ͕ࣗ༝ࣗࡏʹॻ͚Δ͜ͱ w%PDLFSΛଧ͠ͳ͍͚Ͳɺ%PDLFSͰϠϦͮΒͦ͏ͳ͜ͱͰ͖Δ͔ʁ
ίϯςφΤϯδϯͱ wίϯςφΈ߹Θͤɻ w۩ମతʹɺ-JOVYOBNFTQBDFɺDHSPVQɺ-JOVYDBQBCJMJUJFTɺ DISPPUɺCJOENPVOUɺͳΜ͔ΛΈ߹ΘͤͯɺϓϩηεʢͷҰ܈ʣΛ ͔͋ͨԾڥͷΑ͏ʹݟͤͯ׆༻͢Δٕज़ w)BDPOJXBɺ͜ͷؔ࿈ٕज़Λૢ࡞͢ΔNSVCZHFNΛͻͨ͢Β࡞Γ·͘Γɺ Έ߹ΘͤͯɺίϯςφڥΛ࣮ݱ͍ͯ͠·͢ɻ
໊લͷ༝དྷ w·Μ·ʮശఉʯͳΜ͚ͩͲɺ͘ͳΓ·ͯ͠ wͱͱɺຊͰҰ൪༗໊ͳKBJMͰ͋Δʮ"CBTIJSJʯͱ͍͏໊લΛ͚ͭΑ͏ͱ wࢥ͚ͬͨͲɺઑΓ͔͗͢ͳͬͯࢥ͍͠
໊લͷ w࣍ʹࢥ͍͍ͭͨͷ͕ɺԼͰΠϯσΟʔόϯυͱͯ͠׆༂͍ͯͨ͠ʢࠓͨ ·ʹϥΠϒΛ͍ͯ͠Δʣʮശఉͷָࣨʯͱ͍͏ɺۂ͕جຊతʹมഥࢠͷɺι ϑτϚγʔϯͱϖΠϰϝϯτΛͯ͠ແཧͰׂͬͨΑ͏ͳόϯυ͕͋Γɺ wʢҎԼ͙Β͍ɺθϩͷԼΠϯσΟʔζϩοΫͷΛ͢Δʣ
ͱ͜ΖͰɺʹɺϓϩάϥϚͱͯ͠ເ͕͋ͬͨ wҰͰ͍͍͔Βɺࣗͷ͖ͳόϯυ͋Δ͍ۂͷ໊લͷ͍ͨ w044ϓϩμΫτΛ wੈʹग़͔ͨͬͨ͠ wग़͔ͨͬͨ͠Μͩʂ
ͬͨ
ࠓͷ·ͱΊເ͏
ؓ ٳ GSPNIUUQTIPXDBTFDJUZGVLVPLBMHKQBMMSJHIUTSFTFSWFE
)BDPOJXBΛͰࢼ͢
͜ͷઌɺ3VCZ,BJHJ͚ͷࢿྉΛ ྲྀ༻͍ͤͯͩ͘͞͞ɻɻɻɻɻɻ
͔ͩΒϑΥϯτมΘΓ·͢ʂʂ̍
Πϯετʔϧ w QBDLBHFDMPVE͔Βམͱͤ·͢ɻ؆୯Ͱ͢Ͷʂ IUUQTQBDLBHFDMPVEJPVE[VSBIBDPOJXBJOTUBMM # example for deb-ish distro curl
-s https://packagecloud.io/install/repositories/udzura/ haconiwa/script.deb.sh | sudo bash apt-get update apt-get install haconiwa apt-get install lxc # It’s required to bootstrap fs
࠷ॳʹઃఆϑΝΠϧΛੜ͠·͢ $ haconiwa new test.haco assign new haconiwa name =
haconiwa-0491a405 assign rootfs location = /var/lib/haconiwa/0491a405 create test.haco
͜ͷઃఆϑΝΠϧ࣮ࡍͨͩͷ3VCZεΫϦϓτͰ͢
lIBDPOJXBDSFBUFzͰϑΝΠϧγεςϜΛ࡞Γ·͢ w ੜ͞Εͨ··ͩͱBMQJOFMJOVY͕MYDDSFBUFͰ࡞ΒΕ·͢
TTIEΛΠϯετʔϧͯ͠ةݥͳઃఆΛ͠·͢ Haconiwa.define do |config| #... config.provision do |p| p.run_shell <<-SHELL
apk add --update openssh sed -i 's/#Port.*/Port 2222/' /etc/ssh/sshd_config # NOTE: αϯϓϧ͔ͩΒͶʂ sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config sed -i 's/#PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config echo root:r00t | chpasswd ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key SHELL end #... end
lIBDPOJXBQSPWJTJPOzͰ͏ҰϓϩϏδϣχϯά
lJOJUzίϚϯυΛTTIEʹม͑ͯɺσʔϞϯԽ͠·͢ Haconiwa.define do |config| # The container name and container's
hostname: config.name = "haconiwa-0491a405" # The first process when invoking haconiwa run: # config.init_command = "/bin/bash" # To: config.init_command = %w(/usr/sbin/sshd -D) # And uncomment: config.daemonize! #... end $ haconiwa run test.haco
None
ຬͨ͠ΒɺlIBDPOJXBLJMMzͰ͚ͬͭ·͢ $ haconiwa kill test.haco Kill success
Ҏ্ʂ
ׂͱͪΌΜͱίϯςφͰ͖ͯͳ͍ʁ
͍͚Δͬͯʂ
ྫ͑͜͏͍͏࣌ʢ༧ఆʣ wϗετͱ৭ʑͳOBNFTQBDFΛڞ༗ͨ͠ڥΛ࡞Γ͍ͨ wੜ࣌ʹɺಈతʹDHSPVQͷύϥϝʔλΛม͍͑ͨ wͳΜ͔ෳࡶͳCJOENPVOUΛܦͯSPPUGTΛ࡞Γ͍ͨ w%̋DLFSΑΓܰΊʹϚΠΫϩαʔϏοε͍ͨ͠ͳʙʙʙ͋ʙʙʙʙ wͳͲͳͲ wকདྷతʹɺΦʔέετϨʔγϣϯαϙʔτ͍ͨ͠ɺͰ͖Δͱ͍͍Ͱ͢Ͷ
ͪͳΈʹ wFUDE qBOOFMͱΈ߹ΘͤͯΦʔόϨΠωοτϫʔΫͳΜ͔ wOFUOTࣗ࡞͍ͯͩ͘͠͞ʢͦΕΛIBDPOJXB࠶ར༻Ͱ͖·͢ʣ
˞ࠓճಈ͖·ͤΜ
৬ਓͷ࡞ΔOFUOT͔Β QJOHΛଧͭͱɺ ύέοτʹஆ͔Έ͕͋Δ
ӕͰ͍ۙ͢͏ͪʹ )BDPOJXBʹΈࠐΈ·͢ ͳΜ͔ܰͯ͘ૄ݁߹ͳΓํΛߟ͍͑ͨͰ͢Ͷ
·ͱΊ·͢
ࠓͷ·ͱΊ w)BDPOJXBԼܥมഥࢠίϯςφͰ͢ w)BDPOJXBͷৄࡉΛΓ͍ͨํɺͥͻ࠶དྷिͷ3VCZ,BJHJʂ wژͰѲखʂ
None
)BDPOJXBJTVOEFSEFWFMPQNFOU Ͱ͕͢ɺ༡ΜͰΈͯͶ