diff --git a/examples.html b/examples.html
index 540f8aef292..9b918945168 100644
--- a/examples.html
+++ b/examples.html
@@ -285,8 +285,8 @@ Be sure to use a high enough –forks value if you want to get
very quickly. After the time limit (in seconds) runs out (-B), the process on
the remote nodes will be terminated.
Any module other than copy or template can be
-backgrounded. Typically you’ll be backgrounding shell commands or
-software upgrades only.
+backgrounded. Typically you’ll be backgrounding long-running
+shell commands or software upgrades only.
@@ -297,7 +297,7 @@ software upgrades only.
diff --git a/faq.html b/faq.html
index 0220592e355..b4982e4bf87 100644
--- a/faq.html
+++ b/faq.html
@@ -346,7 +346,7 @@ tasks – whether for a QA sytem, build system, or anything you can think of
diff --git a/gettingstarted.html b/gettingstarted.html
index 0d5fc650aa8..e44ecde3c05 100644
--- a/gettingstarted.html
+++ b/gettingstarted.html
@@ -288,7 +288,7 @@ you already have a working infrastructure!
diff --git a/index.html b/index.html
index 6ca31b09259..085399eace8 100644
--- a/index.html
+++ b/index.html
@@ -267,6 +267,7 @@ you with questions about Ansible.
Ansible playbooks are a configuration and multinode deployment system. Ansible-playbook is the tool
+
ansible-playbook
Name
ansible-playbook — run an ansible playbook
Synopsis
ansible-playbook <filename.yml> … [options]
DESCRIPTION
Ansible playbooks are a configuration and multinode deployment system. Ansible-playbook is the tool
used to run them. See the project home page (link below) for more information.
@@ -193,9 +194,9 @@ on remote hosts or through ansible playbooks.
Examples of using modules with the Python API
-
Nearly all modules take key=value parameters. Some modules take
-no parameters, and the command module just takes arguments for the
-command you want to run.
+
Nearly all modules take key=value parameters, space delimited. Some modules take
+no parameters, and the command/shell modules simply take the string
+of the command you want to run.
All modules return JSON format data, though if you are using the
command line or playbooks, you don’t really need to know much about
that.
@@ -207,12 +208,17 @@ noted, all modules support change hooks.
The command module takes the command name followed by a list of
-arguments, space delimited. This is the only module that does not use
-key=value style parameters.
+arguments, space delimited.
+
If you want to run a command through the shell (say you are using
+‘<’, ‘>’, ‘|’, etc), you actually want the ‘shell’ module instead.
+The ‘command’ module is much more secure as it’s not affected by the user’s environment.
Example usage:
/sbin/shutdown -t now
-
The given shell command will be executed on all selected nodes.
+
The given command will be executed on all selected nodes. It will not
+be processed through the shell, so variables like “$HOME” and
+operations like “<”, “>”, “|”, and “&” will not work. As such, all
+paths to commands must be fully qualified.
This module does not support change hooks and returns the return code
from the program as well as timing information about how long the
command was running for.
@@ -309,8 +315,26 @@ tell their source. All variables are then bubbled up to the caller.
The shell module takes the command name followed by a list of
+arguments, space delimited. It is almost exactly like the command module
+but runs the command through the shell rather than directly.
+
Example usage:
+
find . | grep *.txt
+
+
The given command will be executed on all selected nodes.
+
If you want to execute a command securely and predicably, it may
+be better to use the ‘command’ module instead. Best practices
+when writing playbooks will follow the trend of using ‘command’
+unless ‘shell’ is explicitly required. When running ad-hoc commands,
+use your best judgement.
+
This module does not support change hooks and returns the return code
+from the program as well as timing information about how long the
+command was running for.
diff --git a/playbooks.html b/playbooks.html
index c0a8b32b602..eb386730e9e 100644
--- a/playbooks.html
+++ b/playbooks.html
@@ -540,7 +540,7 @@ Let’s run a playbook using a parallelism level of 10:
diff --git a/rst/examples.rst b/rst/examples.rst
index 246ef257d14..474368fee26 100644
--- a/rst/examples.rst
+++ b/rst/examples.rst
@@ -132,8 +132,8 @@ very quickly. After the time limit (in seconds) runs out (``-B``), the process o
the remote nodes will be terminated.
Any module other than :ref:`copy` or :ref:`template` can be
-backgrounded. Typically you'll be backgrounding shell commands or
-software upgrades only.
+backgrounded. Typically you'll be backgrounding long-running
+shell commands or software upgrades only.
diff --git a/rst/modules.rst b/rst/modules.rst
index f19f6249df5..3cc439c6ffd 100644
--- a/rst/modules.rst
+++ b/rst/modules.rst
@@ -13,9 +13,9 @@ on remote hosts or through ansible playbooks.
:doc:`api`
Examples of using modules with the Python API
-Nearly all modules take ``key=value`` parameters. Some modules take
-no parameters, and the command module just takes arguments for the
-command you want to run.
+Nearly all modules take ``key=value`` parameters, space delimited. Some modules take
+no parameters, and the command/shell modules simply take the string
+of the command you want to run.
All modules return JSON format data, though if you are using the
command line or playbooks, you don't really need to know much about
@@ -34,19 +34,26 @@ command
```````
The command module takes the command name followed by a list of
-arguments, space delimited. This is the only module that does not use
-``key=value`` style parameters.
+arguments, space delimited.
+
+If you want to run a command through the shell (say you are using
+'<', '>', '|', etc), you actually want the 'shell' module instead.
+The 'command' module is much more secure as it's not affected by the user's environment.
Example usage::
/sbin/shutdown -t now
-The given shell command will be executed on all selected nodes.
+The given command will be executed on all selected nodes. It will not
+be processed through the shell, so variables like "$HOME" and
+operations like "<", ">", "|", and "&" will not work. As such, all
+paths to commands must be fully qualified.
This module does not support change hooks and returns the return code
from the program as well as timing information about how long the
command was running for.
+
.. _copy:
copy
@@ -167,6 +174,32 @@ tell their source. All variables are then bubbled up to the caller.
``key=value`` pair in the JSON file for use in templating.
+.. _shell:
+
+shell
+`````
+
+The shell module takes the command name followed by a list of
+arguments, space delimited. It is almost exactly like the command module
+but runs the command through the shell rather than directly.
+
+Example usage::
+
+ find . | grep *.txt
+
+The given command will be executed on all selected nodes.
+
+If you want to execute a command securely and predicably, it may
+be better to use the 'command' module instead. Best practices
+when writing playbooks will follow the trend of using 'command'
+unless 'shell' is explicitly required. When running ad-hoc commands,
+use your best judgement.
+
+This module does not support change hooks and returns the return code
+from the program as well as timing information about how long the
+command was running for.
+
+
.. _template:
template
diff --git a/search.html b/search.html
index 6e4a6828d9b..9c89b00805b 100644
--- a/search.html
+++ b/search.html
@@ -187,7 +187,7 @@ alt="Fork me on GitHub"
diff --git a/searchindex.js b/searchindex.js
index aaeaf6fa709..b7bc16a398c 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{},terms:{all:[0,1,2,3,4,5,6,7,8],concept:8,forget:5,selinux:5,consum:3,pluggabl:3,invent:5,prefix:[4,5,8],code:[2,3,4,8],sleep:5,abil:3,follow:[3,4,5,6,7,8],scp:8,bubbl:[4,5],decid:[3,8],middl:[],depend:[3,5],sensit:[2,5],graph:3,elsewher:8,program:[2,3,4,5,1],mcollect:2,exit:7,blindingli:2,spec:5,introduc:2,"case":3,sourc:[2,3,4,5,7,8],everi:[5,1,8],string:4,without:3,fals:[4,1],exception:3,difficult:3,failur:[7,3,4],veri:[7,2,3,5,8],affect:5,implicitli:3,parameter:5,magic:[3,5],level:[4,5,1],id_rsa:[0,8],list:[2,1,3,4,5,6,8,9],"try":3,item:[7,1],sane:3,larg:3,team:3,dotnet:1,saltstack:2,straight:8,librari:1,pkg:[4,5,8],pleas:3,alic:5,natur:[4,5],seper:3,direct:[3,5],batch:3,chef:[2,3],second:[5,8],design:[2,3,5],pass:[4,5],download:[0,2],further:[5,1],port:[3,8],even:[3,5,8],what:[0,1,2,3,4,5],compar:3,favcolor:[5,8],trivial:[2,4],section:[2,4,5],async_statu:8,current:[3,8],abbrevi:1,version:[4,5,8],suspect:3,directori:[4,5],"new":3,net:[],varnam:5,ever:2,"public":5,told:5,xml:1,hasn:3,hash:[4,1],abov:[5,8],conf:[5,8],eckersberg:[3,1],gener:3,never:3,privat:5,here:[2,4,5,8],shouldn:[3,5],let:[5,1,8],address:[6,3,4],path:4,along:5,sinc:8,valu:[4,5,1,8],wait:5,box:[2,4],great:[2,3,5],tire:3,ahead:5,precursor:2,likin:3,reason:3,later:[5,8],prior:4,pick:[3,8],action:[2,4,5],extrem:0,implement:7,commonli:[8,1],ourselv:5,employe:1,via:[0,2],regardless:[2,3,5,1],extra:3,solut:3,modul:[0,2,3,4,5,7,8],put:[0,5,8],unix:3,"boolean":1,instal:[0,2,3,4,5,8],total:5,cloud:3,yourself:0,httpd:[5,8],from:[0,2,3,4,5,8],describ:[4,5],would:[4,5,8],commun:3,"super":2,visit:2,two:[0,5,6],noarch:0,few:5,live:0,handler:[2,5,8],call:[4,5,1],usr:[7,4,5,8],handl:3,msg:[7,4],suppos:5,type:[7,3],tell:[4,5,8],more:[0,2,3,4,5,6],sort:3,flat:5,desir:5,idempot:[3,4,5,8],comparison:[2,3],notif:3,sshd:2,notic:3,train:3,agent:[0,8],particular:[2,5],central:3,compani:3,easiest:[2,5],starter:5,must:[4,5],manpag:0,none:7,join:2,ibm:2,module_arg:7,dest:[4,5,8],alia:6,setup:[2,4,8],work:[0,2,3,5,6,8],knows_oop:1,dev:3,remain:2,minimum:5,can:[0,1,2,3,4,5,6,7,8],erb:3,learn:[0,1,2,3,5,6],under:5,purpos:4,root:[2,5],control:[2,4,5,8],want:[1,3,4,5,7,8],tar:0,give:1,process:[2,3,5,8],lock:5,chip:2,sudo:[0,5],share:[4,5],templat:[0,2,3,4,5,8],high:8,critic:2,tag:[0,4],acm:8,explor:0,onlin:1,occur:[],nearli:[4,5,1],alwai:[3,4,5],cours:3,multipl:[6,3,5,8],newlin:[],secur:3,rather:3,anoth:[3,1],ping:[0,7,4,2],uptim:7,write:[2,1,3,4,5,8],how:[0,1,2,3,4,5,6,7,8],anyon:3,hop:3,instead:[3,4],somevalu:5,config:[2,5],stock:4,map:5,financ:2,resourc:[2,3,5],referenc:[6,5],max:8,clone:0,after:[3,5,8],lab:[2,3],befor:[3,4,5,8],ohai_:[4,5],tier:5,end:[3,4,5],data:[2,1,3,4,5,7,8],parallel:[2,3,5,8],man:[2,9],"short":[2,3],orchestr:[2,3,5],practic:[3,1],happi:2,lame:1,explicit:4,element:4,issu:[2,3],inform:[7,4],mango:1,combin:1,allow:[3,5],exclus:5,order:[3,5],talk:[0,5],origin:2,help:[2,1],xmpp:3,over:[2,3,8],move:[4,5],orang:1,becaus:[3,1],elit:1,rpmbuild:0,comma:[],hierarchi:3,effici:[3,5],suffer:3,mainli:3,paramet:[4,5],facter_:[4,5],jid:8,overlord:0,group:[2,7,5,6],cli:7,taboot:3,yaml:[2,3,5,1],pend:5,rapidli:7,infrastructur:[6,0,3,5,2],yum:[2,4,5,8],mail:[2,3,8,6],job_statu:[],main:5,might:5,easier:[3,1],wouldn:3,them:[1,3,4,5,6,8],good:3,"return":[7,2,3,4],thei:[3,4,5,6,7,8],food:1,safe:5,dai:3,scene:4,"break":5,framework:[7,2,3],jinja2:[0,3,4,5,8],half:3,now:[0,3,4,5,6],discuss:3,nor:4,choic:[2,5],multiprocess:[0,3],vidal:3,name:[2,1,4,5,6,8],anyth:[3,4],edit:0,simpl:[2,1,3,5,7,8],didn:3,unlik:[3,5],separ:5,mode:[3,5,8],timeout:5,each:[3,4,5,1,8],debug:1,found:7,updat:[4,8],mean:[3,4,5,1],harm:[],mental:3,due:3,michael:2,laserllama:2,hard:3,idea:[2,3,5],wordpress:5,realli:[3,4,5,1],backport:0,expect:5,our:1,happen:[3,4],patch:3,event:[3,4,5],out:[2,3,4,5,7,8],variabl:[2,3,4,5,8],safeti:6,network:2,space:4,bserver:0,reboot:[5,8],content:[0,3,5,2],adapt:[],rel:4,internet:2,print:7,got:3,merg:3,correct:[2,3,5,1],red:[2,3,8],smart:8,painless:2,insid:5,advanc:[7,3,5],ntp:8,given:[3,4,8],pub:8,facter:[2,3,4,5,8],small:[3,5,1],fixm:[],base:[2,3,5],believ:3,dictionari:[5,1],ask:[2,3],org:0,featur:[6,3,5],bash:[0,3,8],basi:5,pyyaml:0,sytem:3,indent:1,recogn:5,launch:5,could:[7,3,5],synchron:5,fqdn:8,keep:5,thing:[2,3,5,1,6],place:2,isn:[2,3],adrian:3,retain:3,think:3,frequent:[2,3,5],first:[0,2,3,4,5,8],oper:[2,5,8],softwar:[2,3,4,8],rang:2,notifi:[2,3,5,8],render:4,feel:1,onc:[3,4,5],number:4,placehold:5,mai:[7,0,3,5,1],instruct:[0,3],alreadi:[0,3,4,5],puppet:[2,3],"long":[2,3,4,5,8],massiv:2,open:[3,5],differ:[8,0,3,5,2],convent:4,script:[7,2,3,8],associ:1,top:[3,4,5],mkdir:[],system:[0,2,3,4,5,6,8],construct:[7,3],too:[2,3,5,1],statement:[2,5],termin:8,john:[3,1],"final":[],rpath:2,iptabl:[],shell:[2,4,8],option:[7,3,8,9],especi:3,welcom:2,tool:[2,3,4,5,7,8,9],copi:[2,4,8],took:3,specifi:[3,4,5,1,8],retyp:0,github:[0,5,2],pars:3,checkout:[3,4],off:[2,3,5],than:[0,1,2,3,4,5,8],wide:3,kind:3,silli:[],target:[2,6],keyword:[3,5],provid:1,remov:[4,5,8],dive:5,richer:3,structur:[],banana:[],project:[8,0,3,5,2],reus:[2,5],architect:2,were:[3,5],minut:[3,8],uses_cv:1,provis:3,pre:0,sai:[3,5,8],bootstrap:[2,3],runner:7,favorit:2,mind:3,argument:[4,5],hypothet:[],dash:1,packag:[2,3,4,8],aforement:6,complet:[3,5],have:[0,1,2,3,5,6],need:[0,1,3,4,5,8],seem:3,cfengin:3,seek:4,well:[0,3,4,5],paramiko:0,sat:3,imagin:5,engin:8,squar:[],client:2,note:[6,4,5,8],also:[0,1,2,3,4,5,6,7,8],ideal:[2,3],contact:[7,0,3,4],build:[7,0,3],indic:[4,5],datacent:5,hook:4,singl:[3,5],blue:5,begin:[8,1],sure:[5,8],unless:[4,5],distribut:[0,3,2],deploy:[2,3,5,8],track:8,reach:2,deleg:3,discov:5,most:[3,4,1],plai:[4,5],regular:5,plan:3,deploi:[2,3,4,5,8],bsd:3,why:2,don:[6,3,4,5,8],doc:2,adopt:3,cover:[3,8],doe:[2,3,4,6],meanwhil:3,bracket:6,snapshot:4,runtim:5,clean:3,databas:5,usual:[],awesom:[2,5],show:[5,8],cheat:3,text:3,verbos:4,syntax:[2,3,5,1],bring:[3,5],directli:[4,5,8],raleigh:2,particularli:5,playbook:[0,1,2,3,4,5,6,7,8,9],hack:2,radic:2,protocol:4,dereferenc:5,fine:3,find:3,rotat:5,impact:3,absolut:4,onli:[0,3,4,5,8],explicitli:5,locat:4,just:[0,1,2,3,4,5,8],pretti:[7,3],transact:5,configur:[0,1,2,3,4,5,6,8],apach:[3,5,8],state:[3,4,5,8],somefil:5,should:[3,4,1],somevar:5,about:[0,1,2,3,4,5],local:4,yml:5,long_running_oper:8,contribut:[2,8],variou:[3,4,5],get:[0,1,2,3,5,8],express:[2,7,5,1],stop:[3,4,8],autom:[3,5],repo:[4,8],ssl:3,obviou:2,ssh:[0,3,8,2],increas:5,requir:[0,3,4,5,2],uvh:0,mdehaan:5,bar:[6,5],method:7,sha:4,stuff:8,common:[5,1],contain:[3,4,5],usabl:[2,5],through:[0,4,2],where:[2,3,4],view:[2,9],respond:5,set:[0,3,4,5],hierachi:3,quirk:1,arbitari:1,see:[0,1,2,3,4,5,6,8,9],sec:5,result:[7,4,5],fail:[7,3,5],charact:1,setsebool:5,best:[3,5],subject:5,planet:2,statu:[5,8],still:3,extend:[2,3],expert:3,down:[7,5],pattern:[2,7,5,6],someth:[2,3,4,5,8],discoveri:4,restart:[3,4,5,8],written:[2,4,5,8],won:[5,8],between:[3,5],"import":[7,5],experi:3,across:3,attribut:4,altern:[5,8],solo:3,kei:[0,4,5,1],style:4,extens:[2,3],job:[8,1],entir:[3,5],aserv:0,recent:3,pull:3,webapp:[3,8],timmi:5,addit:[2,5],both:3,delimit:4,goal:2,howev:3,equal:3,against:[2,3,5,6],etc:[0,2,3,5,6,8],instanc:5,logic:5,mani:[5,8],com:[0,7,5,6],among:3,assur:5,simpli:[4,5],author:2,figur:3,overview:1,inspir:[2,3],chmod:5,distil:3,fashion:3,colon:5,shutdown:4,linux:[2,3],typic:[3,8],poll:[2,5,8],mission:2,coupl:3,platform:3,multiplay:2,three:6,been:[2,3],json:[7,2,3,4,1],much:[2,3,4,5,1],treat:3,basic:[0,1,2,3,4,5,6],quickli:[2,8],capistrano:[2,3],fire:[2,3,5],rubi:[3,4,8,1],ani:[2,3,4,5,7,8],likes_emac:1,togeth:5,func:[2,3],atlanta:[5,8],those:[3,4,5],emploi:1,authorized_kei:0,multi:[2,3,5],look:[6,5,8],replac:[],hoc:[2,3,5,8],servic:[2,4,5,8],md5sum:4,straighten:3,vars_fil:5,trick:[2,5],defin:5,"while":[3,5],match:5,facter_hostnam:5,error:3,exist:[2,5],dehaan:2,layer:3,motd:[5,8],max_client:5,stdout:7,almost:3,technolog:2,site:[3,9],memcach:5,dag:3,myapp:8,module_nam:7,sever:[3,5,1],around:3,http_port:5,develop:[0,3,1,2],inventori:[2,4,5,6],minim:0,perform:3,make:[0,3,4,5,8],ohai:[2,3,4,5,8],cross:3,same:[6,5,1,8],member:1,python:[0,1,2,3,4,7,8],complex:[2,3,5],success:4,document:[0,1,3,5,7,8],ansibl:[0,1,2,3,4,5,6,7,8,9],higher:5,http:4,hostnam:[7,5],denot:6,nest:4,permit:[],rail:3,effect:[],remot:[0,4,5,8],assign:[2,5],fruit:1,user:[2,3,5],extern:[2,5],php:8,distutil:[0,2],aka:5,tune:[],built:[0,3,8],lower:3,appropri:3,kept:[3,5],scenario:4,mention:5,setenforc:5,compos:5,seth:3,spent:3,non:[2,5],exampl:[0,1,2,3,4,5,6,7,8,9],command:[0,2,3,4,5,6,7,8,9],thi:[0,1,3,4,5,6,8],choos:4,programm:[7,3],model:5,spend:3,latest:[4,5,8],next:5,identifi:3,execut:[7,2,3,4,5],less:[0,3,2],excel:[2,3],rest:9,detail:[2,7,8],kill:[],irc:2,human:1,heavili:3,skill:1,simultan:8,languag:[0,1,2,3,4,5,6],web:[7,3,5,9,8],versu:2,easi:[2,3,4,6],mix:[6,5],trigger:[3,4,5],except:[],littl:[2,3],add:[0,3,8],other:[0,1,2,3,4,5,8],simplejson:0,notori:3,els:[2,5],save:5,hat:[2,3],app:3,kick:[3,5,8],take:[3,4,5],bin:[0,7,4,5,8],applic:[7,3,5],which:[0,6,5,1,2],format:[2,1,3,4,5,6,8],read:[0,7,1],fast:2,dark:7,game:2,know:[3,4,1],background:[2,8],step:[3,4,5],world:[0,3],bit:[3,4],password:[0,5],daemon:[2,3],motorola:2,like:[1,3,4,5,6,8],specif:[6,7,8],header:6,signal:[3,5],arbitrari:3,manual:[3,5],integ:4,divers:2,api:[7,2,3,4],necessari:[4,8],either:[3,4],lose:8,popular:2,async:[3,5],architectur:[2,3],page:[9,0,3,1,2],shed:3,drop:4,often:3,webserv:[6,5,8],suppli:4,some:[0,3,4,5,2],back:[3,5],dead:2,born:3,heritag:3,server:[2,3,4,5,8],transport:[2,3],tmp:8,scale:[2,3],forcibl:[],lead:3,bottom:5,rpm:[0,2],avoid:[0,3,4],though:[2,3,4,5],definit:5,thank:3,per:7,tracker:2,leav:5,select:[2,4,5,6],foo:[6,5,8],complic:[2,3],refer:8,machin:[0,3,4,5,8],core:[2,3],encourag:3,yamllint:1,run:[0,1,3,4,5,7,8],itself:7,power:[7,2,3,5],usag:[4,8],devop:2,web2:7,vhost:5,host:[0,2,3,4,5,6,7,8],web1:7,promot:3,repositori:0,output:[3,5],meantim:3,appli:3,task:[2,3,5,8],simpler:[3,8],src:[4,5,8],sbin:[4,5,8],actual:[3,4,5],othervar:[],surround:[],simul:5,freenod:2,srv:[5,8],messag:[7,3],done:[3,5],industri:2,disabl:5,block:5,ntp_server:8,own:[2,3,4,5],real:0,bounc:[4,5],within:[3,4],contriv:[],sneaker:[],automat:4,upgrad:[4,8],noth:[5,1],pair:[4,1],multinod:3,ensur:[3,5,8],chang:[4,5,8],perl:8,soon:[],your:[0,2,3,4,5,6,8],risk:5,manag:[0,1,2,3,4,5,6,8],behind:[3,4],git:[0,3,4,8,2],fabric:[2,3],wai:[0,3,5,8],aren:3,transfer:[2,8],support:[2,3,4,5],question:[2,3],submit:3,custom:[3,5],avail:[0,1,3,4,5,7,8,9],start:[0,1,2,3,4,5,8],appl:1,interfac:3,includ:[2,4,5],lot:[2,8],suit:[3,5],"var":[2,5],datastructur:7,individu:6,far:[2,1],fork:[7,3,5,8],head:[4,8],form:[5,1],enough:[6,3,8],lint:1,yeah:[],taken:[3,5],line:[0,1,2,3,4,5,6,7,8,9],"true":[4,1],congratul:0,info:8,strawberri:1,"throw":3,made:[3,4,8],possibl:[6,5,8],whether:[7,3],wish:[0,1,3,5,6,7],caller:4,maximum:5,until:[0,5],asynchron:[2,5],record:1,below:5,limit:[2,5,8],rerun:5,otherwis:4,problem:[3,1],similar:[2,4,5],email:2,connect:5,curv:[2,3],gather:3,tasti:1,creat:[2,3],certain:[3,5],doesn:[2,5,1],repres:[5,1],strongli:3,cobbler:[2,3],file:[0,1,2,4,5,6,8],bob:5,ship:4,check:[3,4,5,8],probabl:[3,5],echo:[0,5],again:[3,5],coder:3,googl:2,dbserver:[6,5],when:[3,4,5,8],unnecessari:4,"default":[2,3,5,6],declar:5,futur:0,varieti:3,test:[0,3,4],assum:5,you:[0,1,2,3,4,5,6,8],external_var:5,node:[0,2,3,4,5,8],contend:3,sysadmin:3,wildcard:6,liter:4,sequenc:2,"class":[2,5],asciidoc:0,releas:[0,3],intent:[],log:5,deferenc:[],gap:3,"60k":[2,3],stai:5,sphinx:0,faster:5,amp:0,anywher:5,reliabl:3,portion:6,emerg:2,potenti:[],time:[0,1,2,3,4,5,6,8],push:[3,5],hello:0},objtypes:{},titles:["Downloads & Getting Started","YAML Syntax","Introducing Ansible","Frequently Asked Questions","Ansible Modules","Playbooks","The Inventory File, Patterns, and Groups","Using the Python API","Command Line Examples","Man Pages"],objnames:{},filenames:["gettingstarted","YAMLSyntax","index","faq","modules","playbooks","patterns","api","examples","man"]})
\ No newline at end of file
+Search.setIndex({objects:{},terms:{all:[0,1,2,3,4,5,6,7,8],concept:8,forget:5,myapp:8,perl:8,selinux:5,consum:3,pluggabl:3,invent:5,prefix:[4,5,8],code:[2,3,4,8],sleep:5,higher:5,abil:3,follow:[3,4,5,6,7,8],scp:8,content:[0,3,5,2],decid:[3,8],middl:[],depend:[3,5],wish:[0,1,3,5,6,7],sensit:[2,5],graph:3,elsewher:8,specif:[6,7,8],program:[2,3,4,5,1],mcollect:2,leav:5,blindingli:2,spec:5,introduc:2,emploi:1,sourc:[2,3,4,5,7,8],everi:[5,1,8],string:4,fals:[4,1],multi:[2,3,5],liter:4,failur:[7,3,4],veri:[7,2,3,5,8],affect:[4,5],implicitli:3,parameter:5,magic:[3,5],level:[4,5,1],id_rsa:[0,8],list:[2,1,3,4,5,6,8,9],"try":3,item:[7,1],sane:3,form:[5,1],team:3,dotnet:1,saltstack:2,spent:3,servic:[2,4,5,8],playbook:[0,1,2,3,4,5,6,7,8,9],pleas:3,alic:5,trend:4,natur:[4,5],seper:3,direct:[3,5],straighten:3,chef:[2,3],second:[5,8],design:[2,3,5],pass:[4,5],download:[0,2],further:[5,1],submit:3,port:[3,8],even:[3,5,8],what:[0,1,2,3,4,5],compar:3,favcolor:[5,8],fine:3,section:[2,4,5],async_statu:8,current:[3,8],"public":5,abbrevi:1,version:[4,5,8],suspect:3,"new":3,net:[],varnam:5,ever:2,method:7,told:5,impact:3,hasn:3,hash:[4,1],facter_hostnam:5,eckersberg:[3,1],gener:3,never:3,privat:5,here:[2,4,5,8],shouldn:[3,5],let:[5,1,8],address:[6,3,4],path:4,along:5,sinc:8,valu:[4,5,1,8],wait:5,box:[2,4],great:[2,3,5],pretti:[7,3],ahead:5,precursor:2,likin:3,fixm:[],adopt:3,host:[0,2,3,4,5,6,7,8],prior:4,pick:[3,8],action:[2,4,5],extrem:0,implement:7,commonli:[8,1],ourselv:5,employe:1,via:[0,2],regardless:[2,3,5,1],extra:3,apach:[3,5,8],modul:[0,2,3,4,5,7,8],ask:[2,3],unix:3,"boolean":1,instal:[0,2,3,4,5,8],total:5,cloud:3,kei:[0,4,5,1],httpd:[5,8],from:[0,2,3,4,5,8],describ:[4,5],would:[4,5,8],commun:3,"super":2,visit:2,two:[0,5,6],noarch:0,few:5,live:0,handler:[2,5,8],call:[4,5,1],usr:[7,4,5,8],msg:[7,4],somevar:5,kick:[3,5,8],type:[7,3],tell:[4,5,8],more:[0,2,3,4,5,6],sort:3,flat:5,exit:7,desir:5,idempot:[3,4,5,8],src:[4,5,8],python:[0,1,2,3,4,7,8],notif:3,sshd:2,notic:3,train:3,agent:[0,8],particular:[2,5],actual:[3,4,5],compani:3,easiest:[2,5],starter:5,must:[4,5],placehold:5,none:7,join:2,ibm:2,module_arg:7,alia:6,setup:[2,4,8],work:[0,2,3,4,5,6,8],knows_oop:1,dev:3,remain:2,minimum:5,can:[0,1,2,3,4,5,6,7,8],erb:3,learn:[0,1,2,3,5,6],under:5,purpos:4,root:[2,5],control:[2,4,5,8],congratul:0,want:[1,3,4,5,7,8],tar:0,give:1,process:[2,3,4,5,8],lock:5,chip:2,sudo:[0,5],share:[4,5],templat:[0,2,3,4,5,8],high:8,critic:2,tag:[0,4],surround:[],explor:0,onlin:1,occur:[],contribut:[2,8],alwai:[3,4,5],cours:3,multipl:[6,3,5,8],newlin:[],lame:1,rather:[3,4],anoth:[3,1],ping:[0,7,4,2],uptim:7,write:[2,1,3,4,5,8],how:[0,1,2,3,4,5,6,7,8],anyon:3,hop:3,instead:[3,4],somevalu:5,config:[2,5],stock:4,map:5,express:[2,7,5,1],resourc:[2,3,5],referenc:[6,5],max:8,clone:0,after:[3,5,8],lab:[2,3],befor:[3,4,5,8],ohai_:[4,5],tier:5,end:[3,4,5],data:[2,1,3,4,5,7,8],parallel:[2,3,5,8],man:[2,9],"short":[2,3],orchestr:[2,3,5],practic:[3,4,1],read:[0,7,1],secur:[3,4],explicit:4,element:4,issu:[2,3],inform:[7,4],mango:1,combin:1,allow:[3,5],exclus:5,order:[3,5],talk:[0,5],oper:[2,4,5,8],help:[2,1],portion:6,xmpp:3,over:[2,3,8],move:[4,5],orang:1,becaus:[3,1],elit:1,rpmbuild:0,comma:[],hierarchi:3,suffer:3,mainli:3,paramet:[4,5],facter_:[4,5],jid:8,overlord:0,group:[2,7,5,6],cli:7,minim:0,taboot:3,better:4,yaml:[2,3,5,1],pend:5,rapidli:7,infrastructur:[6,0,3,5,2],bin:[0,7,4,5,8],mail:[2,3,8,6],job_statu:[],main:5,might:5,easier:[3,1],wouldn:3,them:[1,3,4,5,6,8],good:3,"return":[7,2,3,4],thei:[3,4,5,6,7,8],food:1,safe:5,dai:3,number:4,"break":5,framework:[7,2,3],jinja2:[0,3,4,5,8],half:3,aka:5,now:[0,3,4,5,6],discuss:3,nor:4,choic:[2,5],multiprocess:[0,3],vidal:3,name:[2,1,4,5,6,8],anyth:[3,4],edit:0,simpl:[2,1,3,5,7,8],didn:3,instruct:[0,3],separ:5,exampl:[0,1,2,3,4,5,6,7,8,9],mode:[3,5,8],timeout:5,each:[3,4,5,1,8],debug:1,found:7,updat:[4,8],spend:3,mean:[3,4,5,1],harm:[],mental:3,michael:2,laserllama:2,hard:3,idea:[2,3,5],realli:[3,4,5,1],backport:0,expect:5,our:1,happen:[3,4],event:[3,4,5],out:[2,3,4,5,7,8],variabl:[2,3,4,5,8],safeti:6,network:2,space:4,reboot:[5,8],bubbl:[4,5],adapt:[],rel:4,internet:2,print:7,got:3,merg:3,correct:[2,3,5,1],red:[2,3,8],qualifi:4,insid:5,advanc:[7,3,5],ntp:8,differ:[8,0,3,5,2],pub:8,small:[3,5,1],reason:3,base:[2,3,5],believ:3,dictionari:[5,1],put:[0,5,8],org:0,bash:[0,3,8],basi:5,pyyaml:0,sytem:3,indent:1,recogn:5,launch:5,argument:[4,5],could:[7,3,5],synchron:5,fqdn:8,keep:5,thing:[2,3,5,1,6],yum:[2,4,5,8],isn:[2,3],adrian:3,retain:3,think:3,frequent:[2,3,5],first:[0,2,3,4,5,8],origin:2,softwar:[2,3,4,8],rang:2,notifi:[2,3,5,8],render:4,feel:1,onc:[3,4,5],scene:4,yourself:0,mai:[0,1,3,4,5,7],unlik:[3,5],alreadi:[0,3,4,5],puppet:[2,3],"long":[2,3,4,5,8],massiv:2,open:[3,5],given:[3,4,8],bracket:6,convent:4,script:[7,2,3,8],associ:1,top:[3,4,5],mkdir:[],system:[0,2,3,4,5,6,8],construct:[7,3],inventori:[2,4,5,6],appl:1,too:[2,3,5,1],statement:[2,5],gather:3,termin:8,john:[3,1],"final":[],rpath:2,iptabl:[],shell:[2,4,8],option:[7,3,8,9],especi:3,tool:[2,3,4,5,7,8,9],copi:[2,4,8],took:3,specifi:[3,4,5,1,8],retyp:0,github:[0,5,2],pars:3,kept:[3,5],exactli:4,than:[0,1,2,3,4,5,8],wide:3,kind:3,silli:[],target:[2,6],keyword:[3,5],provid:1,remov:[4,5,8],dive:5,richer:3,structur:[],banana:[],project:[8,0,3,5,2],reus:[2,5],architect:2,were:[3,5],minut:[3,8],uses_cv:1,provis:3,pre:0,sai:[3,4,5,8],bootstrap:[2,3],runner:7,favorit:2,mind:3,ani:[2,3,4,5,7,8],seth:3,dash:1,packag:[2,3,4,8],aforement:6,complet:[3,5],have:[0,1,2,3,5,6],interfac:3,need:[0,1,3,4,5,8],seem:3,cfengin:3,seek:4,paramiko:0,sat:3,imagin:5,engin:8,squar:[],contact:[7,0,3,4],note:[6,4,5,8],also:[0,1,2,3,4,5,6,7,8],ideal:[2,3],client:2,build:[7,0,3],indic:[4,5],environ:4,datacent:5,hook:4,singl:[3,5],blue:5,begin:[8,1],sure:[5,8],unless:[4,5],distribut:[0,3,2],deploy:[2,3,5,8],track:8,reach:2,deleg:3,discov:5,most:[3,4,1],plai:[4,5],regular:5,plan:3,deploi:[2,3,4,5,8],bsd:3,why:2,strawberri:1,don:[6,3,4,5,8],doc:2,later:[5,8],cover:[3,8],doe:[2,3,4,6],meanwhil:3,declar:5,snapshot:4,runtim:5,clean:3,pattern:[2,7,5,6],built:[0,3,8],latest:[4,5,8],awesom:[2,5],show:[5,8],cheat:3,text:3,verbos:4,syntax:[2,3,5,1],connect:5,bring:[3,5],directli:[4,5,8],raleigh:2,particularli:5,pkg:[4,5,8],hack:2,radic:2,identifi:3,trivial:[2,4],find:[3,4],rotat:5,xml:1,absolut:4,onli:[0,3,4,5,8],explicitli:[4,5],locat:4,execut:[7,2,3,4,5],tire:3,transact:5,configur:[0,1,2,3,4,5,6,8],solut:3,written:[2,4,5,8],somefil:5,should:[3,4,1],suppos:5,about:[0,1,2,3,4,5],local:4,yml:5,custom:[3,5],long_running_oper:8,nearli:[4,5,1],variou:[3,4,5],get:[0,1,2,3,5,8],financ:2,stop:[3,4,8],autom:[3,5],repo:[4,8],ssl:3,obviou:2,ssh:[0,3,8,2],increas:5,grep:4,requir:[0,3,4,5,2],uvh:0,mdehaan:5,bar:[6,5],patch:3,sha:4,releas:[0,3],stuff:8,common:[5,1],contain:[3,4,5],usabl:[2,5],through:[0,4,2],where:[2,3,4],view:[2,9],respond:5,set:[0,3,4,5],hierachi:3,arbitari:1,see:[0,1,2,3,4,5,6,8,9],sec:5,result:[7,4,5],fail:[7,3,5],charact:1,setsebool:5,best:[3,4,5],subject:5,asynchron:[2,5],statu:[5,8],still:3,extend:[2,3],expert:3,down:[7,5],databas:5,someth:[2,3,4,5,8],discoveri:4,restart:[3,4,5,8],state:[3,4,5,8],won:[5,8],between:[3,5],"import":[7,5],experi:3,across:3,attribut:4,altern:[5,8],solo:3,manpag:0,style:[],extens:[2,3],job:[8,1],entir:[3,5],aserv:0,webapp:[3,8],timmi:5,addit:[2,5],both:3,delimit:4,goal:2,howev:3,equal:3,against:[2,3,5,6],etc:[0,2,3,4,5,6,8],instanc:5,logic:5,mani:[5,8],com:[0,7,5,6],among:3,assur:5,simpli:[4,5],figur:3,overview:1,format:[2,1,3,4,5,6,8],inspir:[2,3],chmod:5,distil:3,fashion:3,colon:5,shutdown:4,linux:[2,3],poll:[2,5,8],mission:2,coupl:3,platform:3,multiplay:2,three:6,been:[2,3],json:[7,2,3,4,1],much:[2,3,4,5,1],treat:3,basic:[0,1,2,3,4,5,6],futur:0,quickli:[2,8],capistrano:[2,3],fire:[2,3,5],rubi:[3,4,8,1],anywher:5,upgrad:[4,8],togeth:5,func:[2,3],predic:4,atlanta:[5,8],those:[3,4,5],"case":3,authorized_kei:0,exception:3,look:[6,5,8],replac:[],hoc:[2,3,4,5,8],straight:8,md5sum:4,permit:[],batch:3,vars_fil:5,trick:[2,5],defin:5,"while":[3,5],match:5,abov:[5,8],error:3,cobbler:[2,3],dehaan:2,layer:3,motd:[5,8],max_client:5,stdout:7,almost:[3,4],technolog:2,site:[3,9],memcach:5,dag:3,conf:[5,8],module_nam:7,sever:[3,5,1],around:3,http_port:5,develop:[0,3,1,2],welcom:2,author:2,perform:3,make:[0,3,4,5,8],ohai:[2,3,4,5,8],cross:3,same:[6,5,1,8],member:1,handl:3,complex:[2,3,5],document:[0,1,3,5,7,8],ansibl:[0,1,2,3,4,5,6,7,8,9],difficult:3,http:4,hostnam:[7,5],again:[3,5],nest:4,painless:2,rail:3,effect:[],remot:[0,4,5,8],assign:[2,5],fruit:1,user:[2,3,4,5],extern:[2,5],php:8,distutil:[0,2],typic:[3,8],tune:[],recent:3,dark:7,lower:3,appropri:3,off:[2,3,5],scenario:4,mention:5,setenforc:5,compos:5,well:[0,3,4,5],hypothet:[],non:[2,5],without:3,command:[0,2,3,4,5,6,7,8,9],thi:[0,1,3,4,5,6,8],choos:4,programm:[7,3],model:5,dereferenc:5,usual:[],protocol:4,just:[0,1,2,3,4,5,8],less:[0,3,2],when:[3,4,5,8],rest:9,detail:[2,7,8],kill:[],irc:2,human:1,heavili:3,skill:1,simultan:8,languag:[0,1,2,3,4,5,6],web:[7,3,5,9,8],versu:2,easi:[2,3,4,6],mix:[6,5],except:[],littl:[2,3],add:[0,3,8],other:[0,1,2,3,4,5,8],notori:3,els:[2,5],save:5,hat:[2,3],app:3,smart:8,take:[3,4,5],real:0,applic:[7,3,5],which:[0,6,5,1,2],quirk:1,dest:[4,5,8],judgement:4,game:2,know:[3,4,1],background:[2,8],world:[0,3],bit:[3,4],password:[0,5],daemon:[2,3],motorola:2,like:[1,3,4,5,6,8],success:4,header:6,signal:[3,5],arbitrari:3,manual:[3,5],integ:4,divers:2,api:[7,2,3,4],necessari:[4,8],either:[3,4],lose:8,popular:2,async:[3,5],external_var:5,page:[9,0,3,1,2],emerg:2,shed:3,drop:4,often:3,webserv:[6,5,8],suppli:4,some:[0,3,4,5,2],back:[3,5],dead:2,born:3,heritag:3,server:[2,3,4,5,8],transport:[2,3],tmp:8,txt:4,forcibl:[],lead:3,bottom:5,rpm:[0,2],avoid:[0,3,4],though:[2,3,4,5],definit:5,thank:3,per:7,tracker:2,larg:3,select:[2,4,5,6],foo:[6,5,8],complic:[2,3],refer:8,machin:[0,3,4,5,8],core:[2,3],encourag:3,yamllint:1,run:[0,1,3,4,5,7,8],power:[7,2,3,5],usag:[4,8],asciidoc:0,web2:7,vhost:5,step:[3,4,5],web1:7,promot:3,repositori:0,output:[3,5],meantim:3,appli:3,task:[2,3,5,8],soon:[],simpler:[3,8],comparison:[2,3],sbin:[4,5,8],central:3,othervar:[],acm:8,simul:5,srv:[5,8],messag:[7,3],done:[3,5],industri:2,disabl:5,block:5,ntp_server:8,own:[2,3,4,5],effici:[3,5],bounc:[4,5],within:[3,4],contriv:[],sneaker:[],automat:4,due:3,noth:[5,1],pair:[4,1],multinod:3,ensur:[3,5,8],chang:[4,5,8],next:5,bserver:0,your:[0,2,3,4,5,6,8],risk:5,manag:[0,1,2,3,4,5,6,8],behind:[3,4],git:[0,3,4,8,2],fabric:[2,3],wai:[0,3,5,8],aren:3,transfer:[2,8],support:[2,3,4,5],question:[2,3],fast:2,happi:2,avail:[0,1,3,4,5,7,8,9],start:[0,1,2,3,4,5,8],trigger:[3,4,5],wordpress:5,includ:[2,4,5],lot:[2,8],suit:[3,5],"var":[2,5],datastructur:7,individu:6,fork:[7,3,5,8],head:[4,8],simplejson:0,enough:[6,3,8],lint:1,yeah:[],taken:[3,5],line:[0,1,2,3,4,5,6,7,8,9],"true":[4,1],freenod:2,info:8,pull:3,"throw":3,made:[3,4,8],possibl:[6,5,8],whether:[7,3],checkout:[3,4],caller:4,maximum:5,until:[0,5],planet:2,record:1,below:5,limit:[2,5,8],rerun:5,otherwis:4,problem:[3,1],similar:[2,4,5],email:2,facter:[2,3,4,5,8],curv:[2,3],featur:[6,3,5],tasti:1,creat:[2,3],certain:[3,5],doesn:[2,5,1],repres:[5,1],strongli:3,exist:[2,5],file:[0,1,2,4,5,6,8],home:4,bob:5,ship:4,check:[3,4,5,8],probabl:[3,5],echo:[0,5],denot:6,coder:3,googl:2,dbserver:[6,5],excel:[2,3],unnecessari:4,"default":[2,3,5,6],likes_emac:1,librari:1,varieti:3,test:[0,3,4],assum:5,you:[0,1,2,3,4,5,6,8],architectur:[2,3],node:[0,2,3,4,5,8],contend:3,sysadmin:3,wildcard:6,fulli:4,sequenc:2,"class":[2,5],devop:2,push:[3,5],scale:[2,3],intent:[],log:5,deferenc:[],gap:3,"60k":[2,3],stai:5,sphinx:0,faster:5,amp:0,directori:[4,5],reliabl:3,itself:7,place:2,potenti:[],time:[0,1,2,3,4,5,6,8],far:[2,1],hello:0},objtypes:{},titles:["Downloads & Getting Started","YAML Syntax","Introducing Ansible","Frequently Asked Questions","Ansible Modules","Playbooks","The Inventory File, Patterns, and Groups","Using the Python API","Command Line Examples","Man Pages"],objnames:{},filenames:["gettingstarted","YAMLSyntax","index","faq","modules","playbooks","patterns","api","examples","man"]})
\ No newline at end of file