You are on page 1of 9

1pAddJPJe11x = "192.168.56.

10"
# 0e11he humbeJ o1 RAh 1oJ each hode
coh11g.vm.pJov1deJ "v1J1uabox" do ]v]
v.cus1om1ze |"mod11yvm", .1d, "--memoJy", 1024]
ehd
# PJov1s1oh 1he seJveJ 11se1 w11h puppe1
coh11g.vm.pJov1s1oh .puppe1
# 0owhoad 1he 1h111a box 1Jom 1h1s uJ
coh11g.vm.box_uJ = "h11p.//11es.vagJah1up.com/pJec1se64.box"
# PJov1s1oh Coh11g 1oJ each o1 1he hodes
1.up1o{humhodes) do ]hum]
hodehame = {"hode" + hum.1o_s).1o_sym
coh11g.vm.de11he hodehame do ]hode]
hode.vm.box = "pJec1se64"
hode.vm.he1woJk .pJ1va1e_he1woJk, 1p. 1pAddJPJe11x + hum.1o_s
hode.vm.pJov1deJ "v1J1uabox" do ]v]
v.hame = "Couchbase SeJveJ hode " + hum.1o_s
ehd
ehd
ehd
ehd
1hls lle ls |usL ruby ccde LhaL ccnlgures vagranL. LeL's gc Lhrcugh each dlrecLlve and see whaL lL dces cr us.
# humbeJ o1 hodes 1o pJov1s1oh
humhodes = 4
# TP AddJess Base 1oJ pJ1va1e he1woJk
1pAddJPJe11x = "192.168.56.10"
A Couchbase CIuster In MInutes wIth Vagrant and Iuppet... http.//bIog.couchbase.com/couchbase-cIuster-mInutes-va...
2 oI 9 01/17/2014 02.19 IM
Ycu can change Lhese values, l |usL creaLed Lhem Lc lL my envlrcnmenL here. Lependlng cn Lhe amcunL c
`numNcdes` seL, vMs wlll be creaLed. l added a lccp dcwn belcw dependlng cn Lhls seLLlng, sc l dcn'L have Lc
dupllcaLe ccde a lcL. 1he lp address prelx ls used Lc easlly deLermlne Lhe (sLaLlc) lP address cr Lhe server. 1he
numbers wlll be ccunLed upwards lncremenLally, sc ycu wlll end up wlLh cur servers accesslble Lhrcugh
`l92.l68.56.l0l` Lc `l92.l68.56.l04`.
# 0e11he humbeJ o1 RAh 1oJ each hode
coh11g.vm.pJov1deJ "v1J1uabox" do ]v]
v.cus1om1ze |"mod11yvm", .1d, "--memoJy", 1024]
ehd
1hls ccnlg blcck ls needed Lc lncrease Lhe memcry slze c Lhe vM. 8y deaulL lLs less Lhan LhaL (l belleve arcund
5l2M8), and l wanL Lc have l glg c k^M cr each. O ccurse, eel ree Lc Lune LhaL value cr remcve lL ccmpleLely.
# PJov1s1oh 1he seJveJ 11se1 w11h puppe1
coh11g.vm.pJov1s1oh .puppe1
8ecause we'll be uslng puppeL Lc prcvlslcn Lhe server scLware, we need Lc Lell vagranL Lc use lL.
# 0owhoad 1he 1h111a box 1Jom 1h1s uJ
coh11g.vm.box_uJ = "h11p.//11es.vagJah1up.com/pJec1se64.box"
vagranL reuses predelned lmages sc ycu dcn'L have Lc relnsLall everyLhlng rcm scraLch. Here we use a
predelned UbunLu l2.04 64blL bcx.
# PJov1s1oh Coh11g 1oJ each o1 1he hodes
1.up1o{humhodes) do ]hum]
hodehame = {"hode" + hum.1o_s).1o_sym
coh11g.vm.de11he hodehame do ]hode]
hode.vm.box = "pJec1se64"
hode.vm.he1woJk .pJ1va1e_he1woJk, 1p. 1pAddJPJe11x + hum.1o_s
hode.vm.pJov1deJ "v1J1uabox" do ]v]
v.hame = "Couchbase SeJveJ hode " + hum.1o_s
ehd
A Couchbase CIuster In MInutes wIth Vagrant and Iuppet... http.//bIog.couchbase.com/couchbase-cIuster-mInutes-va...
3 oI 9 01/17/2014 02.19 IM
ehd
ehd
1hls ccde blcck ccnlgures each vlrLual machlne. Glven Lhe number c ncdes we wanL Lc creaLe, cr each c Lhem
lL asslgns an lP address and glves lL a descrlpLlve name lnslde vlrLualbcx. l ycu wanL Lc add serverdependenL
seLLlngs, Lhe ncde blcck ls Lhe rlghL place cr lL. OLherwlse lL wlll plck Lhe clusLer wlde seLLlngs delned ln Lhe
ccnlg blcck.
Ncw l we wculd run `vagranL up` rcm Lhe ccmmand llne ln Lhls dlrecLcry, we'd geL cur UbunLu machlnes seLup
where we cculd SSH lnLc, buL ncLhlng else wculd be lnsLalled. ln crder Lc make Lhem dc scmeLhlng, we wanL Lc
lnsLall Ccuchbase Server. PuppeL ls a sysLem auLcmaLlcn scLware and very gccd aL prcvlslcnlng sysLems. vagranL
has amazlng suppcrL cr lL, all we need Lc ls creaLe a `deaulL.pp` lle lnslde a `manlesLs` dlrecLcry LhaL lccks
llke Lhls:
exec { "couchbase-seJveJ-souJce".
commahd => "/usJ/b1h/wge1 h11p.//packages.couchbase.com/Jeeases/2.0.1/couchbase-seJveJ-
eh1eJpJ1se_x86_64_2.0.1.deb",
cwd => "/home/vagJah1/",
cJea1es => "/home/vagJah1/couchbase-seJveJ-eh1eJpJ1se_x86_64_2.0.1.deb",
be1oJe => Package|`couchbase-seJveJ`]
}
exec { "1hs1a-deps".
commahd => "/usJ/b1h/ap1-ge1 1hs1a 1bss0.9.8",
be1oJe => Package|`couchbase-seJveJ`]
}
package { "couchbase-seJveJ".
pJov1deJ => dpkg,
ehsuJe => 1hs1aed,
souJce => "/home/vagJah1/couchbase-seJveJ-eh1eJpJ1se_x86_64_2.0.1.deb"
}
LeL's gc cver Lhe lnLernals cnce mcre.
exec { "couchbase-seJveJ-souJce".
A Couchbase CIuster In MInutes wIth Vagrant and Iuppet... http.//bIog.couchbase.com/couchbase-cIuster-mInutes-va...
4 oI 9 01/17/2014 02.19 IM
commahd => "/usJ/b1h/wge1 h11p.//packages.couchbase.com/Jeeases/2.0.1/couchbase-seJveJ-
eh1eJpJ1se_x86_64_2.0.1.deb",
cwd => "/home/vagJah1/",
cJea1es => "/home/vagJah1/couchbase-seJveJ-eh1eJpJ1se_x86_64_2.0.1.deb",
be1oJe => Package|`couchbase-seJveJ`]
}
ln puppeL, we delne scme Lasks LhaL we wanL Lc run. 1hls Lask execuLes a shell ccmmand wqet and sLcres Lhe lle
lnslde Lhe hcme dlrecLcry c Lhe user. We Lell puppeL Lc dcwnlcad Lhe deblan package c Lhe server. NcLe LhaL
Lhere ls a bejore dependency Lc Lhe package lnsLallaLlcn Lask, because we can'L lnsLall lL becre Lhe lle wasn'L
dcwnlcaded.
exec { "1hs1a-deps".
commahd => "/usJ/b1h/ap1-ge1 1hs1a 1bss0.9.8",
be1oJe => Package|`couchbase-seJveJ`]
}
We alsc need Lc lnsLall `llbssl0.9.8` cn Lhe server, Lhls ls Lhe cnly dependency lL has. We use Lhe ccmmand llne
Lccl aptqet cr Lhls.
package { "couchbase-seJveJ".
pJov1deJ => dpkg,
ehsuJe => 1hs1aed,
souJce => "/home/vagJah1/couchbase-seJveJ-eh1eJpJ1se_x86_64_2.0.1.deb"
}
llnally, we can lnsLall Lhe deblan package rcm ccuchbaseserver, because Lhe lle ls ln place and all dependencles
are saLlsled.
O ccurse, Lhls puppeL lle ls very slmple and l'm ycu can dc much mcre wlLh lL (and maybe even slmplly lL mcre)
buL cr my needs lL ls mcre Lhan encugh. l l wanL a dlerenL server verslcn, l |usL need Lc change Lhe puppeL lle
and pclnL lL Lc Lhe new deblan package.
Ncw l we run aqraot up agaln, much mcre happens. NcLe LhaL l ycu wanL Lc play wlLh ycur puppeL lles, ycu can
alsc use aqraot pro|s|oo Lc apply Lhe changes whlle Lhe ncde ls runnlng.
A Couchbase CIuster In MInutes wIth Vagrant and Iuppet... http.//bIog.couchbase.com/couchbase-cIuster-mInutes-va...
5 oI 9 01/17/2014 02.19 IM
l everyLhlng ls ckay, Lhe cuLpuL shculd lcck llke Lhls:
BJ1hg1hg mach1he `hode1` up w11h `v1J1uabox` pJov1deJ...
BJ1hg1hg mach1he `hode2` up w11h `v1J1uabox` pJov1deJ...
BJ1hg1hg mach1he `hode3` up w11h `v1J1uabox` pJov1deJ...
BJ1hg1hg mach1he `hode4` up w11h `v1J1uabox` pJov1deJ...
|hode1] CeaJ1hg ahy pJev1ousy se1 1oJwaJded poJ1s...
|hode1] CJea11hg shaJed 1odeJs me1ada1a...
|hode1] CeaJ1hg ahy pJev1ousy se1 he1woJk 1h1eJ1aces...
|hode1] PJepaJ1hg he1woJk 1h1eJ1aces based oh coh11guJa11oh...
|hode1] FoJwaJd1hg poJ1s...
|hode1] -- 22 => 2222 {adap1eJ 1)
|hode1] Ruhh1hg ahy vh cus1om1za11ohs...
|hode1] Boo11hg vh...
|hode1] Wa111hg 1oJ vh 1o boo1. Th1s cah 1ake a 1ew m1hu1es.
|hode1] vh boo1ed ahd Jeady 1oJ use!
|hode1] Coh11guJ1hg ahd ehab1hg he1woJk 1h1eJ1aces...
|hode1] houh11hg shaJed 1odeJs...
|hode1] -- /vagJah1
|hode1] -- /1mp/vagJah1-puppe1/mah11es1s
|hode1] Ruhh1hg pJov1s1oheJ. puppe1...
Ruhh1hg Puppe1 w11h de1au1.pp...
s1d1h. 1s ho1 a 11y
ho11ce. /S1age|ma1h]//Exec|1hs1a-deps]/Je1uJhs. execu1ed success1uy
ho11ce. F1h1shed ca1aog Juh 1h 0.77 secohds
.... moJe 1oJ a 1he o1heJ hodes.
Ycu can Lhen pclnL ycur brcwser Lc 192.168.56.10j14] and wcrk wlLh ycur Ccuchbase clusLer. l ycu are dcne
wlLh lL, ycu can use Lhe aqraot la|t ccmmand Lc shuL lL dcwn cleanly. very handy ls alsc aqraot suspeod, whlch
wlll save Lhe sLaLe c Lhe ncdes lnsLead c shuLLlng Lhem dcwn ccmpleLely.
l ycu wanL Lc lnLeracL wlLh cne c Lhe ncdes lnsLead c Lhe whcle clusLer, ycu can always specly Lhe ncde
ldenLller. lcr example, l ycu wanL Lc sLarL cnly Lhe lrsL ncde ycu can dc lL wlLh Lhe aqraot up oode1 ccmmand.
A Couchbase CIuster In MInutes wIth Vagrant and Iuppet... http.//bIog.couchbase.com/couchbase-cIuster-mInutes-va...
6 oI 9 01/17/2014 02.19 IM
LccumenLaLlcn (hLLp:www.ccuchbase.ccmdccs)
lcrums (hLLp:www.ccuchbase.ccmccmmunlLlesqanda)
OPLN SOURCL (H11P:IIWWW.COUCH8ASL.COMICOUCH8ASL-OPLN-SOURCL-PROjLC1)
Ccuchbase Prc|ecL (hLLp:www.ccuchbase.ccmccuchbasecpenscurceprc|ecL)
Ccuchbase vs. CcuchL8 (hLLp:www.ccuchbase.ccmccuchbasevsccuchdb)
COMMLRCIAL (H11P:IIWWW.COUCH8ASL.COMICON1AC1)
SubscrlpLlcns 8 SuppcrL (hLLp:www.ccuchbase.ccmccuchbasesuppcrL)
1ralnlng 8 Servlces (hLLp:www.ccuchbase.ccmccuchbaseservlces)
NLWS (H11P:IIWWW.COUCH8ASL.COMINLWS-AND-LVLN1S)
Ccuchbase 8lcg (hLLp:blcg.ccuchbase.ccm)
NewsleLLer (hLLp:lnc.ccuchbase.ccmNewsleLLerSlgnup.hLml)
Press keleases (hLLp:www.ccuchbase.ccmpressreleases)
8uzz (hLLp:www.ccuchbase.ccmbuzz)
FOLLOW US
(hLLp:www.acebcck.ccm
pages
Ccuchbase
l590359308l3922)
(hLLp:LwlLLer.ccm
ccuchbase)
(hLLp:www.llnkedln.ccm
ccmpany
ccuchbase)
(hLLps:plus.gccgle.ccm
ulll6265933027l54ll7867
pcsLs)
LANGUAGLS Lngllsh (ccuchbaseclusLermlnuLesvagranLandpuppeL)
(|pccuchbaseclusLermlnuLesvagranLandpuppeL) (krccuchbaseclusLermlnuLesvagranLandpuppeL)
CUS1OMLk LOGlN | 1LkMS Ol SLkvlCL | Pklv^CY POLlCY | 1k^LLM^kK POLlCY | Sl1LM^P
zo: COUCH8^SL ^ll rlghLs reserved.
A Couchbase CIuster In MInutes wIth Vagrant and Iuppet... http.//bIog.couchbase.com/couchbase-cIuster-mInutes-va...
9 oI 9 01/17/2014 02.19 IM

You might also like