2. WHAT IS ANSIBLE?
Started in February 2012
By Michael DeHaan
More than 600 Contributors
Orchestration Engine
Configuration Management
Application Deployment
Continuous Delivery
19. INVENTORY
Contains all the managed hosts
Can contain variables
Flat file(s) or script (dynamic inventory)
Can interact with your own CMDB
Multiple inventory sources
23. ANSIBLE
asbeal- pn nil l m ig o
asbedm - stp
nil eo m eu
asbefoeapecm- “ursi/eot
nil o.xml.o a /s/bnrbo”
asbedm - fl - "et/r/o/.x md=0"nil eo m ie a ds=svfoatt oe60 o
asbedm-n - ym- "aehtdsaeisald
nil eooe m u a nm=tp tt=ntle"
asbedm-n - srie- "aehtdsaesatd
nil eooe m evc a nm=tp tt=tre"
26. ROLES
Reusable list of tasks
Has one goal (eg deploy apache)
Reusable
--hss dm
ot: eo
gte_at:Fle
ahrfcs as
cneto:lcl
oncin oa
sra:1
eil
vr:
as
i_ot:
nprs
-8
0
rls
oe:
-htd
tp
-msl
yq
-itbe
pals
27. TEMPLATES
Jinja2 templating engine
Use of variables in files
Loops, Conditionals, Filters, ...
<Poyblne:/{blne_ae}>
rx aacr/{ aacrnm }
{ frhs i gop[dm-e' %
% o ot n rus'eowb] }
BlneMme ht:/{hsvr[ot.nil_t1iv.drs }
aacrebr tp/{ otashs]asbeeh.p4ades }
{ edo %
% nfr }
Odralwdn
re lo,ey
Alwfo al
lo rm l
</rx>
Poy
31. ASYNCHRONOUS ACTIONS AND POLLING
--hss al
ot: l
rmt_sr ro
eoeue: ot
tss
ak:
-nm:smlt ln rnigo (5sc,wi fru t 4,pl eey5
ae iuae og unn p 1 e) at o p o 5 ol vr
cmad /i/le 1
omn: bnsep 5
ayc 4
sn: 5
pl:5
ol
32. CHECK MODE
Uae asbepabo foyl-cek
sg: nil-lyok o.m -hc
-tss
ak:
-nm:ti ts i rnee i cekmd
ae hs ak s u vn n hc oe
cmad /oehn/orn-ee-ncekmd
omn: smtigt/u -vni-hc-oe
awy_u:ys
lasrn e
Uae asbepabo foyl-cek-df -lmtfoeapecm
sg: nil-lyok o.m -hc -if -ii o.xml.o
33. ROLLING UPDATES
--nm:ts pa
ae et ly
hss wbevr
ot: esres
sra:3
eil
MAX FAILURE PERCENTAGE
--hss wbevr
ot: esres
mxfi_ecnae 3
a_alpretg: 0
sra:1
eil 0
34. DELEGATION
--hss wbevr
ot: esres
sra:5
eil
tss
ak:
-nm:tk oto la blne po
ae ae u f od aacr ol
cmad /s/i/aeoto_ol{ ivnoyhsnm }
omn: urbntk_u_fpo { netr_otae }
dlgt_o lablne.xml.o
eeaet: odaacreapecm
-nm:ata seswudg hr
ae cul tp ol o ee
ym nm=cewbsaksaelts
u: aeam-e-tc tt=aet
-nm:adbc t la blne po
ae d ak o od aacr ol
cmad /s/i/d_akt_ol{ ivnoyhsnm }
omn: urbnadbc_opo { netr_otae }
dlgt_o lablne.xml.o
eeaet: odaacreapecm
35. LOCAL ACTIONS/PLAYBOOKS
-#..
.
tss
ak:
-nm:rcrieycp flsfo mngmn sre t tre
ae eusvl oy ie rm aaeet evr o agt
lclato:cmadryc- /aht/ie { ivnoyhsnm }:pt/otre
oa_cin omn sn a pt/ofls { netr_otae }/aht/ag
Uae asbepabo pabo.m -cneto=oa
sg: nil-lyok lyokyl -oncinlcl
--hss dm
ot: eo
cneto:lcl
oncin oa
36. ERROR HANDLING / OVERRIDING OUTPUT
--nm:ti wl ntb cutda afiue
ae hs il o e one s
alr
cmad /i/as
omn: bnfle
inr_ros ys
goeerr: e
-nm:ti cmadpit FIE we i fis
ae hs omn rns ALD hn t al
cmad /s/i/xml-omn - - omn: urbneapecmad x y z
rgse:cmadrsl
eitr omn_eut
fie_hn "FIE'i cmadrsl.ter
aldwe: 'ALD n omn_eutsdr"
-sel /s/i/ilbs -md=tk m t tervr
hl: urbnblyas -oe"ae e o h ie"
rgse:bs_eut
eitr asrsl
cagdwe:"asrsl.c! 2
hne_hn bs_eutr = "
37. LOOKUPS
--hss al
ot: l
tss
ak:
-dbg mg"{lou(ev,HM' } i a evrnetvral"
eu: s={ okp'n''OE) } s n niomn aibe
-dbg mg"{ie } i aln fo tersl o ti cmad
eu: s={ tm } s
ie rm h eut f hs omn"
wt_ie:
ihlns
-ct/t/od
a ecmt
-dbg mg"{lou(pp''ae)} i terwrsl o rnigti cmad
eu: s={ okp'ie,dt' } s h a eut f unn hs omn"
-dbg mg"{lou(rdsk' 'ei:/oahs:39smky)} i vlei
eu: s={ okp'ei_v, rds/lclot67,oee' } s au n
-dbg mg"{lou(dsx' 'xml.o' } i aDSTTrcr freape
eu: s={ okp'ntt, eapecm) } s
N X eod o xml.
-dbg mg"{lou(tmlt' '/oetmlt.2)} i avlefo eaut
eu: s={ okp'epae, .sm_epaej' } s
au rm vla
38. PROMPTS
--hss al
ot: l
rmt_sr ro
eoeue: ot
vr:
as
fo:"aeo"
rm cmlt
vr_rmt
aspop:
nm:"hti yu nm?
ae wa s or ae"
qet "hti yu qet"
us: wa s or us?
vr_rmt
aspop:
-nm:"ees_eso"
ae rlaevrin
pop:"rdc rlaevrin
rmt Pout ees eso"
dfut "."
eal: 10