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
Puppet Book
Search
Kentaro Kuribayashi
May 10, 2013
Technology
3.9k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Puppet Book
#pfcasual
Kentaro Kuribayashi
May 10, 2013
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
あとはAIに任せて人間は自由に生きる
kentaro
5
2.2k
社会人力と研究力ー博士号をキャリアの武器にするー
kentaro
3
330
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
2.5k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
790
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
360
「始め方」の始め方 / How to Start Starting Things
kentaro
5
1k
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.7k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
790
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
8
7k
Other Decks in Technology
See All in Technology
文字起こし基盤の信頼性
abnoumaru
0
150
実践が先生だった— 新卒サーバーエンジニア1年目のリアル
mixi_engineers
PRO
0
200
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
4
1.4k
人手不足への挑戦:車両保全を支えるIoTとクラウド内製化の道【SORACOM Discovery 2026】
soracom
PRO
0
160
カメラ×AIで挑む「ホワイト物流」― 車両管理、自動化の壁と突破口【SORACOM Discovery 2026】
soracom
PRO
0
180
基調講演:人とAIをつなぐIoTの今と未来 ー 「フィジカル」と「デジタル」が出会うその先へ【SORACOM Discovery 2026】
soracom
PRO
0
360
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
15
6.2k
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
170
MCPをつなげて作る組織横断のAIエージェント基盤
tsubakimoto_s
0
360
新たなDBアーキテクチャ「LTAP」にDeep Dive!!
inoutk
0
150
Amazon Bedrock Managed Knowledge BaseDive Deep
ren8k
0
240
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
3
1.7k
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Typedesign – Prime Four
hannesfritz
42
3.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
390
So, you think you're a good person
axbom
PRO
2
2.1k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
430
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
400
Being A Developer After 40
akosma
91
590k
How STYLIGHT went responsive
nonsquared
100
6.2k
The Language of Interfaces
destraynor
162
27k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Transcript
એ ʰೖPuppetʱ Automate Your Infrastructure
@kentaro Software engineer Rubyist / Perl Monger Agile DevOps-er Kentaro
Kuribayashi paperboy&co.
˒ લͷۈઌͰPuppet ChefΛ͚ͬͯͨͲແࢹͬ ͯͨ ˒ ͍·ͷձࣾͰPuppetΛΘ ͟ΔΛಘͳ͘ͳͬͨͷͰ PuppetͱΘͨ͠
ϒΫϩάͷύϒʔ http://p.booklog.jp/book/70667 ୡਓग़൛ձ http://tatsu-zine.com/books/puppet Amazon http://www.amazon.co.jp/dp/B00CL92JC0
อଘ༻ ؍༻ ීٴ༻
http://tmix.jp/design/detail/518356
ຊॳͷPuppetຊ
˒ ΦʔϓϯιʔεͳγεςϜࣗಈཧπʔϧ Puppet by mizzy ˒ Puppet Best Practice? by
mizzy ˒ Puppetͷεεϝ by mizzy ˒ Puppet Dojo by @trombik ͜Ε·ͰͷPuppetʹؔ͢ΔຊޠϦιʔε ͜Ε·Ͱຊޠॻ੶φγ
None
http://www.flickr.com/photos/bogdansuditu/2377844553/ ຊॻͷλʔήοτ
ΦϖϨʔγϣϯΤϯδχΞΑΓ Ή͠ΖΞϓϦέʔγϣϯ։ൃ ऀΛఆ ΞϓϦ։ൃऀ͕PuppetΛͬͯγεςϜߏங ʹࢀՃͰ͖Δ͙Β͍·Ͱ
lຊॻͷඪɺ͜ͷຊΛಡΜͩಡऀ͕Puppetͷ جຊʹ͍ͭͯͻͱͱ͓ΓΓɺΦϖϨʔγϣϯΤ ϯδχΞͷॻ͍ͨmanifest αʔόͷ͋Δ͖ঢ় ଶΛهड़ͨ͠ઃఆϑΝΠϧͷΑ͏ͳͷɻޙड़ ʹ มߋΛՃ͑ͨΓɺ͋ΔఔͷنͷͷͳΒࣗྗ Ͱ͍͔ͪΒॻ͚ΔΑ͏ʹͳͬͨΓ͢Δ͜ͱͰ͢ɻ ͦͷͨΊɺຊॻ͋͑ͯϦϑΝϨϯεͱͯ͠ͷ ཏੑΛࢦ͠·ͤΜɻ࣮ࡍͷֶशஈ֊Ͱඞཁͱͳ
Δࣝʹ͠΅ͬͯઆ໌͠·͢ɻz ʮ͡ΊʹʯΑΓ
ຊॻͷ༰
جૅฤ 112ষ lHello, World!z͔Βɺͻͱͱ͓ΓͷϦιʔεΛ͑ΔΑ͏ʹͳΔ·Ͱ Ԡ༻ฤ 13ষ td-agentΫϥελΛ࡞͠ɺserverspecͰςετɺσϓϩΠͱద༻·Ͱ
˒ VagrantΛ׆༻ͨ͠։ൃڥ ˒ ϋϯζΦϯͰֶΔΑ͏ߏ ˒ ΄Μͱʹඞཁͳ͜ͱͷΈઆ໌ جૅฤͷϙΠϯτ
˒ class/moduleͳͲେنͳ manifestΛॻ͘ͷʹ͔ܽͤͳ͍ ࣝʹ͍ͭͯղઆ ˒ ࣮ફతtd-agentΫϥελΛ࡞ ˒ serverspecʹΑΔςετʹ͍ͭͯ ˒ capistranoͰmanifestΛద༻
Ԡ༻ฤͷϙΠϯτ
Ԡ༻ฤͰߏங͢ΔγεςϜ
None
Learning Puppet͚ͩͰֶͳ͍ manifestߏͷϊϋʹ͍ͭͯղ આ͍ͯ͠Δͱ͜Ζ͕େ͖ͳҧ͍ɻ Leaning PuppetΑ͍υΩϡϝϯτ ͕ͩɺݴޠཁૉҎ্ͷ͜ͱֶͳ͍
ຊॻΛಡΉ͚ͩ Ͱجૅ͔Β࣮ફ ͰͷԠ༻తࣝ ·ͰशಘՄೳɻ
Infrastructure as Code
։ൃ Πϯϑϥ
γεςϜঢ়ଶΛίʔυͰهड़ pull requestͰ૬ޓϨϏϡʔ ιʔγϟϧγεςϜߏங!!1 ܦݧతɺҰࢠ૬తɺൿͷλϨΛͰ͖Δ͚ͩ ͳ͘͢ɺίʔυԽ͞ΕͨγεςϜߏங
None
ΤϯδχΞ
maglicaͳͲ ։ൃڥ https://github.com/mizzy/maglica AWS EC2ͳͲ ຊ൪ڥ http://aws.amazon.com/ Vagrant ϩʔΧϧڥ http://www.vagrantup.com/
αʔό͕ίʔυͰ͍͡ ΕΔΑ͏ʹͳͬͨ͜ͷ Ϋϥυ࣌Ͱʜʜ http://www.flickr.com/photos/nirak/644337888/
ΤϯδχΞͷڞ௨ݴޠ ͱͯ͠ͷʮίʔυʯͷ ׂ·͢·͢େ͖͍ http://www.flickr.com/photos/trinity-of-one/20562069/
ϓϥοτϑΥʔϜ ݻ༗ͷख࡞ۀ Puppet/Chef ϓϥοτϑΥʔϜ ݻ༗ͷΞηϯϒϥ ߴڃݴޠ says...
http://en.wikipedia.org/wiki/File:Boschsevendeadlysins.jpg ϓϩάϥϚͷࡾେඒಙ
ແਫ਼(laziness) ؾ(impatience) ၗຫ(hubris)
ແਫ਼(laziness) ؾ(impatience) ၗຫ(hubris)
γεςϜߏஙʹ ʮແਫ਼ʯΛ࣋ͪࠐΉ
˒ खॱॻ࡞͕໘ ˒ खॱॻߋ৽͕໘ ˒ εΫϦϓτԽ͢Δͷ͕໘ ˒ εΫϦϓτΛอक͢Δͷ͕໘ ˒ ႈੑΛ୲อ͢Δͷ͕໘
˒ ͱʹ͔͘໘
Ұݟ໘ͳPuppet Chef ΛֶͿͷʮ໘ Λճආ͢ΔͨΊͳΒ ͍͘ΒͰ໘Λ͜ͳ ͢ʯͱ͍͏ʮແਫ਼ʯͷ ൃ࿐ʹଞͳΒͳ͍ɻ
Chefͱͷൺֱ
ݴޠ σΟϨΫτϦߏ Puppet ֎෦DSL ൺֱతࣗ༝ Chef ෦DSL (Ruby) ෆࣗ༝
package { 'zsh': ensure => installed } Puppet package 'zsh'
do action :install end Chef
͍ͨͯ͠มΘΒͳ͍
$ knife configure $ knife cookbook create hello -o cookbooks
$ $EDITOR cookbooks/hello/recipes/default.rb $ $EDITOR localhost.json $ $EDITOR solo.rb $ chef-solo -c solo.rb -j localhost.json ChefͷHello, World! // localhost.json { "run_list" : [ "recipe[hello]" ] } # solo.rb file_cache_path "/tmp/chef-solo" cookbook_path ["/home/ec2-user/chef- repo/cookbooks"] # default.rb log “Hello, World!”
$ $EDITOR hello.pp $ puppet apply hello.pp PuppetͷHello, World! #
hello.pp notice(“Hello, World!”)
େ͖ͳҧ͍
Ͳͬͪʹ͠ΖΕΔ͜ͱಉ͡ PuppetϑΝΠϧຕ͔Β࢝ ΊΒΕΔ ಋೖোน͕͍ ಠࣗDSLͷֶशίετͱ͍ͬͯɺRubyΛΒ ͳ͍ͻͱʹͱͬͯChefͩͬͯίετߴ
·ͱΊ
˒ ຊॳͷPuppetʹؔ͢Δॻ੶ʰೖ PuppetʱΛಡΉͱΫϥυ࣌ ͷڞ௨ޠʮίʔυʯΛֶΔ ˒ Puppet/ChefγεςϜߏஙʹ ʮଵଦʯΛ࣋ͪࠐΉ ˒ Puppet/ChefͲͬͪͰ͍͍͚Ͳ Έͳ͞Μ͕ࢥͬͯΔΑΓPuppet
؆୯Ͱ͢Ϥ
˒ ͲͬͪΛ͏ʹͤΑɺ͘͢ͳ͘ͱ ͜ͷຊʹॻ͔Ε͍ͯΔ͜ͱʹͭ ্͍ͯͬͨͰɺબͼ·͠ΐ͏
ϒΫϩάͷύϒʔ http://p.booklog.jp/book/70667 ୡਓग़൛ձ http://tatsu-zine.com/books/puppet Amazon http://tatsu-zine.com/books/puppet