3. CHANGELOG
#cag hs rcrs
hne ot eod
vm/t/ot
i echss
vm/t/otae
i echsnm
#otoal rbo
pinly eot
rbo
eot
#t rfehrp ls
o ers eo it
sd atgtudt
uo p-e pae
#t isaludts
o ntl pae
sd atgtugae
uo p-e prd
sd atgtisaltu m
uo p-e ntl mx c
ht:/w.nrwutnt21/51/euiga-bnusre/
tp/wwadeal.e/000/7scrn-nuut-evr
sd sst - ntiv.ofalacp_orerue0
uo ycl w e.p4cn.l.cetsuc_ot=
sd sst ? ntiv.ofdfutacp_orerue0
uo ycl- e.p4cn.eal.cetsuc_ot=
w
sd attd - isaldnhss
uo piue y ntl eyot
sd attd - isaltgr
uo piue y ntl ie
sd attd - isalpa
uo piue y ntl sd
sd ckoti
uo hrokt
4. ... BUT WHAT IF
there are more servers
change log for every one
I want to setup development environment
manually go through the changelog
and probably do mistakes
the changelog has some blank places
usually it is not that detailed
Holy crap... now what?
7. ALTERNATIVES
Of course there are many:
Puppet
CFEngine
Capistrano
Fabric
glu
...
There is a difference between infrastructure management and
deployment management.
9. CHEF
Solo
for local/one node
no central repository of configuration
Server
installed internally or bought from Opscode
central repository of cookbooks
easy to install on supported OS
Ubuntu
13. COOKBOOKS
managed by Knife
source code stored in Git repository
uploaded to the Chef Server
downloaded by Chef Client on a particular Node
14. HOW TO START COOKING?
You do not need to know Ruby up-front
=
wheew for Javist ;)
but
http://docs.opscode.com/just_enough_ruby_for_chef.html
15. NEXT
Install Chef Workstation if it does not exist
Set up Git repo ( BB | GitHub | ... )
git clone git://github.com/opscode/chef-repo.git
Follow the guide precisely
Note: I keep separate user for development and separate for
deployment
16. WRITE FIRST COOKBOOK
It is simple
kiecobo cet hprc
nf okok rae yei
c hprc
d yei
vmrcpsdfutr
i eie/eal.b
you get along with 90% of what is already there for most recipes
you are fine with basic programming techniques
kthnii
ice nt
testing is important
17. TESTING
gmisalts-ice -pe
e ntl etkthn -r
gmisalbrsefb>
e ntl ekhl<r
gmisalkthnvgatb>
e ntl ice-arn<r
SSH to running Vagrant machine when test-kitchen is executed
/hfrp/okok/yei/kthnkthnvgatdfutuut-24 vgatsh
ce-eocoboshprc.ice/ice-arn/eal-bnu10$ arn s
When everything is ready, "fire in the hole"
vm.ice.m
i kthnyl
kthnts
ice et
19. NOTABLE RESOURCES
http://docs.opscode.com/resource.html
drcoy"tpfle"d
ietr /m/odr o
onr"ot
we ro"
gop"ot
ru ro"
md 05
oe 75
ato :rae
cin cet
ed
n
ue "yei"d
sr hprc o
spot :aaehm = tu
uprs mng_oe > re
hm "hm/{yei_sr"
oe /oe#hprcue}
sel"bnbs"
hl /i/ah
ato :rae
cin cet
ed
n
rmt_ie"yei_ude d
eoefl hprcbnl" o
pt hprcsc
ah yei_r
onrhprcue
we yei_sr
suc nd[hprc]'gn'[bnl_r'
ore oe'yei'[aet]'udeul]
md 064
oe 04
ed
n
20. OTHER
tmlt "ecii./{evc_ae"d
epae /t/ntd#srienm} o
ato :raei_isn
cin cet_fmsig
onr"ot
we ro"
md 070
oe 00
suc "yei-gn.r"
ore hprcaeteb
vrals
aibe(
:evc_ae= srienm,
srienm > evc_ae
:gndr= hprcaeti,
aeti > yei_gndr
:sr= hprcue,
ue > yei_sr
:aahm = jv_oe
jv_oe > aahm
)
ed
n
sriesrienm d pten"gn-{yei_eso}
evc evc_ae o atr aet#hprcvrin"
ato [:nbe :tr ]
cin
eal, sat
ed
n
bs "xrc_c"d cd:Fl.inm(c_onpt)
ah etattc o w :iedraetcdw_ah
cd <-O
oe <EH
con- #nd.c.sr:{oetcgop #nd.c.oain
hw R {oetcue}#nd.c.ru} {oetclcto}
EH
O
ed
n
21. NOTABLE HINTS
(re)create, not update
rather don¡¯t update file, find a way how to create it at once
more detailed steps then you expected
if you thought there are 10 steps what to execute in such an
automated way in your head, there are 60 at least
cookbook wrapper pattern
describe the possibility to override resources in the
¡°cookbook wrapper¡±