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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
310
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
2.4k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
760
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
350
「始め方」の始め方 / 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
760
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
8
6.9k
Other Decks in Technology
See All in Technology
MCP Appsを作ってみよう
iwamot
PRO
4
540
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
590
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
130
10倍の生産性を実現するAI駆動並列エージェントのすべて
kumaiu
5
1.3k
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
140
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
800
爆速でマルチプロダクトを立ち上げる時 事業・CTO目線で大事にしたい事
miyatakoji
0
100
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
220
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
3
200
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
800
フロンティアAIのゲート化と地政学リスク
nagatsu
0
120
攻撃者視点で考えるDetection Engineering
cryptopeg
1
1.2k
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
What's in a price? How to price your products and services
michaelherold
247
13k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Designing for Performance
lara
611
70k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Believing is Seeing
oripsolob
1
140
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
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