Slide 1

Slide 1 text

એ఻ ʰೖ໳Puppetʱ Automate Your Infrastructure

Slide 2

Slide 2 text

@kentaro Software engineer Rubyist / Perl Monger Agile DevOps-er Kentaro Kuribayashi paperboy&co.

Slide 3

Slide 3 text

˒ લͷۈ຿ઌͰ͸Puppet΍ ChefΛ࢖͚ͬͯͨͲແࢹͬ ͯͨ ˒ ͍·ͷձࣾͰPuppetΛ࢖Θ ͟ΔΛಘͳ͘ͳͬͨͷͰ PuppetͱΘͨ͠

Slide 4

Slide 4 text

ϒΫϩάͷύϒʔ http://p.booklog.jp/book/70667 ୡਓग़൛ձ http://tatsu-zine.com/books/puppet Amazon http://www.amazon.co.jp/dp/B00CL92JC0

Slide 5

Slide 5 text

อଘ༻ ؍৆༻ ීٴ༻

Slide 6

Slide 6 text

http://tmix.jp/design/detail/518356

Slide 7

Slide 7 text

೔ຊॳͷPuppetຊ

Slide 8

Slide 8 text

˒ ΦʔϓϯιʔεͳγεςϜࣗಈ؅ཧπʔϧ Puppet by mizzy ˒ Puppet Best Practice? by mizzy ˒ Puppetͷεεϝ by mizzy ˒ Puppet Dojo by @trombik ͜Ε·ͰͷPuppetʹؔ͢Δ೔ຊޠϦιʔε ͜Ε·Ͱ೔ຊޠॻ੶φγ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

http://www.flickr.com/photos/bogdansuditu/2377844553/ ຊॻͷλʔήοτ૚

Slide 11

Slide 11 text

ΦϖϨʔγϣϯΤϯδχΞΑΓ ΋Ή͠ΖΞϓϦέʔγϣϯ։ൃ ऀΛ૝ఆ ΞϓϦ։ൃऀ͕PuppetΛ࢖ͬͯγεςϜߏங ʹࢀՃͰ͖Δ͙Β͍·Ͱ

Slide 12

Slide 12 text

lຊॻͷ໨ඪ͸ɺ͜ͷຊΛಡΜͩಡऀ͕Puppetͷ جຊʹ͍ͭͯͻͱͱ͓Γ஌ΓɺΦϖϨʔγϣϯΤ ϯδχΞͷॻ͍ͨmanifest αʔόͷ͋Δ΂͖ঢ় ଶΛهड़ͨ͠ઃఆϑΝΠϧͷΑ͏ͳ΋ͷɻޙड़ ʹ มߋΛՃ͑ͨΓɺ͋Δఔ౓ͷن໛ͷ΋ͷͳΒࣗྗ Ͱ͍͔ͪΒॻ͚ΔΑ͏ʹͳͬͨΓ͢Δ͜ͱͰ͢ɻ ͦͷͨΊɺຊॻ͸͋͑ͯϦϑΝϨϯεͱͯ͠ͷ໢ ཏੑΛ໨ࢦ͠·ͤΜɻ࣮ࡍͷֶशஈ֊Ͱඞཁͱͳ Δ஌ࣝʹ͠΅ͬͯઆ໌͠·͢ɻz ʮ͸͡ΊʹʯΑΓ

Slide 13

Slide 13 text

ຊॻͷ಺༰

Slide 14

Slide 14 text

جૅฤ 112ষ lHello, World!z͔Βɺͻͱͱ͓ΓͷϦιʔεΛ࢖͑ΔΑ͏ʹͳΔ·Ͱ Ԡ༻ฤ 13ষ td-agentΫϥελΛ࡞੒͠ɺserverspecͰςετɺσϓϩΠͱద༻·Ͱ

Slide 15

Slide 15 text

˒ VagrantΛ׆༻ͨ͠։ൃ؀ڥ ˒ ϋϯζΦϯͰֶ΂ΔΑ͏ߏ੒ ˒ ΄Μͱʹඞཁͳ͜ͱͷΈઆ໌ جૅฤͷϙΠϯτ

Slide 16

Slide 16 text

˒ class/moduleͳͲେن໛ͳ manifestΛॻ͘ͷʹ͔ܽͤͳ͍஌ ࣝʹ͍ͭͯղઆ ˒ ࣮ફతtd-agentΫϥελΛ࡞੒ ˒ serverspecʹΑΔςετʹ͍ͭͯ ˒ capistranoͰmanifestΛద༻ Ԡ༻ฤͷϙΠϯτ

Slide 17

Slide 17 text

Ԡ༻ฤͰߏங͢ΔγεςϜ

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Learning Puppet͚ͩͰ͸ֶ΂ͳ͍ manifestߏ੒ͷϊ΢ϋ΢ʹ͍ͭͯղ આ͍ͯ͠Δͱ͜Ζ͕େ͖ͳҧ͍ɻ Leaning Puppet͸Α͍υΩϡϝϯτ ͕ͩɺݴޠཁૉҎ্ͷ͜ͱ͸ֶ΂ͳ͍

Slide 20

Slide 20 text

ຊॻΛಡΉ͚ͩ Ͱجૅ͔Β࣮ફ ͰͷԠ༻త஌ࣝ ·ͰशಘՄೳɻ

Slide 21

Slide 21 text

Infrastructure as Code

Slide 22

Slide 22 text

։ൃ Πϯϑϥ

