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
Engine Yardで使われる Chefの活用レシピ
Search
Yusuke Ando
April 05, 2013
1.4k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Engine Yardで使われる Chefの活用レシピ
Yusuke Ando
April 05, 2013
More Decks by Yusuke Ando
See All by Yusuke Ando
CakePHP3でアプリ開発
yandod
1
430
Shimokita.Unity パーティクルでエフェクト
yandod
0
880
CakePHP3の明るい未来
yandod
1
300
Testing your app with Selenium on Travis CI
yandod
8
3.3k
Testing your app with Selenium on Travis CI
yandod
0
190
Inputで入力を扱う
yandod
0
730
Detonatorで爆発させる勉強会をした報告
yandod
0
2.5k
Mecanimでアニメーション - Shimokita.Unity
yandod
0
800
パリの街をUnityで駆ける
yandod
1
3.5k
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
360
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Google's AI Overviews - The New Search
badams
0
1.1k
The SEO identity crisis: Don't let AI make you average
varn
0
520
Odyssey Design
rkendrick25
PRO
2
740
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Un-Boring Meetings
codingconduct
0
360
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Limits of Empathy - UXLibs8
cassininazir
1
580
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
280
Transcript
$IFGͷ׆༻Ϩγϐ &OHJOF:BSEͰΘΕ͍ͯΔ
ZBOEP $BOEZ$BOFQIQ ʮ࠙ձϐβൃΞϓϦʯ
Copyright © 2013 Engine Yard. All Rights Reserved. 3 2006ɿ
Engine Yard ઃཱ (Ruby࣮ߦڥͷఏڙ։࢝) 2008ɿ Amazon༷͕Engine Yardʹग़ࢿΛൃද 2009ɿ AWSج൫ͷPaaSΛఏڙ։࢝ ࠷େڃͷAWSϦηʔϥʔʹ 2011ɿ PHP࣮ߦڥͷఏڙ։࢝ 2012ɿ Engine Yard ຊ๏ਓઃཱ Node.js࣮ߦڥͷఏڙ։࢝ എܠ: Engine Yard, Inc.ͷϏϧ(ӈख)͕ݐͭ1929ͷαϯϑϥϯγεί Engine YardͷาΈ
&OHJOF:BSE$MPVE 1MBUGPSNBTB4FSWJDF ઃఆෆཁͰࣗಈͰΞϓϦΛσϓϩΠ ӡ༻ɾࢹΛαϙʔτରԠ Πϯϑϥؔ࿈ͷਓ݅අΛθϩʹ ສ୯ҐͷΠϯελϯεΛҰׅӡ༻
&OHJOF:BSE$MPVE
"84 $IFG αϙʔτ
"HFOEB $IFGͱ $IFG4PMPͷར༻ ΑΓ࣮ફతͳར༻ྫ
$IFGͱ
$IFG 3VCZͷγεςϜཧπʔϧ ઃఆϑΝΠϧΛݩʹαʔόΛࣗಈઃఆ 6OJY-JOVY.BD8JOEPXTରԠ ແঈ൛Ͱར༻Մೳ ࠃ֎Ͱٸʹελϯμʔυʹ
DPPLCPPLΛݩʹઃఆ recipe cookbook 3VCZͰॻ͔ΕͨϨγϐͷू·Γ͕ΫοΫϒοΫ $IFGϨγϐΛݩʹϗετΛࣗಈͰઃఆ͢Δ
SFDJQJFTͷྫ log "Hello Chef" package "apache2" do action :install end
service "apache2" do action :start end
*OGSBTUSVDUVSFBT$PEF 2011/2 ΠϯϑϥΛίʔυͰهड़͢Δ ͕࣌౸དྷͨ͠
ʮγΣϧεΫϦϓτͰͳ͍ʯ ႈੑ͋Δ͔ʁ
ႈੑ ͋Δૢ࡞Λճߦͬͯෳճ ߦͬͯ݁Ռ͕ಉ͡Ͱ͋Δ͜ͱ Λ͍͏֓೦
ΠϯετʔϧεΫϦϓτ ߏஙޙͷঢ়ଶ͔͠อূͰ͖ͳ͍ $IFGԿͰ࣮ߦՄೳͰ γεςϜΛఆٛ͞Εͨঢ়ଶʹͰ͖Δ
$IFGͷߏ తͷϊʔυ܈ ཧ༻αʔό
όϦΤʔγϣϯ )PTUFE$IFG 0QT$PEF͕ϗεςΟϯά͢Δ ϊʔυʹԠͨ͡՝ۚ 1SJWBUF$IFG 'JSFXBMMͰՔಇ͢Δ ༗ঈ൛αϙʔτ͋Γ
)PTUFE$IFG
1SJDF
$IFG4FSWFS 044 ࣮ɺͬͨࣄͳ͍Ͱ͢ʜ
DIFGTPMP αʔόʔෆཁͷDIFG ϩʔΧϧ্ͷΫοΫϒοΫΛ࣮ߦՄೳ (6*͑ͳ͍ DIFGTPMPΛΩοΫ͢Δπʔϧଟ͍ FY 7BHSBOU &OHJOF:BSE
͜Μͳ
Chef Server $IFG$MJFOU ։ൃऀͷPC Workstation Node Cookbook Node DIFGDMJFOU DIFGDMJFOU
"1* Cookbook LOJGF
։ൃऀͷPC Workstation Node $IFG4PMP,OJGF4PMP Node DIFGTPMP Cookbook LOJGF Cookbook DIFGTPMP
Cookbook TTI TTI
DIFGTPMPେਓؾ
·ͣ$IFG4PMPͰ ϨγϐΛͬͨߏஙʹ ׳ΕΔͷ͕٢
$IFG4PMPͷར༻
ηοτΞοϓ $ curl -L https://www.opscode.com/chef/install.sh | sudo bash $IFGͷ࣮ߦʹඞཁͳ3VCZ3VCZHFNTΛ γεςϜͱಠཱͯ͠Πϯετʔϧ
TPMPSC Ұ࣍σΟϨΫτϦͷॴͷઃఆ ΫοΫϒοΫͷύεͷઃఆ FUDDIFGTPMPSC ࣮ߦ࣌ʹଘࡏ͠ͳ͍߹ܯࠂ
TPMPSC file_cache_path "/var/chef-solo" cookbook_path ["/var/chef-solo/cookbooks"] file_cache_path "/var/chef-solo" cookbook_path ["/var/chef-solo/cookbooks", "/var/chef-solo/site-cookbooks"]
ෳࢦఆՄ
OPEFKTPO $IFGαʔό͔Βͷσʔλͷସ ΫοΫϒοΫ͢มΛઃఆ ࣮ߦ͢ΔϨγϐΛࢦఆ͢Δ
OPEFKTPO { "resolver": { "nameservers": [ "10.0.0.1" ], "search":"int.example.com" },
"run_list": [ "recipe[resolver]" ] } { "run_list": [ "recipe[resolver]" ] } ࣮ߦ͍ͨ͠Ϩγϐ
DIFGTPMP
ͭ·Γ ະઃఆͷঢ়ଶ͔ΒͰҙͷΫοΫ ϒοΫΛ࣮ߦग़དྷΔ WBSDIFGDPPLCPPLTIPHF ͷΫοΫϒοΫΛ࣮ߦ͢ΔͳΒ $ sudo chef-solo -o hoge
ςετ࣮ߦ
Ϩγϐͷهड़ LOJGFίϚϯυ σΟϨΫτϦߏ 3FTPVSDF ެ։͞Ε͍ͯΔΫοΫϒοΫ
ΫοΫϒοΫ࡞ LOJGFDPPLCPPLDSFBUF\OBNF^ WBSDIFGDPPLCPPLTҎԼʹ࡞ $IFGαʔόΛΘͳ͍ͷͰΑ͠ͳʹ (JU)VC4Ͱཧ
σΟϨΫτϦߏ CHANGELOG.md attributes/ files/ metadata.rb recipes/ templates/ README.md definitions/ libraries/
providers/ resources/ ϨγϐΛஔ͘ QMBUGPSNຖʹग़དྷΔ ઃఆϑΝΠϧͷͻͳܗ ϨγϐͰར༻͍ͨ͠มͳͲ
SFDJQFTEFGBVMUSC log “Hello Chef” QMBUGPSNΛؾʹ͠ͳ͍߹
Ϩγϐ 3VCZͰॻ͔ΕͨεΫϦϓτ ෦%4-Λͬͯهड़ 3FTPVSDFͱݺΕΔจ๏ ΈࠐΈͷ3FTPVSDF04ʹґଘ͠ͳ͍ ઃఆ࡞ۀΛఏڙ
SFDJQJFTEFGBVMUSC log "Hello Chef" package "apache2" do action :install end
service "apache2" do action :start end ֤ڥͷύοέʔδཧΛ࣮ߦ
BQBDIFೖͬͨ
BQUHFUͰྑ͘Ͷʁ ୯७ͳύοέʔδಋೖҎ্ͷॲཧ͕ग़ དྷΔͷ͕$IFGͷڧΈ ݻ༗ͷઃఆϑΝΠϧͷઃஔ ύοέʔδؒɺϊʔυؒͷ࿈ಈઃఆ ࣮ߦ࣌ʹใΛऔಘ͢Δػೳ
UFNQMBUFϦιʔε &3#ΛͬͯಈతͳΛૠೖ "QBDIFQIQOHJOYͳͲͷઃఆʹ ϓϥοτϑΥʔϜຖʹࠩ͠ସ͑Մೳ
UFNQMBUFTEFGBVMUUFTUUYUFSC This is Sample File.<br/> <%= node[:platform] %><br/> <%= node[:platform_version]
%> SFDJQFTEFGBVMUSC ଓ template "/var/www/test.txt" do source "test.txt.erb" mode 0644 end
ಈతʹϑΝΠϧΛ࡞
JODMVEF ผͷΫοΫϒοΫΛಡΈࠐΉ طଘͷࣝͷ࠶ར༻ ґଘؔͷఆٛ include_recipe “fuga”
ͦͯ͠ ࣗྗͰهड़ͨ͠ϨγϐΛஷΊ͍ͯ͘ ωοτ্ͷϨγϐΛखͯ͠͠ར༻ *OGSBTUSVDUVSFBTDPEFΛ࣮ݱ
ΑΓ࣮ફతͳར༻ྫ
໘͢Δ՝ తͷڥΛߏங͢ΔϨγϐͷ࣮ ॻ͔ΕͨϨγϐͷӡ༻อक Ϩγϐͷํ๏ ϨγϐͷөλΠϛϯάͷ੍ޚ
Ϩγϐͷ࣮ 3VCZͰͷ࣮ʹෆ׳Ε ˠ(JU)VC্ͷϨγϐΛࢀরɾར༻ Ϩγϐͷςετ༻ͷڥ͕େྔʹ͏ ˠ7BHSBOUΛ͏
None
7BHSBOU 7JSUVBM#PYͷϑϩϯτΤϯυ ΠϝʔδϑΝΠϧͷཧɺDIFG QVQQFUͷىಈ·ͰΛશࣗಈͰ࣮ߦ $IFGϢʔβͷඞܞπʔϧ ϓϥάΠϯͰΫϥυར༻Մೳ
Ϩγϐͷӡ༻อक Ϩγϐͷ (JU)VC ,OJGFTPMP /'4 $IFG4FSWFS #FSLTIFMG ϨγϐͷөλΠϛϯά $BQJTUSBOP DSPO
DIFGDMJFOUͷEBFNPO
Node Node GitHub engineyard.com Node &OHJOF:BSEͷ߹ DIFGTPMP Cookbook BQQMZ &OHJOF:BSE͕࣮ͨ͠Ϩγϐ
Λ8FCͷૢ࡞Ͱඞཁͳ࣌ʹө ΧελϜϨγϐ
GitHub ։ൃऀͷPC &OHJOF:BSE-PDBM Cookbook &OHJOF:BSE-PDBM Ϋϥυ্ͱಉҰͷϨγϐͰϩʔΧϧʹ ։ൃڥΛ࡞Δπʔϧ VM DIFGTPMP BQQMZ
7BHSBOU Node DIFGTPMP BQQMZ
ར ར༻ऀվྑ͞Ε͚ͭͮΔϨγϐΛ Կॻ͔ͣʹར༻Ͱ͖Δ ར༻ऀͷڥͷ෦ߏ͕౷Ұ͞Ε ޮతͳαϙʔτ͕Մೳ ϨγϐΛՃͯ͠ҙͷߏՄೳ
ڭ܇ Ϩγϐͷ࣮ͱద༻ࣗಈԽ͕ඞཁ πʔϧͷಋೖ݁ہඞཁ $IFGͦͷͷΛӡ༻͢Δ࿑ྗ ࣗྗPS֎෦αʔϏε &OHJOF:BSE
࣭ʁ IUUQCJUMZFZDIFG ຊͷεϥΠυͳͲͷใɺ ϊϕϦςΟͷϓϨθϯτใʂ