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 & Chef
Search
Shinya Tsunematsu
June 21, 2013
Programming
12
3.5k
Puppet & Chef
新卒研修でやった座学の内容。
既に Puppet & serverspec で研修を進めていたので、まとめと周辺知識の関連付け。
Shinya Tsunematsu
June 21, 2013
Tweet
Share
More Decks by Shinya Tsunematsu
See All by Shinya Tsunematsu
GMOペパボでのSREの実践 / SRE Practices of GMO Pepabo, Inc.
tnmt
3
4k
ペパボサービスインフラの今までこれから / pepabo infra past and future
tnmt
3
600
知らなかった、時に困るWebサービスのセキュリティ対策 / Where Do We Start With Information Security?
tnmt
19
8.9k
IaaSをいじっている人が PaaSについて考えたこと / Should We Prepare Own PaaS?
tnmt
5
2k
成長を支援する “ふりかえり”の技術 / How to lockback using "furik"
tnmt
7
1.4k
こんにちわ福岡 / hello-fukuoka
tnmt
0
1.1k
Inside Nyah & Future - A case of "Private Cloud" using OpenStack -
tnmt
0
220
OpenStackクラスタ間マイグレーション事例 Havana to Mitaka / OpenStack Migration Case (Shift from Havana to Mitaka)
tnmt
1
990
ペパボのプライベートクラウド "Nyah" その後 / Pepabo's PrivateCloud "Nyah" After That
tnmt
8
12k
Other Decks in Programming
See All in Programming
ゆるい個人開発のススメ
kuroppe1819
10
930
Folding Cheat Sheet #3
philipschwarz
PRO
0
110
OpenTelemetry のサービスという概念について
azukiazusa1
2
1.1k
Git Lint
bkuhlmann
4
740
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
250
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
25
7.7k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
puregoの活用例
aethiopicuschan
0
220
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
300
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
39
17k
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
250
Introduction for Open Source Swift Workshop
giginet
PRO
0
1.1k
Featured
See All Featured
Docker and Python
trallard
33
2.7k
Git: the NoSQL Database
bkeepers
PRO
421
63k
GraphQLの誤解/rethinking-graphql
sonatard
49
9.2k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
The Brand Is Dead. Long Live the Brand.
mthomps
48
28k
How to train your dragon (web standard)
notwaldorf
71
5.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
10
4.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
16k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
The Pragmatic Product Professional
lauravandoore
24
5.8k
Transcript
2013/06/21 @tnmt Puppet Chef ͷجૅ ͳΜͰඞཁͳͷͱ͔
ຊͷΞδΣϯμ ✤ Puppet, Chefͱ ✤ Puppet, Chefͷඞཁੑ ✤ Puppet, Chefͷߏ
✤ ΠϯϑϥͷίʔυԽͱͦͷपลࣝ
Puppet, Chefͱ
Puppet, Chef ✤ Provisioning Framework < Configuration Management Framework
Configuration Management ✤ ߏཧͷλεΫྫ ✤ ωοτϫʔΫઃఆ ✤ Ϣʔβ࡞ɾཧ ✤ ιϑτΣΞΠϯετʔϧઃఆ
✤ ͜ΕΒΛ”͋Δ͖ঢ়ଶ”ʹҡ࣋͢Δ͜ͱ͕ߏཧ ✤ ͦΕΛ࣮ݱ͢ΔͨΊͷπʔϧ͕Puppet, Chef
Puppet, Chefͷඞཁੑ
ৄ͘͠ ✤ mizzy͞ΜͷPuppet࿈ࡌॳճ http://gihyo.jp/admin/serial/01/ puppet/0001 ✤ antipop͞Μͷ”ೖPuppet”ୈ1ষ ʮͳͥPuppet͕ඞཁͳͷ͔ʁʯ ✤
Λࢀߟʹ…͍ͬͯ͏ͱ͋ΕͳͷͰ࣮ࡍಡΈ߹Θͤ
ߏཧλεΫͷ࣮ݱํ๏ʢ̍ʣ ✤ खॱॻʹΑΔखಈઃఆ ✤ ख࡞ۀʹΑΔ࣌ؒͷϩε ✤ ΦϖϨʔγϣϯϛεͷՄೳੑ ✤ खॱॻͷߋ৽Εɺܗ֚Խɺ߹ੑҡ͕͍࣋͠
ߏཧλεΫͷ࣮ݱํ๏ʢ̎ʣ ✤ εΫϦϓτʹΑΔࣗಈԽ ✤ εΫϦϓτͷ࣭ҡ͕࣋ݸਓͷεΩϧʹΑΔ ✤ ߏมߋͷै͕͍͠ʢޙड़͢Δႈੑʣ
͜͜Ͱ ✤ खॱॻ͕ͻͲ͍ͱ͜ΖΛݟͤΔʢٽ͖ͳ͕Βʣ
Chef, Puppetେࣄɾخ͍͜͠ͱ ✤ ႈੑ ✤ ίʔυ࣭ͷۉҰԽ ✤ ίϥϘϨʔγϣϯՄೳ
ႈੑ ✤ Կ࣮ߦͯ͠ಉ͡ঢ়ଶʹͳΔ͜ͱ ✤ ৽نɾطଘʹରͯ͠ͷૢ࡞Ͱಉ͡
ίʔυ࣭ͷۉҰԽ ✤ େମ୭͕ॻ͍ͯࣅͨΑ͏ͳײ͡ʹͳΔ ✤ ݚमͰ࡞ͬͯΔ manifest ݟͯͦ͏ͩΑͶʁ ✤ ଞͷਓ͕ॻ͍ͯΔͷΛݟΕେମԿͬͯΔ͔͔Δ ✤
ී௨ʹ͍ͬͯΕݸਓͷεΩϧʹ͋Μ·Γࠨӈ͞Εͳ͍ ✤ ෳࡶͳه๏ॻ͖࢝ΊΔͱ·ͨผ͚ͩͲ…
ίϥϘϨʔγϣϯՄೳ ✤ ΤϯδχΞಉ࢜Ͱ૬ޓʹվળ͕Մೳ ✤ Opsಉ࢜ͰɻDev͕ॻ͍͍͍ͨͬͯ (DevOps) ✤ VCSΛ༻͍ͨվળ (Pull Request,
ϨϏϡʔ) ✤ Մೳͱ͍͏ϝϦοτ
Puppet, Chefͷߏ
Puppet, Chefͷൺֱ ݴޠ σΟϨΫτϦߏ Puppet ֎෦DSL ൺֱతࣗ༝ Chef ෦DSL (Ruby)
ܾ·͍ͬͯΔ
ͱ͍͑ ✤ ઌ΄Ͳͷ֤ϓϩμΫτͷ༷తͳͱ͜ΖͷൺֱͰ ✤ ʢೖ Puppet ʹهࡌͯ͋͠Δʣ ✤ ࣮ࡍʹఏڙ͞ΕΔػೳͱͯ͠େ͖ࠩ͘ͳ͍ ✤
Ҏ߱ڞ௨͍ͯ͠Δӡ༻ʢ͍ํʣͷઆ໌
Master, Agentܕ ✤ Puppetͷmanifest, Chefͷrecipe Λूதཧ͢ΔϚελʔɺద༻͢Δ ΤʔδΣϯτͷܗΛऔΔ͜ͱ͕ग़དྷΔ ✤ طଘͷϖύϘࡐ͜ͷߏΛऔ͍ͬͯΔͱ͜Ζ͕ଟ͍ ✤
nodeใͷཧ͕ඞཁ ✤ PuppetͩͱςΩετʢ࣮ྫʣɺLDAPͳͲऔΕΔ ✤ ‘puppet agent’ ‘chef-client’
Puppetͷྫ
୯ମͰ࣮ߦ ✤ manifest, recipe Λద༻͢Δαʔόʹஔͯ͠୯ମͰ࣮ߦ͢Δ ✤ Master, AgentܕΑΓ͓खܰ ✤ ‘puppet
apply’, ‘chef-solo’ ✤ ࠷ۙͪ͜Β͕ਓؾग़͖ͯͯΔʢޙड़ʣ
ΠϯϑϥͷίʔυԽ
ίϥϘϨʔγϣϯՄೳͱॻ͍ͨ ✤ Manifest, Cookbooks Λόʔδϣϯཧग़དྷͯɺෳਓͰཧ ✤ ϨϏϡʔͨ͠Γվળͨ͠Γग़དྷΔ ✤ ͜Εͬͯී௨ʹϓϩάϥϜͱҰॹ
ϓϩάϥϜͱҰॹ ✤ ͜ΜͳྲྀΕ͕ग़དྷΔΑ͏ʹͳΔ ✤ खݩͷvagrantͰmanifestrecipeΛ࡞ͯ͠ (development) ✤ ࣾͷmaglicaڥͳͲͰ֬ೝͯ͠ (integration) ✤
࣮ࡍͷαʔϏεͷεςʔδϯάͰ֬ೝͯ͠ (staging) ✤ ຊ൪ʹೖ (production)
ϓϩάϥϜͱҰॹ ✤ ͜͏͍͏ͱ͖୯ମ࣮ߦ͕ศརͩͶ ✤ ֤ڥʹpupper-serverchef-serverΛߏங͢Δͷ͠ΜͲ͍ ✤ ͔ͦ͠ΕΒӡ༻ʹͦΕͳΓʹख͕͔͔ؒΔ
Vagrant ✤ ‘vagrant provision’ ίϚϯυ ✤ http://docs-v1.vagrantup.com/v1/docs/provisioners.html ✤ ࡞ͬͯյͯ͠ͱ͍͏ͷ͕؆୯ʹग़དྷΔ
ࠓ·ͰͷδϨϯϚ ✤ manifestrecipeͷ֬ೝ͕େม ✤ ࡞ ✤ ద༻ ✤ ֬ೝ ʢࢹʣ
໘ͳ͜ͱCI ✤ ͜͜࠷͍ۙτϐοΫ ✤ ϓϩάϥϚϒϧʹαʔόߏங͕ग़དྷΔΑ͏ʹͳͬͨ ✤ ֬ೝςετΛCIͰճͤΔΑͱ͍͏ͷͰઌਓ͕ϊϋΛஷΊͯڞ༗ ͖͍ͯͯ͠Δ
ႈੑສࡀ ✤ طଘͷαʔόͷద༻ ✤ ৽نαʔόͷߏங ✤ ͲͪΒʹͰ͑ΔɺͲͪΒ֬ೝग़དྷΔ
CIྫ (Puppet) ✤ “Ukigumo ͱ serverspec Ͱ Puppet ͷܧଓతΠϯςάϨʔγϣϯ” ✤
http://mizzy.org/blog/2013/03/27/2/ ✤ puppet-lxc-box Ͱ࡞ͬͨίϯςφʹରͯ͠ܧଓతʹ puppet apply ͠ ͯ݁ՌΛϨϙʔτ
CIྫ (Chef) ✤ “Vagrant + Chef Solo + serverspec +
Jenkins ͰαʔόʔߏஙΛ CI” ✤ http://d.hatena.ne.jp/naoya/20130520/1369054828 ✤ vagrant ʹΑͬͯ࡞ͨ͠ vm ʹରͯ͠ɺ৽ن࡞→knife-soloద༻ →serverscpec→ഁغ ͱ͍͏ྲྀΕ
ઌ΄ͲͷCIͷλΠτϧΛݟ͢ ✤ “Ukigumo ͱ serverspec Ͱ Puppet ͷܧଓతΠϯςάϨʔγϣϯ” ✤ “Vagrant
+ Chef Solo + serverspec + Jenkins ͰαʔόʔߏஙΛ CI”
serverspecʹ͍ͭͯ ✤ ࠓͷ hbstudy#45 Ͱʂʂ̍
͓·͚ʣ͏̍ͭͷςετ ✤ αʔϏεࢹ (ϞχλϦϯά͡Όͳͯ͘ࢮ׆ࢹͳͲ) ✤ ϖύϘͰNagiosΛ͍ͬͯΔ ✤ NagiosपΓࠇా͞Μ͕ࠓͯ͘͠Ε·͢ ✤ serverspec͕ϗϫΠτϘοΫεςετͳΒ,
αʔϏεࢹϒϥοΫϘ οΫεςετ ✤ ʢهʣ࣮ࡍӡ༻தͷNagiosը໘ΛݟͯΈͨ