Slide 23

Slide 23 text

γεςϜঢ়ଶΛίʔυͰهड़ pull requestͰ૬ޓϨϏϡʔ ιʔγϟϧγεςϜߏங!!1 ܦݧతɺҰࢠ૬఻తɺൿ఻ͷλϨΛͰ͖Δ͚ͩ ͳ͘͢ɺίʔυԽ͞ΕͨγεςϜߏங

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

ΤϯδχΞ

Slide 26

Slide 26 text

maglicaͳͲ ։ൃ؀ڥ https://github.com/mizzy/maglica AWS EC2ͳͲ ຊ൪؀ڥ http://aws.amazon.com/ Vagrant ϩʔΧϧ؀ڥ http://www.vagrantup.com/

Slide 27

Slide 27 text

αʔό͕ίʔυͰ͍͡ ΕΔΑ͏ʹͳͬͨ͜ͷ Ϋϥ΢υ࣌୅Ͱ͸ʜʜ http://www.flickr.com/photos/nirak/644337888/

Slide 28

Slide 28 text

ΤϯδχΞͷڞ௨ݴޠ ͱͯ͠ͷʮίʔυʯͷ ໾ׂ͸·͢·͢େ͖͍ http://www.flickr.com/photos/trinity-of-one/20562069/

Slide 29

Slide 29 text

ϓϥοτϑΥʔϜ ݻ༗ͷख࡞ۀ Puppet/Chef ϓϥοτϑΥʔϜ ݻ༗ͷΞηϯϒϥ ߴڃݴޠ says...

Slide 30

Slide 30 text

http://en.wikipedia.org/wiki/File:Boschsevendeadlysins.jpg ϓϩάϥϚͷࡾେඒಙ

Slide 31

Slide 31 text

ແਫ਼(laziness) ୹ؾ(impatience) ၗຫ(hubris)

Slide 32

Slide 32 text

ແਫ਼(laziness) ୹ؾ(impatience) ၗຫ(hubris)

Slide 33

Slide 33 text

γεςϜߏஙʹ ʮແਫ਼ʯΛ࣋ͪࠐΉ

Slide 34

Slide 34 text

˒ खॱॻ࡞੒͕໘౗ ˒ खॱॻߋ৽͕໘౗ ˒ εΫϦϓτԽ͢Δͷ͕໘౗ ˒ εΫϦϓτΛอक͢Δͷ͕໘౗ ˒ ႈ౳ੑΛ୲อ͢Δͷ͕໘౗ ˒ ͱʹ͔͘໘౗

Slide 35

Slide 35 text

Ұݟ໘౗ͳPuppet ΍ Chef ΛֶͿͷ͸ʮ໘ ౗Λճආ͢ΔͨΊͳΒ ͍͘ΒͰ΋໘౗Λ͜ͳ ͢ʯͱ͍͏ʮແਫ਼ʯͷ ൃ࿐ʹଞͳΒͳ͍ɻ

Slide 36

Slide 36 text

Chefͱͷൺֱ

Slide 37

Slide 37 text

ݴޠ σΟϨΫτϦߏ੒ Puppet ֎෦DSL ൺֱతࣗ༝ Chef ಺෦DSL (Ruby) ෆࣗ༝

Slide 38

Slide 38 text

package { 'zsh': ensure => installed } Puppet package 'zsh' do action :install end Chef

Slide 39

Slide 39 text

͍ͨͯ͠มΘΒͳ͍

Slide 40

Slide 40 text

$ 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!”

Slide 41

Slide 41 text

$ $EDITOR hello.pp $ puppet apply hello.pp PuppetͷHello, World! # hello.pp notice(“Hello, World!”)

Slide 42

Slide 42 text

େ͖ͳҧ͍

Slide 43

Slide 43 text

Ͳͬͪʹ͠Ζ΍ΕΔ͜ͱ͸ಉ͡ Puppet͸ϑΝΠϧຕ͔Β࢝ ΊΒΕΔ ಋೖোน͕௿͍ ಠࣗDSLͷֶशίετͱ͍ͬͯ΋ɺRubyΛ஌Β ͳ͍ͻͱʹͱͬͯ͸Chefͩͬͯίετߴ

Slide 44

Slide 44 text

·ͱΊ

Slide 45

Slide 45 text

˒ ೔ຊॳͷPuppetʹؔ͢Δॻ੶ʰೖ ໳PuppetʱΛಡΉͱΫϥ΢υ࣌୅ ͷڞ௨ޠʮίʔυʯΛֶ΂Δ ˒ Puppet/Chef͸γεςϜߏஙʹ ʮଵଦʯΛ࣋ͪࠐΉ ˒ Puppet/ChefͲͬͪͰ΋͍͍͚Ͳ Έͳ͞Μ͕ࢥͬͯΔΑΓPuppet͸ ؆୯Ͱ͢Ϥ

Slide 46

Slide 46 text

˒ ͲͬͪΛ࢖͏ʹͤΑɺ͘͢ͳ͘ͱ ΋͜ͷຊʹॻ͔Ε͍ͯΔ͜ͱʹͭ ͍ͯ͸஌্ͬͨͰɺબͼ·͠ΐ͏

Slide 47

Slide 47 text

ϒΫϩάͷύϒʔ http://p.booklog.jp/book/70667 ୡਓग़൛ձ http://tatsu-zine.com/books/puppet Amazon http://tatsu-zine.com/books/puppet