<h1>API & Integrations<aclass="headerlink"href="#api-integrations"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#table-of-contents">API & Integrations</a><aclass="headerlink"href="#api-integrations"title="Permalink to this headline">¶</a></h1>
<p>There are two major ways to use Ansible from an API perspective. The primary way
<p>There are two major ways to use Ansible from an API perspective. The primary way
is to use the Ansible python API to control nodes. Ansible is written in its own
is to use the Ansible python API to control nodes. Ansible is written in its own
API so you have a considerable amount of power there.</p>
API so you have a considerable amount of power there.</p>
<p>Also covered here, Ansible’s
<p>Also covered here, Ansible’s
list of hosts, groups, and variables assigned to each host can be driven from
list of hosts, groups, and variables assigned to each host can be driven from
external sources. We’ll start with the Python API.</p>
external sources. We’ll start with the Python API.</p>
<divclass="contents topic"id="table-of-contents">
<pclass="topic-title first"><cite>Table of contents</cite></p>
<ulclass="simple">
<li><aclass="reference internal"href="#api-integrations"id="id2">API & Integrations</a><ul>
<h2>External Inventory<aclass="headerlink"href="#external-inventory"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">External Inventory</a><aclass="headerlink"href="#external-inventory"title="Permalink to this headline">¶</a></h2>
<p>Often a user of a configuration management system will want to keep inventory
<p>Often a user of a configuration management system will want to keep inventory
in a different system. Frequent examples include LDAP, <aclass="reference external"href="http://cobbler.github.com">Cobbler</a>,
in a different system. Frequent examples include LDAP, <aclass="reference external"href="http://cobbler.github.com">Cobbler</a>,
or a piece of expensive enterprisey CMDB software. Ansible easily supports all
or a piece of expensive enterprisey CMDB software. Ansible easily supports all
...
@@ -422,9 +432,9 @@ e.g.
...
@@ -422,9 +432,9 @@ e.g.
</ul>
</ul>
<p>Both <ttclass="docutils literal"><spanclass="pre">ec2_security_group_ids</span></tt> and <ttclass="docutils literal"><spanclass="pre">ec2_security_group_names</span></tt> are comma-separated lists of all security groups. Each EC2 tag is a variable in the format <ttclass="docutils literal"><spanclass="pre">ec2_tag_KEY</span></tt>.</p>
<p>Both <ttclass="docutils literal"><spanclass="pre">ec2_security_group_ids</span></tt> and <ttclass="docutils literal"><spanclass="pre">ec2_security_group_names</span></tt> are comma-separated lists of all security groups. Each EC2 tag is a variable in the format <ttclass="docutils literal"><spanclass="pre">ec2_tag_KEY</span></tt>.</p>
<p>To see the complete list of variables available for an instance, run the script by itself:</p>
<p>To see the complete list of variables available for an instance, run the script by itself:</p>
<h2>Always Mention State<aclass="headerlink"href="#always-mention-state"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Always Mention State</a><aclass="headerlink"href="#always-mention-state"title="Permalink to this headline">¶</a></h2>
<p>The ‘state’ parameter is optional to a lot of modules. Whether
<p>The ‘state’ parameter is optional to a lot of modules. Whether
‘state=present’ or ‘state=absent’, it’s always best to leave that
‘state=present’ or ‘state=absent’, it’s always best to leave that
parameter in your playbooks to make it clear, especially as some
parameter in your playbooks to make it clear, especially as some
modules support additional states.</p>
modules support additional states.</p>
</div>
</div>
<divclass="section"id="group-by-roles">
<divclass="section"id="group-by-roles">
<h2>Group By Roles<aclass="headerlink"href="#group-by-roles"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Group By Roles</a><aclass="headerlink"href="#group-by-roles"title="Permalink to this headline">¶</a></h2>
<p>A system can be in multiple groups. See <aclass="reference internal"href="patterns.html"><em>Inventory & Patterns</em></a>. Having groups named after things like
<p>A system can be in multiple groups. See <aclass="reference internal"href="patterns.html"><em>Inventory & Patterns</em></a>. Having groups named after things like
<em>webservers</em> and <em>dbservers</em> is repeated in the examples because it’s a very powerful concept.</p>
<em>webservers</em> and <em>dbservers</em> is repeated in the examples because it’s a very powerful concept.</p>
<p>This allows playbooks to target machines based on role, as well as to assign role specific variables
<p>This allows playbooks to target machines based on role, as well as to assign role specific variables
using the group variable system.</p>
using the group variable system.</p>
</div>
</div>
<divclass="section"id="directory-organization">
<divclass="section"id="directory-organization">
<h2>Directory Organization<aclass="headerlink"href="#directory-organization"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Directory Organization</a><aclass="headerlink"href="#directory-organization"title="Permalink to this headline">¶</a></h2>
<p>Playbooks should be organized like this:</p>
<p>Playbooks should be organized like this:</p>
<divclass="highlight-python"><pre># root of source control repository
<divclass="highlight-python"><pre># root of source control repository
├── acme/
├── acme/
...
@@ -240,14 +253,9 @@ these sections do, see <a class="reference internal" href="playbooks.html"><em>P
...
@@ -240,14 +253,9 @@ these sections do, see <a class="reference internal" href="playbooks.html"><em>P
are contained in ‘acme/handlers/main.yml’. As a reminder, handlers are mostly just used to notify services to restart
are contained in ‘acme/handlers/main.yml’. As a reminder, handlers are mostly just used to notify services to restart
when things change, and these are described in <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a>.</p>
when things change, and these are described in <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a>.</p>
<p>Including more than one setup file or more than one handlers file is of course legal.</p>
<p>Including more than one setup file or more than one handlers file is of course legal.</p>
<p>Having playbooks be able to include other playbooks is coming in a
future release. See <aclass="reference external"href="https://github.com/ansible/ansible/issues/538">Issue 538</a>.</p>
<p>Until then, to manage your entire site, simply execute all of your playbooks together, in the order desired.
You don’t have to do this though. It’s fine to select sections of your infrastructure to manage at a single time.
You may wish to construct simple shell scripts to wrap calls to ansible-playbook.</p>
<h2>Bundling Ansible Modules With Playbooks<aclass="headerlink"href="#bundling-ansible-modules-with-playbooks"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Bundling Ansible Modules With Playbooks</a><aclass="headerlink"href="#bundling-ansible-modules-with-playbooks"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.5.</span></p>
<spanclass="versionmodified">New in version 0.5.</span></p>
<p>If a playbook has a ”./library” directory relative to it’s YAML file,
<p>If a playbook has a ”./library” directory relative to it’s YAML file,
...
@@ -256,7 +264,7 @@ automatically be in the ansible module path. This is a great way to
...
@@ -256,7 +264,7 @@ automatically be in the ansible module path. This is a great way to
keep modules that go with a playbook together.</p>
keep modules that go with a playbook together.</p>
</div>
</div>
<divclass="section"id="miscellaneous-tips">
<divclass="section"id="miscellaneous-tips">
<h2>Miscellaneous Tips<aclass="headerlink"href="#miscellaneous-tips"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Miscellaneous Tips</a><aclass="headerlink"href="#miscellaneous-tips"title="Permalink to this headline">¶</a></h2>
<p>When you can do something simply, do something simply. Do not reach
<p>When you can do something simply, do something simply. Do not reach
to use every feature of Ansible together, all at once. Use what works
to use every feature of Ansible together, all at once. Use what works
for you. For example, you should probably not need ‘vars’,
for you. For example, you should probably not need ‘vars’,
<h1>Command Line Examples And Next Steps<aclass="headerlink"href="#command-line-examples-and-next-steps"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#contents">Command Line Examples And Next Steps</a><aclass="headerlink"href="#command-line-examples-and-next-steps"title="Permalink to this headline">¶</a></h1>
<p>The following examples show how to use <cite>/usr/bin/ansible</cite> for running
<p>The following examples show how to use <cite>/usr/bin/ansible</cite> for running
ad hoc tasks. Start here.</p>
ad hoc tasks. Start here.</p>
<p>For configuration management and deployments, you’ll want to pick up on
<p>For configuration management and deployments, you’ll want to pick up on
using <cite>/usr/bin/ansible-playbook</cite>– the concepts port over directly.
using <cite>/usr/bin/ansible-playbook</cite>– the concepts port over directly.
(See <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a> for more information about those)</p>
(See <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a> for more information about those)</p>
<divclass="contents topic"id="contents">
<pclass="topic-title first">Contents</p>
<ulclass="simple">
<li><aclass="reference internal"href="#command-line-examples-and-next-steps"id="id1">Command Line Examples And Next Steps</a><ul>
<li><aclass="reference internal"href="#parallelism-and-shell-commands"id="id2">Parallelism and Shell Commands</a></li>
<h2>Parallelism and Shell Commands<aclass="headerlink"href="#parallelism-and-shell-commands"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Parallelism and Shell Commands</a><aclass="headerlink"href="#parallelism-and-shell-commands"title="Permalink to this headline">¶</a></h2>
<p>Let’s use ansible’s command line tool to reboot all web servers in Atlanta, 10 at a time. First, let’s
<p>Let’s use ansible’s command line tool to reboot all web servers in Atlanta, 10 at a time. First, let’s
set up SSH-agent so it can remember our credentials:</p>
set up SSH-agent so it can remember our credentials:</p>
@@ -257,7 +274,7 @@ get it there. This is commonly referred to as ‘idempotence’, and is
...
@@ -257,7 +274,7 @@ get it there. This is commonly referred to as ‘idempotence’, and is
However, we also recognize that running <em>ad hoc</em> commands is equally important, so Ansible easily supports both.</p>
However, we also recognize that running <em>ad hoc</em> commands is equally important, so Ansible easily supports both.</p>
</div>
</div>
<divclass="section"id="file-transfer">
<divclass="section"id="file-transfer">
<h2>File Transfer<aclass="headerlink"href="#file-transfer"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">File Transfer</a><aclass="headerlink"href="#file-transfer"title="Permalink to this headline">¶</a></h2>
<p>Here’s another use case for the <cite>/usr/bin/ansible</cite> command line. Ansible can SCP lots of files to multiple machines in parallel.</p>
<p>Here’s another use case for the <cite>/usr/bin/ansible</cite> command line. Ansible can SCP lots of files to multiple machines in parallel.</p>
<p>To transfer a file directly to many different servers:</p>
<p>To transfer a file directly to many different servers:</p>
<divclass="highlight-bash"><divclass="highlight"><pre><spanclass="nv">$ </span>ansible atlanta -m copy -a <spanclass="s2">"src=/etc/hosts dest=/tmp/hosts"</span>
<divclass="highlight-bash"><divclass="highlight"><pre><spanclass="nv">$ </span>ansible atlanta -m copy -a <spanclass="s2">"src=/etc/hosts dest=/tmp/hosts"</span>
...
@@ -281,7 +298,7 @@ same options can be passed directly to the <tt class="docutils literal"><span cl
...
@@ -281,7 +298,7 @@ same options can be passed directly to the <tt class="docutils literal"><span cl
</div>
</div>
</div>
</div>
<divclass="section"id="managing-packages">
<divclass="section"id="managing-packages">
<h2>Managing Packages<aclass="headerlink"href="#managing-packages"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Managing Packages</a><aclass="headerlink"href="#managing-packages"title="Permalink to this headline">¶</a></h2>
<p>There are modules available for yum and apt. Here are some examples
<p>There are modules available for yum and apt. Here are some examples
with <aclass="reference internal"href="modules.html#yum"><em>yum</em></a>.</p>
with <aclass="reference internal"href="modules.html#yum"><em>yum</em></a>.</p>
<p>Ensure a package is installed, but don’t update it:</p>
<p>Ensure a package is installed, but don’t update it:</p>
...
@@ -305,7 +322,7 @@ for other packages for now using the command module or (better!) contribute a mo
...
@@ -305,7 +322,7 @@ for other packages for now using the command module or (better!) contribute a mo
for other package managers. Stop by the mailing list for info/details.</p>
for other package managers. Stop by the mailing list for info/details.</p>
</div>
</div>
<divclass="section"id="users-and-groups">
<divclass="section"id="users-and-groups">
<h2>Users and Groups<aclass="headerlink"href="#users-and-groups"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Users and Groups</a><aclass="headerlink"href="#users-and-groups"title="Permalink to this headline">¶</a></h2>
<p>The <aclass="reference internal"href="modules.html#user"><em>user</em></a> module allows easy creation and manipulation of
<p>The <aclass="reference internal"href="modules.html#user"><em>user</em></a> module allows easy creation and manipulation of
existing user accounts, as well as removal of user accounts that may
existing user accounts, as well as removal of user accounts that may
exist:</p>
exist:</p>
...
@@ -318,7 +335,7 @@ exist:</p>
...
@@ -318,7 +335,7 @@ exist:</p>
how to manipulate groups and group membership.</p>
how to manipulate groups and group membership.</p>
<h2>Deploying From Source Control<aclass="headerlink"href="#deploying-from-source-control"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Deploying From Source Control</a><aclass="headerlink"href="#deploying-from-source-control"title="Permalink to this headline">¶</a></h2>
<p>Deploy your webapp straight from git:</p>
<p>Deploy your webapp straight from git:</p>
<divclass="highlight-bash"><divclass="highlight"><pre><spanclass="nv">$ </span>ansible webservers -m git -a <spanclass="s2">"repo=git://foo.example.org/repo.git dest=/srv/myapp version=HEAD"</span>
<divclass="highlight-bash"><divclass="highlight"><pre><spanclass="nv">$ </span>ansible webservers -m git -a <spanclass="s2">"repo=git://foo.example.org/repo.git dest=/srv/myapp version=HEAD"</span>
</pre></div>
</pre></div>
...
@@ -329,7 +346,7 @@ deploying Perl/Python/PHP/Ruby directly from git and then restarting
...
@@ -329,7 +346,7 @@ deploying Perl/Python/PHP/Ruby directly from git and then restarting
apache.</p>
apache.</p>
</div>
</div>
<divclass="section"id="managing-services">
<divclass="section"id="managing-services">
<h2>Managing Services<aclass="headerlink"href="#managing-services"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Managing Services</a><aclass="headerlink"href="#managing-services"title="Permalink to this headline">¶</a></h2>
<p>Ensure a service is started on all webservers:</p>
<p>Ensure a service is started on all webservers:</p>
<divclass="highlight-bash"><divclass="highlight"><pre><spanclass="nv">$ </span>ansible webservers -m service -a <spanclass="s2">"name=httpd state=started"</span>
<divclass="highlight-bash"><divclass="highlight"><pre><spanclass="nv">$ </span>ansible webservers -m service -a <spanclass="s2">"name=httpd state=started"</span>
<h2>Time Limited Background Operations<aclass="headerlink"href="#time-limited-background-operations"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Time Limited Background Operations</a><aclass="headerlink"href="#time-limited-background-operations"title="Permalink to this headline">¶</a></h2>
<p>Long running operations can be backgrounded, and their status can be
<p>Long running operations can be backgrounded, and their status can be
checked on later. The same job ID is given to the same task on all
checked on later. The same job ID is given to the same task on all
hosts, so you won’t lose track. If you kick hosts and don’t want
hosts, so you won’t lose track. If you kick hosts and don’t want
...
@@ -370,7 +387,7 @@ the remote nodes will be terminated.</p>
...
@@ -370,7 +387,7 @@ the remote nodes will be terminated.</p>
shell commands or software upgrades only. Backgrounding the copy module does not do a background file transfer. <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a> also support polling, and have a simplified syntax for this.</p>
shell commands or software upgrades only. Backgrounding the copy module does not do a background file transfer. <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a> also support polling, and have a simplified syntax for this.</p>
</div>
</div>
<divclass="section"id="limiting-selected-hosts">
<divclass="section"id="limiting-selected-hosts">
<h2>Limiting Selected Hosts<aclass="headerlink"href="#limiting-selected-hosts"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Limiting Selected Hosts</a><aclass="headerlink"href="#limiting-selected-hosts"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>What hosts you select to manage can be additionally constrained by using the ‘–limit’ parameter or
<p>What hosts you select to manage can be additionally constrained by using the ‘–limit’ parameter or
...
@@ -394,7 +411,7 @@ what their names or IP addresses are).</p>
...
@@ -394,7 +411,7 @@ what their names or IP addresses are).</p>
<p>Both of these methods can be used at the same time, and ranges can also be passed to the –limit parameter.</p>
<p>Both of these methods can be used at the same time, and ranges can also be passed to the –limit parameter.</p>
</div>
</div>
<divclass="section"id="configuration-defaults">
<divclass="section"id="configuration-defaults">
<h2>Configuration & Defaults<aclass="headerlink"href="#configuration-defaults"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Configuration & Defaults</a><aclass="headerlink"href="#configuration-defaults"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>Ansible has an optional configuration file that can be used to tune settings and also eliminate the need to pass various command line flags. The config file location is controlled by the ANSIBLE_CONFIG environment variable, if set, otherwise ~/.ansible.cfg or /etc/ansible/ansible.cfg will be loaded, whichever comes first. For those running from source, a sample configuration file lives in the examples/ directory. The RPM will install configuration into /etc/ansible/ansible.cfg automatically.</p>
<p>Ansible has an optional configuration file that can be used to tune settings and also eliminate the need to pass various command line flags. The config file location is controlled by the ANSIBLE_CONFIG environment variable, if set, otherwise ~/.ansible.cfg or /etc/ansible/ansible.cfg will be loaded, whichever comes first. For those running from source, a sample configuration file lives in the examples/ directory. The RPM will install configuration into /etc/ansible/ansible.cfg automatically.</p>
<li><aclass="reference internal"href="#what-is-ansible-s-approach-to-security"id="id10">What is Ansible’s approach to security?</a></li>
<li><aclass="reference internal"href="#how-does-ansible-scale"id="id11">How does Ansible scale?</a></li>
<li><aclass="reference internal"href="#are-transports-other-than-ssh-supported"id="id12">Are transports other than SSH supported?</a></li>
<li><aclass="reference internal"href="#what-are-some-ideal-uses-for-ansible"id="id13">What are some ideal uses for Ansible?</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<divclass="section"id="why-is-it-called-ansible">
<divclass="section"id="why-is-it-called-ansible">
<h2>Why Is It Called Ansible?<aclass="headerlink"href="#why-is-it-called-ansible"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Why Is It Called Ansible?</a><aclass="headerlink"href="#why-is-it-called-ansible"title="Permalink to this headline">¶</a></h2>
<p>One of my favorite books is Orson Scott Card’s “Ender’s Game”. In the book, the Ansible is a method of instantaneous
<p>One of my favorite books is Orson Scott Card’s “Ender’s Game”. In the book, the Ansible is a method of instantaneous
long distance “hyperspace” communication with a large number of space ships. You should read it!</p>
long distance “hyperspace” communication with a large number of space ships. You should read it!</p>
</div>
</div>
<divclass="section"id="what-inspired-ansible">
<divclass="section"id="what-inspired-ansible">
<h2>What inspired Ansible?<aclass="headerlink"href="#what-inspired-ansible"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">What inspired Ansible?</a><aclass="headerlink"href="#what-inspired-ansible"title="Permalink to this headline">¶</a></h2>
<p>Back when I worked for Red Hat and working on <aclass="reference external"href="http://cobbler.github.com/">Cobbler</a>, several of us identified a gap between
<p>Back when I worked for Red Hat and working on <aclass="reference external"href="http://cobbler.github.com/">Cobbler</a>, several of us identified a gap between
provisioning (Cobbler) and configuration management solutions (cfengine, Puppet, etc).
provisioning (Cobbler) and configuration management solutions (cfengine, Puppet, etc).
There was a need for a way to do ad-hoc tasks efficiently, and various parallel
There was a need for a way to do ad-hoc tasks efficiently, and various parallel
...
@@ -232,9 +256,9 @@ best’, and distills all of the ideas behind all of these other tools to th
...
@@ -232,9 +256,9 @@ best’, and distills all of the ideas behind all of these other tools to th
<p>I’d like to know what you think of it. Hop by the mailing list and say hi.</p>
<p>I’d like to know what you think of it. Hop by the mailing list and say hi.</p>
</div>
</div>
<divclass="section"id="comparisons">
<divclass="section"id="comparisons">
<h2>Comparisons<aclass="headerlink"href="#comparisons"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Comparisons</a><aclass="headerlink"href="#comparisons"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="vs-func">
<divclass="section"id="vs-func">
<h3>vs Func?<aclass="headerlink"href="#vs-func"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">vs Func?</a><aclass="headerlink"href="#vs-func"title="Permalink to this headline">¶</a></h3>
<p>Ansible uses SSH by default instead of SSL and custom daemons, and requires
<p>Ansible uses SSH by default instead of SSL and custom daemons, and requires
no extra software to run on managed machines. You can also write modules
no extra software to run on managed machines. You can also write modules
in any language as long as they return JSON. Ansible’s API, of course, is
in any language as long as they return JSON. Ansible’s API, of course, is
...
@@ -243,7 +267,7 @@ a configuration management and multinode orchestration layer (<a class="referenc
...
@@ -243,7 +267,7 @@ a configuration management and multinode orchestration layer (<a class="referenc
that Func didn’t have.</p>
that Func didn’t have.</p>
</div>
</div>
<divclass="section"id="vs-puppet">
<divclass="section"id="vs-puppet">
<h3>vs Puppet?<aclass="headerlink"href="#vs-puppet"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">vs Puppet?</a><aclass="headerlink"href="#vs-puppet"title="Permalink to this headline">¶</a></h3>
<p>First off, Ansible wouldn’t have happened without Puppet. Puppet took configuration
<p>First off, Ansible wouldn’t have happened without Puppet. Puppet took configuration
management ideas from cfengine and made them sane. However, I still think they can
management ideas from cfengine and made them sane. However, I still think they can
be much simpler.</p>
be much simpler.</p>
...
@@ -271,7 +295,7 @@ in jinja2 in a way just like Puppet does with erb. Ansible also has it’s
...
@@ -271,7 +295,7 @@ in jinja2 in a way just like Puppet does with erb. Ansible also has it’s
so usage of facter is not required to get variables about the system.</p>
so usage of facter is not required to get variables about the system.</p>
</div>
</div>
<divclass="section"id="vs-chef">
<divclass="section"id="vs-chef">
<h3>vs Chef?<aclass="headerlink"href="#vs-chef"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">vs Chef?</a><aclass="headerlink"href="#vs-chef"title="Permalink to this headline">¶</a></h3>
<p>Much in the ways Ansible is different from Puppet. Chef is notoriously hard
<p>Much in the ways Ansible is different from Puppet. Chef is notoriously hard
to set up on the server, and requires that you know how to program in Ruby to
to set up on the server, and requires that you know how to program in Ruby to
use the language. As such, it seems to have a pretty good following mainly
use the language. As such, it seems to have a pretty good following mainly
...
@@ -292,7 +316,7 @@ submit a patch or module.</p>
...
@@ -292,7 +316,7 @@ submit a patch or module.</p>
has it’s own facts so you do not need to use ohai unless you want to.</p>
has it’s own facts so you do not need to use ohai unless you want to.</p>
</div>
</div>
<divclass="section"id="vs-capistrano-fabric">
<divclass="section"id="vs-capistrano-fabric">
<h3>vs Capistrano/Fabric?<aclass="headerlink"href="#vs-capistrano-fabric"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">vs Capistrano/Fabric?</a><aclass="headerlink"href="#vs-capistrano-fabric"title="Permalink to this headline">¶</a></h3>
<p>These tools aren’t really well suited to doing idempotent configuration and are
<p>These tools aren’t really well suited to doing idempotent configuration and are
typically about pushing software out for web deployment and automating steps.</p>
typically about pushing software out for web deployment and automating steps.</p>
<p>Meanwhile Ansible is designed for other types of configuration management, and contains some
<p>Meanwhile Ansible is designed for other types of configuration management, and contains some
...
@@ -303,9 +327,9 @@ useful for sysadmins (not just web developers), and can also be used for firing
...
@@ -303,9 +327,9 @@ useful for sysadmins (not just web developers), and can also be used for firing
</div>
</div>
</div>
</div>
<divclass="section"id="other-questions">
<divclass="section"id="other-questions">
<h2>Other Questions<aclass="headerlink"href="#other-questions"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Other Questions</a><aclass="headerlink"href="#other-questions"title="Permalink to this headline">¶</a></h2>
<h3>What is Ansible’s approach to security?<aclass="headerlink"href="#what-is-ansible-s-approach-to-security"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">What is Ansible’s approach to security?</a><aclass="headerlink"href="#what-is-ansible-s-approach-to-security"title="Permalink to this headline">¶</a></h3>
<p>Ansible aims to not develop custom daemon or PKI code but rely heavily on OpenSSH, which is extremely well
<p>Ansible aims to not develop custom daemon or PKI code but rely heavily on OpenSSH, which is extremely well
peer reviewed and the most widely used security subsystem in the industry. As a result, Ansible
peer reviewed and the most widely used security subsystem in the industry. As a result, Ansible
has a lower attack surface than any configuration management tool featuring daemons that run
has a lower attack surface than any configuration management tool featuring daemons that run
...
@@ -320,7 +344,7 @@ free RAM and compute resources, which should be relevant to users wanting to max
...
@@ -320,7 +344,7 @@ free RAM and compute resources, which should be relevant to users wanting to max
computing investments.</p>
computing investments.</p>
</div>
</div>
<divclass="section"id="how-does-ansible-scale">
<divclass="section"id="how-does-ansible-scale">
<h3>How does Ansible scale?<aclass="headerlink"href="#how-does-ansible-scale"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">How does Ansible scale?</a><aclass="headerlink"href="#how-does-ansible-scale"title="Permalink to this headline">¶</a></h3>
<p>Whether in single-execution mode or using ansible playbooks, ansible can
<p>Whether in single-execution mode or using ansible playbooks, ansible can
run multiple commands in seperate parallel forks, thanks to the magic behind
run multiple commands in seperate parallel forks, thanks to the magic behind
Python’s multiprocessing module.</p>
Python’s multiprocessing module.</p>
...
@@ -345,7 +369,7 @@ model.</p>
...
@@ -345,7 +369,7 @@ model.</p>
<p>If you’d like to discuss scaling strategies further, please hop on the mailing list.</p>
<p>If you’d like to discuss scaling strategies further, please hop on the mailing list.</p>
<h3>Are transports other than SSH supported?<aclass="headerlink"href="#are-transports-other-than-ssh-supported"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">Are transports other than SSH supported?</a><aclass="headerlink"href="#are-transports-other-than-ssh-supported"title="Permalink to this headline">¶</a></h3>
<p>Currently SSH (you can choose between paramiko or the openssh binaries)
<p>Currently SSH (you can choose between paramiko or the openssh binaries)
and local connections are supported. The interface is actually pluggable so a
and local connections are supported. The interface is actually pluggable so a
small patch could bring transport over message bus or XMPP as an option.</p>
small patch could bring transport over message bus or XMPP as an option.</p>
...
@@ -353,7 +377,7 @@ small patch could bring transport over message bus or XMPP as an option.</p>
...
@@ -353,7 +377,7 @@ small patch could bring transport over message bus or XMPP as an option.</p>
are all abstracted away from the core implementation so it is very easy to extend.</p>
are all abstracted away from the core implementation so it is very easy to extend.</p>
<h3>What are some ideal uses for Ansible?<aclass="headerlink"href="#what-are-some-ideal-uses-for-ansible"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#contents">What are some ideal uses for Ansible?</a><aclass="headerlink"href="#what-are-some-ideal-uses-for-ansible"title="Permalink to this headline">¶</a></h3>
<p>One of the best use cases? Complex multi-node cloud deployments using playbooks. Another good
<p>One of the best use cases? Complex multi-node cloud deployments using playbooks. Another good
example is for configuration management where you
example is for configuration management where you
are starting from a clean OS with no extra software installed, adopting systems
are starting from a clean OS with no extra software installed, adopting systems
<li><aclass="reference internal"href="#python-2-6-epel-instructions-for-rhel-and-centos-5"id="id3">Python 2.6 EPEL instructions for RHEL and CentOS 5</a></li>
<h2>Python 2.6 EPEL instructions for RHEL and CentOS 5<aclass="headerlink"href="#python-2-6-epel-instructions-for-rhel-and-centos-5"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Python 2.6 EPEL instructions for RHEL and CentOS 5</a><aclass="headerlink"href="#python-2-6-epel-instructions-for-rhel-and-centos-5"title="Permalink to this headline">¶</a></h2>
<p>These distributions don’t have Python 2.6 by default, but it is easily
<p>These distributions don’t have Python 2.6 by default, but it is easily
installable. If you have not already done so, <aclass="reference external"href="http://fedoraproject.org/wiki/EPEL">configure EPEL</a></p>
installable. If you have not already done so, <aclass="reference external"href="http://fedoraproject.org/wiki/EPEL">configure EPEL</a></p>
<h2>Choosing Between Paramiko and Native SSH<aclass="headerlink"href="#choosing-between-paramiko-and-native-ssh"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Choosing Between Paramiko and Native SSH</a><aclass="headerlink"href="#choosing-between-paramiko-and-native-ssh"title="Permalink to this headline">¶</a></h2>
<p>By default, ansible uses paramiko to talk to managed nodes over SSH. Paramiko is fast, works
<p>By default, ansible uses paramiko to talk to managed nodes over SSH. Paramiko is fast, works
very transparently, requires no configuration, and is a good choice for most users.
very transparently, requires no configuration, and is a good choice for most users.
However, it does not support some advanced SSH features that folks will want to use.</p>
However, it does not support some advanced SSH features that folks will want to use.</p>
...
@@ -327,7 +340,7 @@ are roughly the same speed. Without CM, the binary ssh transport is signficantl
...
@@ -327,7 +340,7 @@ are roughly the same speed. Without CM, the binary ssh transport is signficantl
<p>If none of this makes sense to you, the default paramiko option is probably fine.</p>
<p>If none of this makes sense to you, the default paramiko option is probably fine.</p>
</div>
</div>
<divclass="section"id="your-first-commands">
<divclass="section"id="your-first-commands">
<h2>Your first commands<aclass="headerlink"href="#your-first-commands"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Your first commands</a><aclass="headerlink"href="#your-first-commands"title="Permalink to this headline">¶</a></h2>
<p>Now that you’ve installed Ansible, it’s time to test it.</p>
<p>Now that you’ve installed Ansible, it’s time to test it.</p>
<p>Edit (or create) /etc/ansible/hosts and put one or more remote systems in it, for
<p>Edit (or create) /etc/ansible/hosts and put one or more remote systems in it, for
which you have your SSH key in <ttclass="docutils literal"><spanclass="pre">authorized_keys</span></tt>:</p>
which you have your SSH key in <ttclass="docutils literal"><spanclass="pre">authorized_keys</span></tt>:</p>
<h1>Module Development<aclass="headerlink"href="#module-development"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#contents">Module Development</a><aclass="headerlink"href="#module-development"title="Permalink to this headline">¶</a></h1>
<p>Ansible modules are reusable units of magic that can be used by the Ansible API,
<p>Ansible modules are reusable units of magic that can be used by the Ansible API,
or by the <cite>ansible</cite> or <cite>ansible-playbook</cite> programs.</p>
or by the <cite>ansible</cite> or <cite>ansible-playbook</cite> programs.</p>
<p>Modules can be written in any language and are found in the path specified
<p>Modules can be written in any language and are found in the path specified
by <cite>ANSIBLE_LIBRARY_PATH</cite> or the <ttclass="docutils literal"><spanclass="pre">--module-path</span></tt> command line option.</p>
by <cite>ANSIBLE_LIBRARY_PATH</cite> or the <ttclass="docutils literal"><spanclass="pre">--module-path</span></tt> command line option.</p>
<p>If you did not, you might have a typo in your module, so recheck it and try again.</p>
<p>If you did not, you might have a typo in your module, so recheck it and try again.</p>
</div>
</div>
<divclass="section"id="reading-input">
<divclass="section"id="reading-input">
<h2>Reading Input<aclass="headerlink"href="#reading-input"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Reading Input</a><aclass="headerlink"href="#reading-input"title="Permalink to this headline">¶</a></h2>
<p>Let’s modify the module to allow setting the current time. We’ll do this by seeing
<p>Let’s modify the module to allow setting the current time. We’ll do this by seeing
if a key value pair in the form <cite>time=<string></cite> is passed in to the module.</p>
if a key value pair in the form <cite>time=<string></cite> is passed in to the module.</p>
<p>Ansible internally saves arguments to an arguments file. So we must read the file
<p>Ansible internally saves arguments to an arguments file. So we must read the file
...
@@ -342,7 +360,7 @@ a lot shorter than this:</p>
...
@@ -342,7 +360,7 @@ a lot shorter than this:</p>
</div>
</div>
</div>
</div>
<divclass="section"id="module-provided-facts">
<divclass="section"id="module-provided-facts">
<h2>Module Provided ‘Facts’<aclass="headerlink"href="#module-provided-facts"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Module Provided ‘Facts’</a><aclass="headerlink"href="#module-provided-facts"title="Permalink to this headline">¶</a></h2>
<p>The ‘setup’ module that ships with Ansible provides many variables about a system that can be used in playbooks
<p>The ‘setup’ module that ships with Ansible provides many variables about a system that can be used in playbooks
and templates. However, it’s possible to also add your own facts without modifying the system module. To do
and templates. However, it’s possible to also add your own facts without modifying the system module. To do
this, just have the module return a <cite>ansible_facts</cite> key, like so, along with other return data:</p>
this, just have the module return a <cite>ansible_facts</cite> key, like so, along with other return data:</p>
...
@@ -363,7 +381,7 @@ A good idea might be make a module called ‘site_facts’ and always ca
...
@@ -363,7 +381,7 @@ A good idea might be make a module called ‘site_facts’ and always ca
we’re always open to improving the selection of core facts in Ansible as well.</p>
we’re always open to improving the selection of core facts in Ansible as well.</p>
<h2>Common Module Boilerplate<aclass="headerlink"href="#common-module-boilerplate"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Common Module Boilerplate</a><aclass="headerlink"href="#common-module-boilerplate"title="Permalink to this headline">¶</a></h2>
<p>As mentioned, if you are writing a module in Python, there are some very powerful shortcuts you can use.
<p>As mentioned, if you are writing a module in Python, there are some very powerful shortcuts you can use.
Modules are still transferred as one file, but an arguments file is no longer needed, so these are not
Modules are still transferred as one file, but an arguments file is no longer needed, so these are not
only shorter in terms of code, they are actually FASTER in terms of execution time.</p>
only shorter in terms of code, they are actually FASTER in terms of execution time.</p>
...
@@ -405,7 +423,7 @@ can function outside of Ansible.</p>
...
@@ -405,7 +423,7 @@ can function outside of Ansible.</p>
class is required.</p>
class is required.</p>
</div>
</div>
<divclass="section"id="common-pitfalls">
<divclass="section"id="common-pitfalls">
<h2>Common Pitfalls<aclass="headerlink"href="#common-pitfalls"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Common Pitfalls</a><aclass="headerlink"href="#common-pitfalls"title="Permalink to this headline">¶</a></h2>
<p>You should also never do this in a module:</p>
<p>You should also never do this in a module:</p>
<divclass="highlight-python"><divclass="highlight"><pre><spanclass="k">print</span><spanclass="s">"some status message"</span>
<divclass="highlight-python"><divclass="highlight"><pre><spanclass="k">print</span><spanclass="s">"some status message"</span>
</pre></div>
</pre></div>
...
@@ -422,7 +440,7 @@ will still be shown in Ansible, but the command will not succeed.</p>
...
@@ -422,7 +440,7 @@ will still be shown in Ansible, but the command will not succeed.</p>
<h2>Conventions/Recomendations<aclass="headerlink"href="#conventions-recomendations"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Conventions/Recomendations</a><aclass="headerlink"href="#conventions-recomendations"title="Permalink to this headline">¶</a></h2>
<p>As a reminder from the example code above, here are some basic conventions
<p>As a reminder from the example code above, here are some basic conventions
and guidelines:</p>
and guidelines:</p>
<ulclass="simple">
<ulclass="simple">
...
@@ -439,7 +457,7 @@ and guidelines:</p>
...
@@ -439,7 +457,7 @@ and guidelines:</p>
</ul>
</ul>
</div>
</div>
<divclass="section"id="shorthand-vs-json">
<divclass="section"id="shorthand-vs-json">
<h2>Shorthand Vs JSON<aclass="headerlink"href="#shorthand-vs-json"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Shorthand Vs JSON</a><aclass="headerlink"href="#shorthand-vs-json"title="Permalink to this headline">¶</a></h2>
<p>To make it easier to write modules in bash and in cases where a JSON
<p>To make it easier to write modules in bash and in cases where a JSON
module might not be available, it is acceptable for a module to return
module might not be available, it is acceptable for a module to return
key=value output all on one line, like this. The Ansible parser
key=value output all on one line, like this. The Ansible parser
...
@@ -450,7 +468,7 @@ will know what to do:</p>
...
@@ -450,7 +468,7 @@ will know what to do:</p>
JSON is probably the simplest way to go.</p>
JSON is probably the simplest way to go.</p>
</div>
</div>
<divclass="section"id="sharing-your-module">
<divclass="section"id="sharing-your-module">
<h2>Sharing Your Module<aclass="headerlink"href="#sharing-your-module"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Sharing Your Module</a><aclass="headerlink"href="#sharing-your-module"title="Permalink to this headline">¶</a></h2>
<p>If you think your module is generally useful to others, a good place to share it
<p>If you think your module is generally useful to others, a good place to share it
is in <aclass="reference external"href="https://github.com/ansible/ansible-resources">Ansible Resources</a>. This is maintained
is in <aclass="reference external"href="https://github.com/ansible/ansible-resources">Ansible Resources</a>. This is maintained
as a simple repo with pointers to other github projects.</p>
as a simple repo with pointers to other github projects.</p>
...
@@ -459,7 +477,7 @@ We would like to build up as many of these as possible in as many languages as p
...
@@ -459,7 +477,7 @@ We would like to build up as many of these as possible in as many languages as p
<h2>Getting Your Module Into Core<aclass="headerlink"href="#getting-your-module-into-core"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Getting Your Module Into Core</a><aclass="headerlink"href="#getting-your-module-into-core"title="Permalink to this headline">¶</a></h2>
<p>High-quality modules with minimal dependencies
<p>High-quality modules with minimal dependencies
can be included in the core, but core modules (just due to the programming
can be included in the core, but core modules (just due to the programming
preferences of the developers) will need to be implemented in Python and use
preferences of the developers) will need to be implemented in Python and use
<spanid="id1"></span><h2>apt_repository<aclass="headerlink"href="#apt-repository"title="Permalink to this headline">¶</a></h2>
<spanid="id1"></span><h2><aclass="toc-backref"href="#contents">apt_repository</a><aclass="headerlink"href="#apt-repository"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanid="id3"></span><h2>assemble<aclass="headerlink"href="#assemble"title="Permalink to this headline">¶</a></h2>
<spanid="id3"></span><h2><aclass="toc-backref"href="#contents">assemble</a><aclass="headerlink"href="#assemble"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.5.</span></p>
<spanclass="versionmodified">New in version 0.5.</span></p>
<p>Assembles a configuration file from fragments. Often a particular
<p>Assembles a configuration file from fragments. Often a particular
...
@@ -442,7 +436,7 @@ sorting order. Puppet calls this idea “fragments”.</p>
...
@@ -442,7 +436,7 @@ sorting order. Puppet calls this idea “fragments”.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="authorized-key">
<divclass="section"id="authorized-key">
<spanid="id4"></span><h2>authorized_key<aclass="headerlink"href="#authorized-key"title="Permalink to this headline">¶</a></h2>
<spanid="id4"></span><h2><aclass="toc-backref"href="#contents">authorized_key</a><aclass="headerlink"href="#authorized-key"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.5.</span></p>
<spanclass="versionmodified">New in version 0.5.</span></p>
<p>Adds or removes an authorized key for a user from a remote host.</p>
<p>Adds or removes an authorized key for a user from a remote host.</p>
...
@@ -483,7 +477,7 @@ sorting order. Puppet calls this idea “fragments”.</p>
...
@@ -483,7 +477,7 @@ sorting order. Puppet calls this idea “fragments”.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="command">
<divclass="section"id="command">
<spanid="id5"></span><h2>command<aclass="headerlink"href="#command"title="Permalink to this headline">¶</a></h2>
<spanid="id5"></span><h2><aclass="toc-backref"href="#contents">command</a><aclass="headerlink"href="#command"title="Permalink to this headline">¶</a></h2>
<p>The command module takes the command name followed by a list of
<p>The command module takes the command name followed by a list of
arguments, space delimited.</p>
arguments, space delimited.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
...
@@ -538,7 +532,7 @@ the user’s environment.</p>
...
@@ -538,7 +532,7 @@ the user’s environment.</p>
<p>The <cite>creates=</cite> and <cite>chdir</cite> options will not be passed to the actual executable.</p>
<p>The <cite>creates=</cite> and <cite>chdir</cite> options will not be passed to the actual executable.</p>
</div>
</div>
<divclass="section"id="copy">
<divclass="section"id="copy">
<spanid="id6"></span><h2>copy<aclass="headerlink"href="#copy"title="Permalink to this headline">¶</a></h2>
<spanid="id6"></span><h2><aclass="toc-backref"href="#contents">copy</a><aclass="headerlink"href="#copy"title="Permalink to this headline">¶</a></h2>
<p>The copy module moves a file on the local box to remote locations. In addition to the options
<p>The copy module moves a file on the local box to remote locations. In addition to the options
listed below, the arguments available to the <cite>file</cite> module can also be passed to the copy
listed below, the arguments available to the <cite>file</cite> module can also be passed to the copy
module.</p>
module.</p>
...
@@ -580,7 +574,7 @@ relative.</td>
...
@@ -580,7 +574,7 @@ relative.</td>
</div>
</div>
</div>
</div>
<divclass="section"id="easy-install">
<divclass="section"id="easy-install">
<spanid="id7"></span><h2>easy_install<aclass="headerlink"href="#easy-install"title="Permalink to this headline">¶</a></h2>
<spanid="id7"></span><h2><aclass="toc-backref"href="#contents">easy_install</a><aclass="headerlink"href="#easy-install"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanid="id8"></span><h2>facter<aclass="headerlink"href="#facter"title="Permalink to this headline">¶</a></h2>
<spanid="id8"></span><h2><aclass="toc-backref"href="#contents">facter</a><aclass="headerlink"href="#facter"title="Permalink to this headline">¶</a></h2>
<p>Runs the discovery program ‘facter’ on the remote system, returning
<p>Runs the discovery program ‘facter’ on the remote system, returning
JSON data that can be useful for inventory purposes.</p>
JSON data that can be useful for inventory purposes.</p>
<p>Requires that ‘facter’ and ‘ruby-json’ be installed on the remote end.</p>
<p>Requires that ‘facter’ and ‘ruby-json’ be installed on the remote end.</p>
...
@@ -635,7 +629,7 @@ module behind the scenes.</p>
...
@@ -635,7 +629,7 @@ module behind the scenes.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="fetch">
<divclass="section"id="fetch">
<spanid="id9"></span><h2>fetch<aclass="headerlink"href="#fetch"title="Permalink to this headline">¶</a></h2>
<spanid="id9"></span><h2><aclass="toc-backref"href="#contents">fetch</a><aclass="headerlink"href="#fetch"title="Permalink to this headline">¶</a></h2>
<p>This module works like ‘copy’, but in reverse. It is used for fetching files
<p>This module works like ‘copy’, but in reverse. It is used for fetching files
from remote machines and storing them locally in a file tree, organized by hostname.</p>
from remote machines and storing them locally in a file tree, organized by hostname.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
...
@@ -673,7 +667,7 @@ be saved into ‘/foo/host.example.com/tmp/bar’</td>
...
@@ -673,7 +667,7 @@ be saved into ‘/foo/host.example.com/tmp/bar’</td>
</div>
</div>
</div>
</div>
<divclass="section"id="file">
<divclass="section"id="file">
<spanid="id10"></span><h2>file<aclass="headerlink"href="#file"title="Permalink to this headline">¶</a></h2>
<spanid="id10"></span><h2><aclass="toc-backref"href="#contents">file</a><aclass="headerlink"href="#file"title="Permalink to this headline">¶</a></h2>
<p>Sets attributes of files, symlinks, and directories, or removes files/symlinks/directories. Many other modules
<p>Sets attributes of files, symlinks, and directories, or removes files/symlinks/directories. Many other modules
support the same options as the file module – including ‘copy’, ‘template’, and ‘assmeble’.</p>
support the same options as the file module – including ‘copy’, ‘template’, and ‘assmeble’.</p>
<spanid="id11"></span><h2>get_url<aclass="headerlink"href="#get-url"title="Permalink to this headline">¶</a></h2>
<spanid="id11"></span><h2><aclass="toc-backref"href="#contents">get_url</a><aclass="headerlink"href="#get-url"title="Permalink to this headline">¶</a></h2>
<p>Downloads files from http, https, or ftp to the remote server. The remote server must have direct
<p>Downloads files from http, https, or ftp to the remote server. The remote server must have direct
access to the remote resource.</p>
access to the remote resource.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
...
@@ -821,7 +815,7 @@ small local files. prior to 0.6, acts if ‘yes’ by default.</td>
...
@@ -821,7 +815,7 @@ small local files. prior to 0.6, acts if ‘yes’ by default.</td>
</div>
</div>
</div>
</div>
<divclass="section"id="git">
<divclass="section"id="git">
<spanid="id12"></span><h2>git<aclass="headerlink"href="#git"title="Permalink to this headline">¶</a></h2>
<spanid="id12"></span><h2><aclass="toc-backref"href="#contents">git</a><aclass="headerlink"href="#git"title="Permalink to this headline">¶</a></h2>
<p>Deploys software (or files) from git checkouts.</p>
<p>Deploys software (or files) from git checkouts.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
<colgroup>
<colgroup>
...
@@ -872,7 +866,7 @@ discarded. Prior to 0.7, this was always ‘yes’ and could not be dis
...
@@ -872,7 +866,7 @@ discarded. Prior to 0.7, this was always ‘yes’ and could not be dis
</div>
</div>
</div>
</div>
<divclass="section"id="group">
<divclass="section"id="group">
<spanid="id13"></span><h2>group<aclass="headerlink"href="#group"title="Permalink to this headline">¶</a></h2>
<spanid="id13"></span><h2><aclass="toc-backref"href="#contents">group</a><aclass="headerlink"href="#group"title="Permalink to this headline">¶</a></h2>
<p>Adds or removes groups.</p>
<p>Adds or removes groups.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
<colgroup>
<colgroup>
...
@@ -917,7 +911,7 @@ discarded. Prior to 0.7, this was always ‘yes’ and could not be dis
...
@@ -917,7 +911,7 @@ discarded. Prior to 0.7, this was always ‘yes’ and could not be dis
</div>
</div>
</div>
</div>
<divclass="section"id="mount">
<divclass="section"id="mount">
<spanid="id14"></span><h2>mount<aclass="headerlink"href="#mount"title="Permalink to this headline">¶</a></h2>
<spanid="id14"></span><h2><aclass="toc-backref"href="#contents">mount</a><aclass="headerlink"href="#mount"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>The mount module controls active and configured mount points (fstab).</p>
<p>The mount module controls active and configured mount points (fstab).</p>
...
@@ -977,7 +971,7 @@ configured in fstab. ‘absent’, and ‘present’ only deal
...
@@ -977,7 +971,7 @@ configured in fstab. ‘absent’, and ‘present’ only deal
</table>
</table>
</div>
</div>
<divclass="section"id="mysql-db">
<divclass="section"id="mysql-db">
<spanid="id15"></span><h2>mysql_db<aclass="headerlink"href="#mysql-db"title="Permalink to this headline">¶</a></h2>
<spanid="id15"></span><h2><aclass="toc-backref"href="#contents">mysql_db</a><aclass="headerlink"href="#mysql-db"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>Add or remove MySQL databases from a remote host.</p>
<p>Add or remove MySQL databases from a remote host.</p>
...
@@ -1044,7 +1038,7 @@ finally fall back to using the MySQL default login of ‘root’ with no
...
@@ -1044,7 +1038,7 @@ finally fall back to using the MySQL default login of ‘root’ with no
</div>
</div>
</div>
</div>
<divclass="section"id="mysql-user">
<divclass="section"id="mysql-user">
<spanid="id16"></span><h2>mysql_user<aclass="headerlink"href="#mysql-user"title="Permalink to this headline">¶</a></h2>
<spanid="id16"></span><h2><aclass="toc-backref"href="#contents">mysql_user</a><aclass="headerlink"href="#mysql-user"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>Adds or removes a user from a MySQL database.</p>
<p>Adds or removes a user from a MySQL database.</p>
...
@@ -1122,7 +1116,7 @@ finally fall back to using the MySQL default login of ‘root’ with no
...
@@ -1122,7 +1116,7 @@ finally fall back to using the MySQL default login of ‘root’ with no
</div>
</div>
</div>
</div>
<divclass="section"id="nagios">
<divclass="section"id="nagios">
<spanid="id17"></span><h2>nagios<aclass="headerlink"href="#nagios"title="Permalink to this headline">¶</a></h2>
<spanid="id17"></span><h2><aclass="toc-backref"href="#contents">nagios</a><aclass="headerlink"href="#nagios"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>Perform common tasks in Nagios related to downtime and notifications.</p>
<p>Perform common tasks in Nagios related to downtime and notifications.</p>
...
@@ -1294,7 +1288,7 @@ receive this error if that is the case:</p>
...
@@ -1294,7 +1288,7 @@ receive this error if that is the case:</p>
</ol>
</ol>
</div>
</div>
<divclass="section"id="ohai">
<divclass="section"id="ohai">
<spanid="id18"></span><h2>ohai<aclass="headerlink"href="#ohai"title="Permalink to this headline">¶</a></h2>
<spanid="id18"></span><h2><aclass="toc-backref"href="#contents">ohai</a><aclass="headerlink"href="#ohai"title="Permalink to this headline">¶</a></h2>
<p>Similar to the <aclass="reference internal"href="#facter"><em>facter</em></a> module, this returns JSON inventory data.
<p>Similar to the <aclass="reference internal"href="#facter"><em>facter</em></a> module, this returns JSON inventory data.
Ohai data is a bit more verbose and nested than facter.</p>
Ohai data is a bit more verbose and nested than facter.</p>
<p>Requires that ‘ohai’ be installed on the remote end.</p>
<p>Requires that ‘ohai’ be installed on the remote end.</p>
...
@@ -1305,7 +1299,7 @@ Ohai data is a bit more verbose and nested than facter.</p>
...
@@ -1305,7 +1299,7 @@ Ohai data is a bit more verbose and nested than facter.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="ping">
<divclass="section"id="ping">
<spanid="id19"></span><h2>ping<aclass="headerlink"href="#ping"title="Permalink to this headline">¶</a></h2>
<spanid="id19"></span><h2><aclass="toc-backref"href="#contents">ping</a><aclass="headerlink"href="#ping"title="Permalink to this headline">¶</a></h2>
<p>A trivial test module, this module always returns ‘pong’ on
<p>A trivial test module, this module always returns ‘pong’ on
successful contact. It does not make sense in playbooks, but is useful
successful contact. It does not make sense in playbooks, but is useful
from /usr/bin/ansible:</p>
from /usr/bin/ansible:</p>
...
@@ -1313,7 +1307,7 @@ from /usr/bin/ansible:</p>
...
@@ -1313,7 +1307,7 @@ from /usr/bin/ansible:</p>
</div>
</div>
</div>
</div>
<divclass="section"id="pip">
<divclass="section"id="pip">
<spanid="id20"></span><h2>pip<aclass="headerlink"href="#pip"title="Permalink to this headline">¶</a></h2>
<spanid="id20"></span><h2><aclass="toc-backref"href="#contents">pip</a><aclass="headerlink"href="#pip"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanid="id22"></span><h2>postgresql_db<aclass="headerlink"href="#postgresql-db"title="Permalink to this headline">¶</a></h2>
<spanid="id22"></span><h2><aclass="toc-backref"href="#contents">postgresql_db</a><aclass="headerlink"href="#postgresql-db"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>Add or remove PostgreSQL databases from a remote host.</p>
<p>Add or remove PostgreSQL databases from a remote host.</p>
...
@@ -1435,7 +1429,7 @@ host before using this module.</p>
...
@@ -1435,7 +1429,7 @@ host before using this module.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="postgresql-user">
<divclass="section"id="postgresql-user">
<spanid="id23"></span><h2>postgresql_user<aclass="headerlink"href="#postgresql-user"title="Permalink to this headline">¶</a></h2>
<spanid="id23"></span><h2><aclass="toc-backref"href="#contents">postgresql_user</a><aclass="headerlink"href="#postgresql-user"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>Add or remove PostgreSQL users (roles) from a remote host and, optionally, grant the users
<p>Add or remove PostgreSQL users (roles) from a remote host and, optionally, grant the users
...
@@ -1532,7 +1526,7 @@ happened and separately if the user was removed or not.</p>
...
@@ -1532,7 +1526,7 @@ happened and separately if the user was removed or not.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="raw">
<divclass="section"id="raw">
<spanid="id24"></span><h2>raw<aclass="headerlink"href="#raw"title="Permalink to this headline">¶</a></h2>
<spanid="id24"></span><h2><aclass="toc-backref"href="#contents">raw</a><aclass="headerlink"href="#raw"title="Permalink to this headline">¶</a></h2>
<p>Executes a low-down and dirty SSH command, not going through the module subsystem.</p>
<p>Executes a low-down and dirty SSH command, not going through the module subsystem.</p>
<p>This is useful and should only be done in two cases. The first case is installing
<p>This is useful and should only be done in two cases. The first case is installing
python-simplejson on older (python 2.4 and before) hosts that need it as a dependency
python-simplejson on older (python 2.4 and before) hosts that need it as a dependency
...
@@ -1547,7 +1541,7 @@ for this module.</p>
...
@@ -1547,7 +1541,7 @@ for this module.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="service">
<divclass="section"id="service">
<spanid="id25"></span><h2>service<aclass="headerlink"href="#service"title="Permalink to this headline">¶</a></h2>
<spanid="id25"></span><h2><aclass="toc-backref"href="#contents">service</a><aclass="headerlink"href="#service"title="Permalink to this headline">¶</a></h2>
<p>Controls services on remote machines.</p>
<p>Controls services on remote machines.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
<colgroup>
<colgroup>
...
@@ -1600,7 +1594,7 @@ service name=foo pattern=/usr/bin/foo state=started</pre>
...
@@ -1600,7 +1594,7 @@ service name=foo pattern=/usr/bin/foo state=started</pre>
</div>
</div>
</div>
</div>
<divclass="section"id="setup">
<divclass="section"id="setup">
<spanid="id26"></span><h2>setup<aclass="headerlink"href="#setup"title="Permalink to this headline">¶</a></h2>
<spanid="id26"></span><h2><aclass="toc-backref"href="#contents">setup</a><aclass="headerlink"href="#setup"title="Permalink to this headline">¶</a></h2>
<p>This module is automatically called by playbooks to gather useful variables about remote hosts that can be used
<p>This module is automatically called by playbooks to gather useful variables about remote hosts that can be used
in playbooks. It can also be executed directly by /usr/bin/ansible to check what variables are available
in playbooks. It can also be executed directly by /usr/bin/ansible to check what variables are available
to a host.</p>
to a host.</p>
...
@@ -1682,7 +1676,7 @@ on your remote systems.</p>
...
@@ -1682,7 +1676,7 @@ on your remote systems.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="shell">
<divclass="section"id="shell">
<spanid="id27"></span><h2>shell<aclass="headerlink"href="#shell"title="Permalink to this headline">¶</a></h2>
<spanid="id27"></span><h2><aclass="toc-backref"href="#contents">shell</a><aclass="headerlink"href="#shell"title="Permalink to this headline">¶</a></h2>
<p>The shell module takes the command name followed by a list of
<p>The shell module takes the command name followed by a list of
arguments, space delimited. It is almost exactly like the command module
arguments, space delimited. It is almost exactly like the command module
but runs the command through the user’s configured shell on the remote node.</p>
but runs the command through the user’s configured shell on the remote node.</p>
...
@@ -1732,7 +1726,7 @@ your best judgement.</p>
...
@@ -1732,7 +1726,7 @@ your best judgement.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="subversion">
<divclass="section"id="subversion">
<spanid="id28"></span><h2>subversion<aclass="headerlink"href="#subversion"title="Permalink to this headline">¶</a></h2>
<spanid="id28"></span><h2><aclass="toc-backref"href="#contents">subversion</a><aclass="headerlink"href="#subversion"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>Deploys a subversion repository.</p>
<p>Deploys a subversion repository.</p>
...
@@ -1774,7 +1768,7 @@ discarded. If no, this module will fail if it encounters modified files.</td>
...
@@ -1774,7 +1768,7 @@ discarded. If no, this module will fail if it encounters modified files.</td>
</div>
</div>
</div>
</div>
<divclass="section"id="supervisorctl">
<divclass="section"id="supervisorctl">
<spanid="id29"></span><h2>supervisorctl<aclass="headerlink"href="#supervisorctl"title="Permalink to this headline">¶</a></h2>
<spanid="id29"></span><h2><aclass="toc-backref"href="#contents">supervisorctl</a><aclass="headerlink"href="#supervisorctl"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>Manage the state of a program or group of programs running via Supervisord</p>
<p>Manage the state of a program or group of programs running via Supervisord</p>
...
@@ -1810,7 +1804,7 @@ discarded. If no, this module will fail if it encounters modified files.</td>
...
@@ -1810,7 +1804,7 @@ discarded. If no, this module will fail if it encounters modified files.</td>
</div>
</div>
</div>
</div>
<divclass="section"id="template">
<divclass="section"id="template">
<spanid="id30"></span><h2>template<aclass="headerlink"href="#template"title="Permalink to this headline">¶</a></h2>
<spanid="id30"></span><h2><aclass="toc-backref"href="#contents">template</a><aclass="headerlink"href="#template"title="Permalink to this headline">¶</a></h2>
<p>Templates a file out to a remote server.</p>
<p>Templates a file out to a remote server.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
<colgroup>
<colgroup>
...
@@ -1850,7 +1844,7 @@ a relative or absolute path.</td>
...
@@ -1850,7 +1844,7 @@ a relative or absolute path.</td>
</div>
</div>
</div>
</div>
<divclass="section"id="user">
<divclass="section"id="user">
<spanid="id31"></span><h2>user<aclass="headerlink"href="#user"title="Permalink to this headline">¶</a></h2>
<spanid="id31"></span><h2><aclass="toc-backref"href="#contents">user</a><aclass="headerlink"href="#user"title="Permalink to this headline">¶</a></h2>
<p>Creates user accounts, manipulates existing user accounts, and removes user accounts.</p>
<p>Creates user accounts, manipulates existing user accounts, and removes user accounts.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
<colgroup>
<colgroup>
...
@@ -1949,7 +1943,7 @@ user name=mdehaan state=absent force=yes</pre>
...
@@ -1949,7 +1943,7 @@ user name=mdehaan state=absent force=yes</pre>
</div>
</div>
</div>
</div>
<divclass="section"id="virt">
<divclass="section"id="virt">
<spanid="id32"></span><h2>virt<aclass="headerlink"href="#virt"title="Permalink to this headline">¶</a></h2>
<spanid="id32"></span><h2><aclass="toc-backref"href="#contents">virt</a><aclass="headerlink"href="#virt"title="Permalink to this headline">¶</a></h2>
<p>Manages virtual machines supported by libvirt. Requires that libvirt be installed
<p>Manages virtual machines supported by libvirt. Requires that libvirt be installed
on the managed machine.</p>
on the managed machine.</p>
<tableborder="1"class="docutils">
<tableborder="1"class="docutils">
...
@@ -2009,7 +2003,7 @@ ansible host -m virt -a "command=virttype"</pre>
...
@@ -2009,7 +2003,7 @@ ansible host -m virt -a "command=virttype"</pre>
</div>
</div>
</div>
</div>
<divclass="section"id="yum">
<divclass="section"id="yum">
<spanid="id33"></span><h2>yum<aclass="headerlink"href="#yum"title="Permalink to this headline">¶</a></h2>
<spanid="id33"></span><h2><aclass="toc-backref"href="#contents">yum</a><aclass="headerlink"href="#yum"title="Permalink to this headline">¶</a></h2>
<p>Will install, upgrade, remove, and list packages with the yum package manager.</p>
<p>Will install, upgrade, remove, and list packages with the yum package manager.</p>
<h2>Additional Contrib Modules<aclass="headerlink"href="#additional-contrib-modules"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Additional Contrib Modules</a><aclass="headerlink"href="#additional-contrib-modules"title="Permalink to this headline">¶</a></h2>
<p>In addition to the following built-in modules, community modules are available at <aclass="reference external"href="http://github.com/ansible/ansible-resources">Ansible Resources</a>.</p>
<p>In addition to the following built-in modules, community modules are available at <aclass="reference external"href="http://github.com/ansible/ansible-resources">Ansible Resources</a>.</p>
</div>
</div>
<divclass="section"id="writing-your-own-modules">
<divclass="section"id="writing-your-own-modules">
<h2>Writing your own modules<aclass="headerlink"href="#writing-your-own-modules"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Writing your own modules</a><aclass="headerlink"href="#writing-your-own-modules"title="Permalink to this headline">¶</a></h2>
<spanid="patterns"></span><h1>Inventory & Patterns<aclass="headerlink"href="#inventory-patterns"title="Permalink to this headline">¶</a></h1>
<spanid="patterns"></span><h1><aclass="toc-backref"href="#table-of-contents">Inventory & Patterns</a><aclass="headerlink"href="#inventory-patterns"title="Permalink to this headline">¶</a></h1>
<p>Ansible works against multiple systems in your infrastructure at the
<p>Ansible works against multiple systems in your infrastructure at the
same time. It does this by selecting portions of systems listed in
same time. It does this by selecting portions of systems listed in
Ansible’s inventory file, which defaults to /etc/ansible/hosts.</p>
Ansible’s inventory file, which defaults to /etc/ansible/hosts.</p>
<divclass="contents topic"id="table-of-contents">
<pclass="topic-title first"><cite>Table of contents</cite></p>
<ulclass="simple">
<li><aclass="reference internal"href="#inventory-patterns"id="id1">Inventory & Patterns</a><ul>
<li><aclass="reference internal"href="#hosts-and-groups"id="id2">Hosts and Groups</a></li>
<spanid="inventoryformat"></span><h2>Hosts and Groups<aclass="headerlink"href="#hosts-and-groups"title="Permalink to this headline">¶</a></h2>
<spanid="inventoryformat"></span><h2><aclass="toc-backref"href="#table-of-contents">Hosts and Groups</a><aclass="headerlink"href="#hosts-and-groups"title="Permalink to this headline">¶</a></h2>
<p>The format for /etc/ansible/hosts is an INI format and looks like this:</p>
<p>The format for /etc/ansible/hosts is an INI format and looks like this:</p>
@@ -217,7 +232,7 @@ after the hostname with a colon.</p>
...
@@ -217,7 +232,7 @@ after the hostname with a colon.</p>
<p>Leading zeros can be included or removed, as desired, and the ranges are inclusive.</p>
<p>Leading zeros can be included or removed, as desired, and the ranges are inclusive.</p>
</div>
</div>
<divclass="section"id="selecting-targets">
<divclass="section"id="selecting-targets">
<h2>Selecting Targets<aclass="headerlink"href="#selecting-targets"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">Selecting Targets</a><aclass="headerlink"href="#selecting-targets"title="Permalink to this headline">¶</a></h2>
<p>We’ll go over how to use the command line in <aclass="reference internal"href="examples.html"><em>Command Line Examples And Next Steps</em></a> section, however, basically it looks like this:</p>
<p>We’ll go over how to use the command line in <aclass="reference internal"href="examples.html"><em>Command Line Examples And Next Steps</em></a> section, however, basically it looks like this:</p>
<divclass="highlight-python"><pre>ansible <pattern_goes_here> -m <module_name> -a <arguments></pre>
<divclass="highlight-python"><pre>ansible <pattern_goes_here> -m <module_name> -a <arguments></pre>
</div>
</div>
...
@@ -256,7 +271,7 @@ wildcards:</p>
...
@@ -256,7 +271,7 @@ wildcards:</p>
<p>Easy enough. See <aclass="reference internal"href="examples.html"><em>Command Line Examples And Next Steps</em></a> and then <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a> for how to do things to selected hosts.</p>
<p>Easy enough. See <aclass="reference internal"href="examples.html"><em>Command Line Examples And Next Steps</em></a> and then <aclass="reference internal"href="playbooks.html"><em>Playbooks</em></a> for how to do things to selected hosts.</p>
</div>
</div>
<divclass="section"id="host-variables">
<divclass="section"id="host-variables">
<h2>Host Variables<aclass="headerlink"href="#host-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">Host Variables</a><aclass="headerlink"href="#host-variables"title="Permalink to this headline">¶</a></h2>
<p>It is easy to assign variables to hosts that will be used later in playbooks:</p>
<p>It is easy to assign variables to hosts that will be used later in playbooks:</p>
<h2>Group Variables<aclass="headerlink"href="#group-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">Group Variables</a><aclass="headerlink"href="#group-variables"title="Permalink to this headline">¶</a></h2>
<p>Variables can also be applied to an entire group at once:</p>
<p>Variables can also be applied to an entire group at once:</p>
<h2>Groups of Groups, and Group Variables<aclass="headerlink"href="#groups-of-groups-and-group-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">Groups of Groups, and Group Variables</a><aclass="headerlink"href="#groups-of-groups-and-group-variables"title="Permalink to this headline">¶</a></h2>
<p>It is also possible to make groups of groups and assign
<p>It is also possible to make groups of groups and assign
variables to groups. These variables can be used by /usr/bin/ansible-playbook, but not
variables to groups. These variables can be used by /usr/bin/ansible-playbook, but not
/usr/bin/ansible:</p>
/usr/bin/ansible:</p>
...
@@ -308,7 +323,7 @@ southeast</pre>
...
@@ -308,7 +323,7 @@ southeast</pre>
seperate from the inventory file, see the next section.</p>
seperate from the inventory file, see the next section.</p>
<h2>Splitting Out Host and Group Specific Data<aclass="headerlink"href="#splitting-out-host-and-group-specific-data"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">Splitting Out Host and Group Specific Data</a><aclass="headerlink"href="#splitting-out-host-and-group-specific-data"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>In addition to the storing variables directly in the INI file, host
<p>In addition to the storing variables directly in the INI file, host
...
@@ -339,7 +354,7 @@ variable called ‘ansible_python_interpreter’ to the Python
...
@@ -339,7 +354,7 @@ variable called ‘ansible_python_interpreter’ to the Python
interpreter path you would like to use.</p>
interpreter path you would like to use.</p>
</div>
</div>
<divclass="section"id="yaml-inventory">
<divclass="section"id="yaml-inventory">
<h2>YAML Inventory<aclass="headerlink"href="#yaml-inventory"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#table-of-contents">YAML Inventory</a><aclass="headerlink"href="#yaml-inventory"title="Permalink to this headline">¶</a></h2>
<pclass="deprecated">
<pclass="deprecated">
<spanclass="versionmodified">Deprecated since version 0.7.</span></p>
<spanclass="versionmodified">Deprecated since version 0.7.</span></p>
<p>Ansible’s YAML inventory format is deprecated and will be removed in
<p>Ansible’s YAML inventory format is deprecated and will be removed in
<h2>Playbook Language Example<aclass="headerlink"href="#playbook-language-example"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Playbook Language Example</a><aclass="headerlink"href="#playbook-language-example"title="Permalink to this headline">¶</a></h2>
<p>Playbooks are expressed in YAML format and have a minimum of syntax.
<p>Playbooks are expressed in YAML format and have a minimum of syntax.
Each playbook is composed of one or more ‘plays’ in a list.</p>
Each playbook is composed of one or more ‘plays’ in a list.</p>
<p>The goal of a play is map a group of hosts to some well defined roles, represented by
<p>The goal of a play is map a group of hosts to some well defined roles, represented by
...
@@ -238,7 +257,7 @@ server group, then more commands back on the webservers group, etc.</p>
...
@@ -238,7 +257,7 @@ server group, then more commands back on the webservers group, etc.</p>
<p>Below, we’ll break down what the various features of the playbook language are.</p>
<p>Below, we’ll break down what the various features of the playbook language are.</p>
</div>
</div>
<divclass="section"id="basics">
<divclass="section"id="basics">
<h2>Basics<aclass="headerlink"href="#basics"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Basics</a><aclass="headerlink"href="#basics"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="hosts-and-users">
<divclass="section"id="hosts-and-users">
<h3>Hosts and Users<aclass="headerlink"href="#hosts-and-users"title="Permalink to this headline">¶</a></h3>
<h3>Hosts and Users<aclass="headerlink"href="#hosts-and-users"title="Permalink to this headline">¶</a></h3>
<p>For each play in a playbook, you get to choose which machines in your infrastructure
<p>For each play in a playbook, you get to choose which machines in your infrastructure
...
@@ -378,7 +397,7 @@ make more sense to break up tasks using the ‘include:’ directive. W
...
@@ -378,7 +397,7 @@ make more sense to break up tasks using the ‘include:’ directive. W
<h2>Running Operations On Change<aclass="headerlink"href="#running-operations-on-change"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Running Operations On Change</a><aclass="headerlink"href="#running-operations-on-change"title="Permalink to this headline">¶</a></h2>
<p>As we’ve mentioned, modules are written to be ‘idempotent’ and can relay when
<p>As we’ve mentioned, modules are written to be ‘idempotent’ and can relay when
they have made a change on the remote system. Playbooks recognize this and
they have made a change on the remote system. Playbooks recognize this and
have a basic event system that can be used to respond to change.</p>
have a basic event system that can be used to respond to change.</p>
...
@@ -415,7 +434,7 @@ won’t need them for much else.</p>
...
@@ -415,7 +434,7 @@ won’t need them for much else.</p>
<h2>Include Files And Encouraging Reuse<aclass="headerlink"href="#include-files-and-encouraging-reuse"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Include Files And Encouraging Reuse</a><aclass="headerlink"href="#include-files-and-encouraging-reuse"title="Permalink to this headline">¶</a></h2>
<p>Suppose you want to reuse lists of tasks between plays or playbooks. You can use
<p>Suppose you want to reuse lists of tasks between plays or playbooks. You can use
include files to do this. Use of included task lists is a great way to define a role
include files to do this. Use of included task lists is a great way to define a role
that system is going to fulfill. Remember, the goal of a play in a playbook is to map
that system is going to fulfill. Remember, the goal of a play in a playbook is to map
...
@@ -477,14 +496,14 @@ ability for hosts to conditionally skip tasks).</p>
...
@@ -477,14 +496,14 @@ ability for hosts to conditionally skip tasks).</p>
</div>
</div>
</div>
</div>
<divclass="section"id="executing-a-playbook">
<divclass="section"id="executing-a-playbook">
<h2>Executing A Playbook<aclass="headerlink"href="#executing-a-playbook"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Executing A Playbook</a><aclass="headerlink"href="#executing-a-playbook"title="Permalink to this headline">¶</a></h2>
<p>Now that you’ve learned playbook syntax, how do you run a playbook? It’s simple.
<p>Now that you’ve learned playbook syntax, how do you run a playbook? It’s simple.
Let’s run a playbook using a parallelism level of 10:</p>
Let’s run a playbook using a parallelism level of 10:</p>
<h1>Advanced Playbooks<aclass="headerlink"href="#advanced-playbooks"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#contents">Advanced Playbooks</a><aclass="headerlink"href="#advanced-playbooks"title="Permalink to this headline">¶</a></h1>
<p>Here are some advanced features of the playbooks language. Using all of these features
<p>Here are some advanced features of the playbooks language. Using all of these features
are not neccessary, but many of them will prove useful. If a feature doesn’t seem immediately
are not neccessary, but many of them will prove useful. If a feature doesn’t seem immediately
relevant, feel free to skip it. For many people, the features documented in <cite>playbooks</cite> will
relevant, feel free to skip it. For many people, the features documented in <cite>playbooks</cite> will
<li><aclass="reference internal"href="#selecting-files-and-templates-based-on-variables"id="id13">Selecting Files And Templates Based On Variables</a></li>
<li><aclass="reference internal"href="#asynchronous-actions-and-polling"id="id14">Asynchronous Actions and Polling</a></li>
<h2>Playbooks Including Playbooks<aclass="headerlink"href="#playbooks-including-playbooks"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Playbooks Including Playbooks</a><aclass="headerlink"href="#playbooks-including-playbooks"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.6.</span></p>
<spanclass="versionmodified">New in version 0.6.</span></p>
<p>To further advance the concept of include files, playbook files can
<p>To further advance the concept of include files, playbook files can
...
@@ -245,7 +274,7 @@ all of your systems like this:</p>
...
@@ -245,7 +274,7 @@ all of your systems like this:</p>
what parts of those plays.</p>
what parts of those plays.</p>
</div>
</div>
<divclass="section"id="ignoring-failed-commands">
<divclass="section"id="ignoring-failed-commands">
<h2>Ignoring Failed Commands<aclass="headerlink"href="#ignoring-failed-commands"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Ignoring Failed Commands</a><aclass="headerlink"href="#ignoring-failed-commands"title="Permalink to this headline">¶</a></h2>
<pclass="deprecated">
<pclass="deprecated">
<spanclass="versionmodified">Deprecated since version 0.6.</span></p>
<spanclass="versionmodified">Deprecated since version 0.6.</span></p>
<p>Generally playbooks will stop executing any more steps on a host that
<p>Generally playbooks will stop executing any more steps on a host that
...
@@ -257,7 +286,7 @@ write a task that looks like this:</p>
...
@@ -257,7 +286,7 @@ write a task that looks like this:</p>
<h2>Accessing Complex Variable Data<aclass="headerlink"href="#accessing-complex-variable-data"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Accessing Complex Variable Data</a><aclass="headerlink"href="#accessing-complex-variable-data"title="Permalink to this headline">¶</a></h2>
<p>Some provided facts, like networking information, are made available as nested data structures. To access
<p>Some provided facts, like networking information, are made available as nested data structures. To access
them a simple ‘$foo’ is not sufficient, but it is still easy to do. Here’s how we get an IP address:</p>
them a simple ‘$foo’ is not sufficient, but it is still easy to do. Here’s how we get an IP address:</p>
<h2>Accessing Information About Other Hosts<aclass="headerlink"href="#accessing-information-about-other-hosts"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Accessing Information About Other Hosts</a><aclass="headerlink"href="#accessing-information-about-other-hosts"title="Permalink to this headline">¶</a></h2>
<p>If your database server wants to check the value of a ‘fact’ from another node, or an inventory variable
<p>If your database server wants to check the value of a ‘fact’ from another node, or an inventory variable
assigned to another node, it’s easy to do so within a template or even an action line:</p>
assigned to another node, it’s easy to do so within a template or even an action line:</p>
<p>Don’t worry about any of this unless you think you need it. You’ll know when you do.</p>
<p>Don’t worry about any of this unless you think you need it. You’ll know when you do.</p>
</div>
</div>
<divclass="section"id="variable-file-seperation">
<divclass="section"id="variable-file-seperation">
<h2>Variable File Seperation<aclass="headerlink"href="#variable-file-seperation"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Variable File Seperation</a><aclass="headerlink"href="#variable-file-seperation"title="Permalink to this headline">¶</a></h2>
<p>It’s a great idea to keep your playbooks under source control, but
<p>It’s a great idea to keep your playbooks under source control, but
you may wish to make the playbook source public while keeping certain
you may wish to make the playbook source public while keeping certain
important variables private. Similarly, sometimes you may just
important variables private. Similarly, sometimes you may just
...
@@ -335,7 +364,7 @@ similar files, this is covered in <a class="reference internal" href="patterns.h
...
@@ -335,7 +364,7 @@ similar files, this is covered in <a class="reference internal" href="patterns.h
<h2>Prompting For Sensitive Data<aclass="headerlink"href="#prompting-for-sensitive-data"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Prompting For Sensitive Data</a><aclass="headerlink"href="#prompting-for-sensitive-data"title="Permalink to this headline">¶</a></h2>
<p>You may wish to prompt the user for certain input, and can
<p>You may wish to prompt the user for certain input, and can
do so with the similarly named ‘vars_prompt’ section. This has uses
do so with the similarly named ‘vars_prompt’ section. This has uses
beyond security, for instance, you may use the same playbook for all
beyond security, for instance, you may use the same playbook for all
...
@@ -364,7 +393,7 @@ some other options, but otherwise works equivalently:</p>
...
@@ -364,7 +393,7 @@ some other options, but otherwise works equivalently:</p>
<h2>Passing Variables On The Command Line<aclass="headerlink"href="#passing-variables-on-the-command-line"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Passing Variables On The Command Line</a><aclass="headerlink"href="#passing-variables-on-the-command-line"title="Permalink to this headline">¶</a></h2>
<p>In addition to <cite>vars_prompt</cite> and <cite>vars_files</cite>, it is possible to send variables over
<p>In addition to <cite>vars_prompt</cite> and <cite>vars_files</cite>, it is possible to send variables over
the ansible command line. This is particularly useful when writing a generic release playbook
the ansible command line. This is particularly useful when writing a generic release playbook
where you may want to pass in the version of the application to deploy:</p>
where you may want to pass in the version of the application to deploy:</p>
<h2>Conditional Execution<aclass="headerlink"href="#conditional-execution"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Conditional Execution</a><aclass="headerlink"href="#conditional-execution"title="Permalink to this headline">¶</a></h2>
<p>Sometimes you will want to skip a particular step on a particular host. This could be something
<p>Sometimes you will want to skip a particular step on a particular host. This could be something
as simple as not installing a certain package if the operating system is a particular version,
as simple as not installing a certain package if the operating system is a particular version,
or it could be something like performing some cleanup steps if a filesystem is getting full.</p>
or it could be something like performing some cleanup steps if a filesystem is getting full.</p>
...
@@ -417,7 +446,7 @@ there will be accessible to future tasks:</p>
...
@@ -417,7 +446,7 @@ there will be accessible to future tasks:</p>
</div>
</div>
</div>
</div>
<divclass="section"id="conditional-imports">
<divclass="section"id="conditional-imports">
<h2>Conditional Imports<aclass="headerlink"href="#conditional-imports"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Conditional Imports</a><aclass="headerlink"href="#conditional-imports"title="Permalink to this headline">¶</a></h2>
<p>Sometimes you will want to do certain things differently in a playbook based on certain criteria.
<p>Sometimes you will want to do certain things differently in a playbook based on certain criteria.
Having one playbook that works on multiple platforms and OS versions is a good example.</p>
Having one playbook that works on multiple platforms and OS versions is a good example.</p>
<p>As an example, the name of the Apache package may be different between CentOS and Debian,
<p>As an example, the name of the Apache package may be different between CentOS and Debian,
...
@@ -463,7 +492,7 @@ in more streamlined & auditable configuration rules – especially becau
...
@@ -463,7 +492,7 @@ in more streamlined & auditable configuration rules – especially becau
minimum of decision points to track.</p>
minimum of decision points to track.</p>
</div>
</div>
<divclass="section"id="loop-shorthand">
<divclass="section"id="loop-shorthand">
<h2>Loop Shorthand<aclass="headerlink"href="#loop-shorthand"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Loop Shorthand</a><aclass="headerlink"href="#loop-shorthand"title="Permalink to this headline">¶</a></h2>
<p>To save some typing, repeated tasks can be written in short-hand like so:</p>
<p>To save some typing, repeated tasks can be written in short-hand like so:</p>
<divclass="highlight-python"><pre>- name: add user $item
<divclass="highlight-python"><pre>- name: add user $item
action: user name=$item state=present groups=wheel
action: user name=$item state=present groups=wheel
...
@@ -484,7 +513,7 @@ minimum of decision points to track.</p>
...
@@ -484,7 +513,7 @@ minimum of decision points to track.</p>
<h2>Selecting Files And Templates Based On Variables<aclass="headerlink"href="#selecting-files-and-templates-based-on-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Selecting Files And Templates Based On Variables</a><aclass="headerlink"href="#selecting-files-and-templates-based-on-variables"title="Permalink to this headline">¶</a></h2>
<p>Sometimes a configuration file you want to copy, or a template you will use may depend on a variable.
<p>Sometimes a configuration file you want to copy, or a template you will use may depend on a variable.
The following construct selects the first available file appropriate for the variables of a given host,
The following construct selects the first available file appropriate for the variables of a given host,
which is often much cleaner than putting a lot of if conditionals in a template.</p>
which is often much cleaner than putting a lot of if conditionals in a template.</p>
<h2>Asynchronous Actions and Polling<aclass="headerlink"href="#asynchronous-actions-and-polling"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Asynchronous Actions and Polling</a><aclass="headerlink"href="#asynchronous-actions-and-polling"title="Permalink to this headline">¶</a></h2>
<p>By default tasks in playbooks block, meaning the connections stay open
<p>By default tasks in playbooks block, meaning the connections stay open
until the task is done on each node. If executing playbooks with
until the task is done on each node. If executing playbooks with
a small parallelism value (aka <ttclass="docutils literal"><spanclass="pre">--forks</span></tt>), you may wish that long
a small parallelism value (aka <ttclass="docutils literal"><spanclass="pre">--forks</span></tt>), you may wish that long
...
@@ -548,7 +577,7 @@ tasks even faster. This also increases the efficiency of polling.</p>
...
@@ -548,7 +577,7 @@ tasks even faster. This also increases the efficiency of polling.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="local-playbooks">
<divclass="section"id="local-playbooks">
<h2>Local Playbooks<aclass="headerlink"href="#local-playbooks"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Local Playbooks</a><aclass="headerlink"href="#local-playbooks"title="Permalink to this headline">¶</a></h2>
<p>It may be useful to use a playbook locally, rather than by connecting over SSH. This can be useful
<p>It may be useful to use a playbook locally, rather than by connecting over SSH. This can be useful
for assuring the configuration of a system by putting a playbook on a crontab. This may also be used
for assuring the configuration of a system by putting a playbook on a crontab. This may also be used
to run a playbook inside a OS installer, such as an Anaconda kickstart.</p>
to run a playbook inside a OS installer, such as an Anaconda kickstart.</p>
...
@@ -562,7 +591,7 @@ connection: local</pre>
...
@@ -562,7 +591,7 @@ connection: local</pre>
</div>
</div>
</div>
</div>
<divclass="section"id="turning-off-facts">
<divclass="section"id="turning-off-facts">
<h2>Turning Off Facts<aclass="headerlink"href="#turning-off-facts"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Turning Off Facts</a><aclass="headerlink"href="#turning-off-facts"title="Permalink to this headline">¶</a></h2>
<p>If you know you don’t need any fact data about your hosts, and know everything about your systems centrally, you
<p>If you know you don’t need any fact data about your hosts, and know everything about your systems centrally, you
can turn off fact gathering. This has advantages in scaling ansible in push mode with very large numbers of
can turn off fact gathering. This has advantages in scaling ansible in push mode with very large numbers of
systems, mainly, or if you are using Ansible on experimental platforms. In any play, just do this:</p>
systems, mainly, or if you are using Ansible on experimental platforms. In any play, just do this:</p>
...
@@ -571,7 +600,7 @@ systems, mainly, or if you are using Ansible on experimental platforms. In any
...
@@ -571,7 +600,7 @@ systems, mainly, or if you are using Ansible on experimental platforms. In any
</div>
</div>
</div>
</div>
<divclass="section"id="pull-mode-playbooks">
<divclass="section"id="pull-mode-playbooks">
<h2>Pull-Mode Playbooks<aclass="headerlink"href="#pull-mode-playbooks"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Pull-Mode Playbooks</a><aclass="headerlink"href="#pull-mode-playbooks"title="Permalink to this headline">¶</a></h2>
<p>The use of playbooks in local mode (above) is made extremely powerful with the addition of <cite>ansible-pull</cite>.
<p>The use of playbooks in local mode (above) is made extremely powerful with the addition of <cite>ansible-pull</cite>.
A script for setting up ansible-pull is provided in the examples/playbooks directory of the source
A script for setting up ansible-pull is provided in the examples/playbooks directory of the source
checkout.</p>
checkout.</p>
...
@@ -583,7 +612,7 @@ the cron frequency, logging locations, and parameters to ansible-pull.</p>
...
@@ -583,7 +612,7 @@ the cron frequency, logging locations, and parameters to ansible-pull.</p>
logs from ansible-pull runs would be an excellent way to gather and analyze remote logs from ansible-pull.</p>
logs from ansible-pull runs would be an excellent way to gather and analyze remote logs from ansible-pull.</p>
</div>
</div>
<divclass="section"id="register-variables">
<divclass="section"id="register-variables">
<h2>Register Variables<aclass="headerlink"href="#register-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Register Variables</a><aclass="headerlink"href="#register-variables"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>Often in a playbook it may be useful to store the result of a given command in a variable and access
<p>Often in a playbook it may be useful to store the result of a given command in a variable and access
...
@@ -603,7 +632,7 @@ instance, you could test for the existance of a particular program.</p>
...
@@ -603,7 +632,7 @@ instance, you could test for the existance of a particular program.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="rolling-updates">
<divclass="section"id="rolling-updates">
<h2>Rolling Updates<aclass="headerlink"href="#rolling-updates"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Rolling Updates</a><aclass="headerlink"href="#rolling-updates"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>By default ansible will try to manage all of the machines referenced in a play in parallel. For a rolling updates
<p>By default ansible will try to manage all of the machines referenced in a play in parallel. For a rolling updates
...
@@ -616,7 +645,7 @@ use case, you can define how many hosts ansible should manage at a single time b
...
@@ -616,7 +645,7 @@ use case, you can define how many hosts ansible should manage at a single time b
would complete the play completely before moving on to the next 3 hosts.</p>
would complete the play completely before moving on to the next 3 hosts.</p>
</div>
</div>
<divclass="section"id="delegation">
<divclass="section"id="delegation">
<h2>Delegation<aclass="headerlink"href="#delegation"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Delegation</a><aclass="headerlink"href="#delegation"title="Permalink to this headline">¶</a></h2>
<pclass="versionadded">
<pclass="versionadded">
<spanclass="versionmodified">New in version 0.7.</span></p>
<spanclass="versionmodified">New in version 0.7.</span></p>
<p>If you want to perform a task on one host with reference to other hosts, use the ‘delegate_to’ keyword on a task.
<p>If you want to perform a task on one host with reference to other hosts, use the ‘delegate_to’ keyword on a task.
<h2>Understanding Variable Precedence<aclass="headerlink"href="#understanding-variable-precedence"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Understanding Variable Precedence</a><aclass="headerlink"href="#understanding-variable-precedence"title="Permalink to this headline">¶</a></h2>
<p>You have already learned about inventory host and group variables, ‘vars’, and ‘vars_files’.</p>
<p>You have already learned about inventory host and group variables, ‘vars’, and ‘vars_files’.</p>
<p>If a variable name is defined in more than one place with the same name, priority is as follows
<p>If a variable name is defined in more than one place with the same name, priority is as follows
to determine which place sets the value of the variable.</p>
to determine which place sets the value of the variable.</p>
...
@@ -670,7 +699,7 @@ to determine which place sets the value of the variable.</p>
...
@@ -670,7 +699,7 @@ to determine which place sets the value of the variable.</p>
place to set such a default is in a group variable.</p>
place to set such a default is in a group variable.</p>
</div>
</div>
<divclass="section"id="style-points">
<divclass="section"id="style-points">
<h2>Style Points<aclass="headerlink"href="#style-points"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#contents">Style Points</a><aclass="headerlink"href="#style-points"title="Permalink to this headline">¶</a></h2>
<p>Ansible playbooks are colorized. If you do not like this, set the ANSIBLE_NOCOLOR=1 environment variable.</p>
<p>Ansible playbooks are colorized. If you do not like this, set the ANSIBLE_NOCOLOR=1 environment variable.</p>
<p>Ansible playbooks also look more impressive with cowsay installed, and we encourage installing this package.</p>
<p>Ansible playbooks also look more impressive with cowsay installed, and we encourage installing this package.</p>
Search.setIndex({objects:{},terms:{facter_operatingsystem:10,kickstart:10,func:[3,5],poorli:[],four:[8,12],prefix:[10,9,6,7],sleep:10,consider:9,whose:10,tweet:12,ebuild:0,aur:0,under:[10,7],spec:7,everi:[1,2,6,7,10,11],risk:10,vastli:7,ansible_virtualization_rol:6,redact:6,upstream:[],affect:[4,6,7],macaddress:6,ansible_config:11,showcas:4,cmd:6,supervisorctl:6,reg:[],ansible_librari:[],shlex:4,vars_prompt:[10,1],saltstack:[],x86_64:[9,6],awwxvv:6,seper:[8,10,5,6,7],direct:[5,6,7],chef:[3,5],second:[9,10,11],tag_key_valu:9,even:[0,5,7,8,9,10],hide:10,thunder:5,scp:11,constrast:[],"new":[5,6],net:[0,2,6,5,4,8,9,11,12],ever:[3,9,4,7,8],told:7,elimin:[10,11],manipul:[6,11],abov:[6,4,7,9,10,11],controlmast:[0,5],eckersberg:[5,2],hera:[],never:[9,4,5,6],here:[0,1,3,6,4,7,9,10,11,12],herd:5,"malm\u00f6":12,path:[1,6,4,7,8,9,10,11],interpret:8,datetim:4,permit:[],aka:10,ansible_ssh_arg:0,somethingels:10,brought:[],substr:6,unix:[3,5],cobblerd:9,ec2_:9,total:7,unit:4,highli:4,describ:[1,7],would:[0,1,6,5,4,7,8,9,10,11],h3d850bdf:[],ansible_memtotal_mb:6,noarch:0,dehaan:[3,12],overhead:3,typo:4,recommend:[4,6,1],type:[9,4,10,5,6],tell:[3,6,11,8],notif:[5,6],notic:5,warn:4,phone:[],exce:[],ec2_architectur:9,relai:7,loss:5,ansible_transport:0,must:[4,10,9,6,7],join:3,restor:6,setup:[0,1,3,6,4,7,9,10],work:[0,1,3,5,6,7,8,9,10,11],anotherdb:6,erb:5,virttyp:6,cento:[0,10,6],root:[0,1,3,5,6,7,10,11],overrid:[0,9,10],os_default:10,give:2,rpath:3,indic:[6,7],app_serv:10,somefil:7,want:[0,1,2,6,5,4,7,9,10,11],end:[4,5,6,7],hoc:[3,5,6,7,11],quot:[10,11],"1pm":3,how:[1,2,6,5,4,7,8,9,10,11],hop:5,yum:[0,1,6,4,7,10,11],perspect:9,updat:[10,6,11],dialect:[],recogn:[7,11],passwordless:11,after:[1,6,5,4,7,8,9,11],lab:[3,5],diagram:[],befor:[3,6,5,4,7,10,11],ohai_:[6,7],ec2_image_id:9,arch:0,parallel:[3,5,10,7,11],attempt:[6,7],ansible_product_seri:6,bootstrap:[3,5,6],credenti:[6,11],exclud:8,greek:[],unpaus:6,maintain:[0,9,4],environ:[0,10,9,6,11],enter:10,exclus:10,idontknow:[],order:[3,1,5,6,7,10],oper:[0,10,6,7,11],frontend:10,over:[0,3,5,8,9,10,11,12],fall:[10,6],orang:2,becaus:[1,2,5,4,9,10],fifo:6,ec2_previous_st:9,rpmbuild:0,ansible_interfac:6,privileg:6,zeu:[],gather_fact:10,vari:10,myfil:6,streamlin:10,shorter:4,cli:[9,11],img:[],fix:0,better:[6,11],offic:3,mydb:6,easier:[5,4,1,2,11],them:[0,1,2,3,4,5,6,7,8,10],thei:[3,6,5,4,7,8,9,10,11,12],fragment:6,etc_acme_conf_acm:1,safe:7,ec2_ten:9,"break":7,band:[],glorifi:[],jinja2:[0,10,5,6,7],ec2_ip_address:9,mgmt:9,httpd_sys_content_t:6,ec2_region:9,choic:[0,4],vidal:5,bonu:9,timeout:10,each:[1,2,6,5,4,7,8,9,10],debug:2,side:3,mean:[2,6,5,4,7,9,10],colleagu:[],exactli:[4,10,6],playbooks2:[],logo:[],some_password:10,contend:5,network:[3,5,10],dss:6,content:[4,10,6,7],dsl:[],pool:10,adapt:[9,6],got:5,forth:7,a1b1c1d1:9,site_fact:[10,4],ntp:8,nightmar:3,situat:6,free:[0,5,6,9,10,12],standard:[8,4],dotnet:2,fixm:[],md5:4,reconfigur:[5,10,1],openssh:[0,5,3],traceback:4,isv:12,ansible_form_factor:6,isn:[3,5],suppos:[8,10,4,7,11],rang:[3,6,11,8],render:6,clariti:[],wast:[],restrict:4,hook:[],unlik:[5,7],alreadi:[0,3,6,5,4,7,9,10],van_halen_port:7,apt_repositori:6,massiv:3,primari:[9,6],rewritten:[],top:[10,5,4,1,7],sometim:[10,6],destination_vari:9,master:9,too:[9,3,5,4,2],similarli:[9,10],john:[5,2],outag:[3,10],iptabl:[],ansible_memfree_mb:6,tool:[0,3,5,9,10,11],took:[3,5],"80ghz":6,somewhat:9,technic:[0,9,6],freemem:6,basho:12,target:[11,8,1,7],keyword:[10,5,6],provid:[1,2,6,5,4,7,9,10],tree:[4,9,6],project:[0,1,2,3,5,4,7,10,12],matter:11,ansible_distribution_releas:6,minut:[5,6,11],uses_cv:2,recheck:4,provis:5,fashion:5,"_authorized_kei":[],runner:9,ram:5,mind:[5,4],raw:[0,6],aforement:8,seem:[5,10,7],seek:6,someapp:6,sudo_us:7,contact:[0,9,6],blue:10,though:[0,1,3,6,5,4,7,9,10],bruce:0,limitless:10,deleg:10,regular:7,specifi:[0,2,6,5,4,7,9,10,11],bsd:[0,5],boxsubscrib:[],simplic:3,don:[0,1,3,6,5,4,7,8,10,11],doc:6,doe:[0,6,5,4,7,8,9,10,11],declar:7,wildcard:8,libpq:6,came:9,cobbler_external_inventori:[],random:7,syntax:[3,1,2,5,7,10,11],kerber:[0,3],pkg:[10,6,7,11],radic:3,identifi:5,pki:5,ec2_private_ip_address:9,priv:6,involv:4,absolut:[6,11],northeast:8,acquir:3,explain:4,configur:[0,1,2,3,5,6,7,8,9,10,11],apach:[10,5,6,7,11],ec2_instance_typ:9,version:[0,1,6,7,8,10,11],ldap:9,stop:[0,1,2,6,5,4,7,8,9,10,11],amazon:9,report:6,saturn:[],cellspac:[],bar:[8,9,6,7],host_var:8,excel:[3,5,10,8],"public":[10,9,6],reload:6,bad:4,respond:[6,7],daemonless:[],resist:1,result:[3,6,5,4,7,9,10],fail:[6,5,4,7,9,10],themselv:[],hammer:[],best:[3,1,6,5,4,7,9,10],subject:[5,10],brazil:12,heterogen:1,databas:[3,10,9,6,7],discoveri:6,figur:5,simplest:[9,4],awai:[5,10],irc:[0,2,6,5,4,8,9,11,12],approach:[9,3,5,10],attribut:[10,6],login_us:6,manpag:[],extens:5,add:[0,1,6,5,4,9,10,11],kitchen:12,easi:[0,1,3,6,5,4,8,10,11],howev:[0,5,4,11,8],against:[3,5,10,7,8],logic:[],somelist:10,login:[6,7],com:[0,6,4,8,9,12],compromis:5,assur:[10,7],foobar:6,height:[],written:[0,3,4,7,9,10],guid:[],assum:[8,9,6],speak:6,multiplay:3,ansible_library_path:4,three:[3,6,8],been:[9,3,5,6,11],much:[3,2,5,6,7,10,11],interest:[0,9],basic:[0,1,2,6,5,4,7,8,9,10,11],tini:10,quickli:[3,11],life:3,recomend:4,ani:[0,1,3,6,5,4,7,9,10,11],add_back_to_pool:10,mysql_us:6,dave:[],enterprisei:9,child:3,emploi:2,ugli:10,exception:5,east:9,servic:[1,6,4,7,8,9,10,11,12],ec2_security_group_id:9,vars_fil:[10,1,7],aim:5,ain:[],visit:3,conf:[10,9,6,1,7],module_nam:[8,9],somekei:4,sever:[2,5,6,7,9,12],inventori:[0,1,3,6,7,8,9,10,11],perform:[0,3,5,6,7,10],suggest:6,make:[0,1,6,5,4,7,8,9,10,11],transpar:0,complex:[3,5,10,7],split:[8,4],complet:[1,2,5,7,9,10],wheel:[10,6],ansible_arch2:[],fragil:[],selevel:6,rail:5,hand:10,rais:[10,4],ownership:11,refin:[],tune:[10,11],speakerdeck:3,kept:[5,7],scenario:9,thu:6,ansible_:10,hypothet:[],tho:[],client:[],"_concatenated_valu":[],thi:[0,1,2,3,4,5,6,7,8,9,10,11],endif:10,programm:[9,5],everyth:[0,10],left:[],protocol:6,just:[0,1,2,3,4,5,6,7,9,10,11],photo:12,laptop:9,human:[7,2],braces_syntax:[],yet:[0,9,6,11,3],languag:[0,2,3,6,5,4,7,8,9,10,12],expos:1,had:10,spread:3,els:[0,10,4,7],ffffff:4,save:[4,10,6,7],hat:[3,5],gave:3,opt:6,applic:[3,5,6,7,9,10,12],supervisord:6,quirk:2,wai:[0,1,6,5,4,7,8,9,10],fusion:6,background:11,daemon:5,specif:[1,5,4,7,8,9,10,11],arbitrari:[5,10],manual:[5,7],remind:[10,4,1],el6:6,unnecessari:[],groups_logo_sm:[],www:8,right:[],deal:[4,6],maxim:5,dead:3,born:5,intern:[9,4],heritag:[],successfulli:[3,9],txt:[6,11],forcibl:[],bottom:7,cnf:6,tracker:[0,3],condit:[10,7,11],foo:[6,7,8,9,10,11],localhost:6,core:[3,4,5,6,11],plu:[],sensibl:0,web2:9,web1:9,promot:[],repositori:[6,1],peer:5,"super":3,chapter:7,sshd:3,postgresql:6,surround:[],simul:10,"2ydx8":6,commit:1,produc:[4,6,12],match:[4,7],ppa:[0,6],basenam:6,contriv:[],halon_system_timeout:8,contrib:[4,6],install_recommend:6,storag:8,eth0:6,ec2_vpc_id:9,git:[0,1,6,5,4,8,10,11],fabric:5,suffici:10,support:[0,1,3,6,5,4,7,9,10,11],happi:3,avail:[0,1,2,6,5,4,7,8,9,10,11],width:[],reli:[3,5,10],gid:6,wordpress:7,call:[1,2,6,5,4,7,8,9,10],war:3,fork:[9,5,10,11],head:[6,11],python26:0,form:[4,10,6,7,2],offer:[],altogeth:3,batman:0,forg:6,groupfil:8,"true":[4,10,6,7,2],freenod:[0,2,3,6,5,4,8,9,11,12],absent:[4,6,1,11],inquir:4,maximum:10,until:[10,6,1],ansible_fqdn:6,fundament:6,featur:[0,1,3,5,6,7,8,10],"abstract":5,fedoraproject:[],plugin:9,cobbler:[9,3,5],desir:[8,4,1,7],ship:[4,5,6],check:[4,10,6,11],assembl:6,pipe:[6,11],encrypt:5,take_out_of_pool:10,tip:[8,10,6,1,7],role:[10,6,1,7],test:[0,6,5,4,9,10,12],tie:9,unlimit:[],maxrequestsperchild:8,node:[0,3,5,6,7,9,10,11],relat:6,intend:4,phoenix:8,devop:3,intent:[],consid:[4,1,7],receiv:6,longer:4,anywher:[],ignor:[10,4,7],time:[0,1,2,3,4,5,6,7,8,9,10,11],push:[3,5,10,7],concept:[9,10,1,11],vpc:9,chain:[],"5rxgmiicbrh":6,skip:[10,7],consum:5,invent:[],skim:3,operatingsystem:10,decid:[10,5,4,7,11],middl:[],depend:[0,4,5,6,10],zone:9,flask:6,graph:[5,12],readabl:[1,7],decis:10,downtim:6,southwest:8,sourc:[0,1,2,3,4,5,6,7,9,10,11,12],string:[4,6,7],somelog:6,word:[3,9,10],brows:4,jdk:6,administr:[],level:[6,7,2],did:[3,10,9,4],passno:6,item:[9,10,2],team:5,quick:0,ansible_product_nam:6,prevent:4,slower:0,trend:6,ec2_platform:9,anaconda:10,port:[8,5,11],favcolor:[10,9,4],ansible_distribution_vers:6,current:[0,6,5,4,10,11],suspect:[],ceec4eif7ya:6,deriv:[],gener:[0,6,5,4,7,9,10],address:[1,6,5,4,8,9,10,11],along:[4,7],wait:10,box:[3,6,11],precursor:3,alta:12,extrem:[0,10,5,4],bob:[6,7],commonli:[11,2],ourselv:7,scpnmy8rks7fyk8ulx0pei:6,regardless:[5,7,2],extra:[5,10,1],tweak:1,modul:[0,1,3,6,5,4,7,9,10,11],userdel:6,prefer:[8,10,4,11],mzdywqlw:6,leav:[4,10,6,1],instal:[0,3,6,5,4,7,10,11],mobil:[],httpd:[8,10,6,7,11],hyperspac:5,priv1:6,priv2:6,prove:10,is_cento:10,univers:12,fail_json:4,perl:[3,11],live:[0,10,11],handler:[11,6,1,7],criteria:10,msg:[4,9,6],scope:6,checkout:[0,4,10,6,3],ntpserver:9,idempot:[3,6,5,4,7,11],share:[0,10,9,4,3],claus:10,enhanc:[],accept:[4,6],easiest:[0,9,10,3],get_xml:6,ibm:3,module_arg:9,prepar:[],uniqu:9,cat:10,whatev:[3,10,4],purpos:[3,8,6,1,7],boilerpl:4,claim:1,hostvar:10,argument_spec:4,facter_hostnam:7,chip:3,agent:[0,5,11,3],critic:3,disadvantag:3,occur:7,alwai:[4,5,6,1,7],multipl:[3,1,5,6,7,8,9,10,11],ping:[0,9,6],uptim:9,write:[3,1,2,6,5,4,7,9,10],purg:6,pure:[],somevalu:[10,4],parameter:[10,7],map:[9,7],product:[10,6],mar:[],book:5,max:11,clone:[0,4],usabl:7,membership:[10,11],pattern:[0,1,3,6,7,8,9,10,11],mai:[0,1,2,3,6,4,7,9,10,11],underscor:9,data:[3,2,6,5,4,7,8,9,10,12],man:[],poseidon:[],practic:[3,1,2,5,6,7,10],seuser:6,explicit:[],predic:6,inform:[9,5,10,7,11],"switch":5,preced:10,combin:2,talk:[11,0,7,8],ender:5,ec2_statu:9,nbsp:[],ec2_id:9,still:[0,5,4,7,9,10],pointer:4,ec2_virtualization_typ:9,facter_:[6,7],jid:11,overlord:[],group:[0,1,2,3,4,5,6,7,8,9,10,11],monitor:[3,9],polici:[3,6],yaml:[3,1,2,5,7,8,10],window:[3,10],curli:[],pythonpath:[],mail:[0,1,2,3,4,5,6,7,8,9,10,11,12],job_statu:[],main:[3,10,4,1,7],xyz:11,security_group_pete_s_fancy_group:9,non:[3,4,6,7,8],hassl:3,env:0,encod:6,initi:6,l6pmiam1a8ywep:6,half:5,now:[0,3,6,5,4,7,9,10,11],discuss:5,setyp:6,shoudl:6,down:[9,6,7],term:[4,11],name:[1,2,6,4,7,8,9,10,11],config:[3,9,7,11],didn:[5,11],crypto:3,separ:[9,6,1,7],rock:[],distro:9,domain:[],arg1:6,laserllama:3,yeah:[],ensur:[0,5,6,7,10,11],wrap:1,backport:[0,6],facter:[10,5,6,7],happen:[9,4,5,6],subnet:9,shown:4,space:[3,5,6],infrar:[],profil:9,intermix:[],skylin:12,internet:3,correct:[2,5,6,7,9,10],ksmeta:9,lag:6,migrat:3,argv:4,args_fil:4,theori:7,org:[0,6,11,8],grab:[],card:5,care:[6,7],reusabl:4,couldn:3,frequenc:10,synchron:[10,7],thing:[0,1,2,5,4,7,8,10,11],place:[3,10,4],raleigh:[3,11,8],router:6,think:[10,5,4,1],frequent:[9,10],first:[0,3,6,5,4,8,10,11],origin:6,directli:[6,4,7,8,9,11],onc:[1,6,5,4,7,8,10],arrai:10,yourself:7,"long":[0,5,10,11,3],oppos:11,open:[3,5,4,7,10,12],tomorrow:12,somegroup:6,given:[10,5,6,1,11],unlink:6,convent:[9,4],gif:[],fierc:[],silenc:6,white:4,friend:12,especi:[3,5,10,1],copi:[0,10,9,6,11],motd_cont:10,retyp:0,netmask:6,github:[0,1,2,3,6,4,7,10,12],mostli:1,than:[0,1,2,3,4,5,6,7,9,10,11],cmdb:9,serv:[],wide:5,ec2_private_dns_nam:9,balanc:[3,10],were:[5,10,7,11],pre:[],sai:[0,3,5,6,7,10,11],nicer:[],id_webservergroup:9,argument:[4,9,6,7,8],dash:[9,2],loki:[],collat:6,sat:5,engin:12,squar:[],alias:4,destroi:6,note:[0,6,4,7,9,10,11],forc:6,ideal:[5,10],denomin:1,take:[6,5,4,7,10,11],noth:[6,7,2],channel:[0,2,3,6,5,4,8,9,11,12],begin:[11,2],sure:[9,10,7,11],normal:[9,11],track:[8,10,11],beta:[],pair:[9,4,2],adopt:5,meanwhil:5,runtim:10,mysql_db:6,show:[10,4,7,11],cheat:5,aggregr:4,geographi:1,permiss:[0,6,11],hack:[0,4],rotat:[3,7],xml:2,onli:[0,3,6,5,4,7,9,10,11],explicitli:[6,7],transact:10,activ:[6,12],enough:[8,5,11],dict:4,analyz:10,analyt:12,nearli:[6,2],variou:[10,5,6,7,11],get:[0,2,3,6,5,4,7,9,10,11,12],soon:[],repo:[4,9,6,11,8],ssl:[3,5],cannot:[10,6,7],ssh:[0,3,5,6,8,9,10,11],requir:[0,1,3,6,5,4,9,10,11],some_file_path_foo:1,through:[0,6,11,3],where:[0,1,6,5,4,9,10],summari:7,wiki:[],hour:6,hierachi:[],testserv:6,ansible_product_vers:6,fff:[],ansible_distribut:[10,6],concern:7,detect:6,ansible_ssh_host_key_dsa_publ:6,innov:[],review:[10,5,6,1,7],enumer:10,estat:12,ansible_system_vendor:6,between:[0,1,3,5,7,10],my_app:6,"import":[10,9,4,7,11],across:[9,5],rerun:7,guitar:[],cycl:0,come:[11,3,4,1,7],timmi:7,region:[9,11],contract:9,tutori:4,abc123:9,mani:[6,4,7,9,10,11],setenforc:7,among:[5,10],color:[10,4],overview:2,inspir:5,period:10,colon:[8,7],inventory_hostnam:[10,6],webapp:[5,6,11],poll:[10,11],other_vari:10,coupl:5,west:9,rebuild:[],rubi:[3,2,6,5,4,10,11],those:[9,10,7,11],"case":[3,6,5,4,7,9,10,11],mount:6,md5sum:[],straighten:5,trick:7,cast:4,invok:[],exist:[3,5,6,7,8,10,11],default_releas:6,newhost:6,advantag:[10,11],ec2_stat:9,canon:6,worri:[5,10],destin:[9,6],cluster:6,myapp:[10,11],rktgjk2httvs6gigvsuwwfod7:6,chkconfig:[],trival:4,http_port:[8,7],develop:[0,1,2,3,4,5,6,7,10,12],ansible_architectur:6,author:[3,6,1],media:12,same:[0,1,2,6,7,8,9,10,11],binari:[0,5],html:5,pad:[],pai:11,document:[3,1,2,5,4,7,9,10,11],week:[3,12],webserv:[3,1,6,7,8,9,10,11],closest:12,ec2_subnet_id:9,nest:[4,10,6],driven:[3,9],capabl:1,fruit:2,interventori:[],improv:[4,12],extern:[3,9,10,1],appropri:[9,10,5,6],choos:[0,5,6,7,3],markup:[],without:[0,5,4],promis:[],model:[3,5],dereferenc:[],execut:[0,1,3,6,5,4,7,9,10,11],when:[1,6,5,4,7,9,10,11],rest:4,venv:6,kill:7,speed:0,aws_access_key_id:9,versu:[0,5,1],europ:12,miscellan:1,except:[9,4],littl:[3,5],otherus:11,blob:[],notori:5,vulner:5,real:[0,10,7,12,3],ignore_error:10,around:5,ohai:[10,5,6,7],read:[0,2,3,6,5,4,9,11],dark:9,mon:[],world:[0,5,10,7,12],intel:6,whitespac:1,realtim:12,ak123:9,integ:[],server:[3,5,6,7,8,9,10,11],rycsbf1d8e5ptxesxhqs4iq:6,output:[9,4,5,6,7],manag:[0,1,2,3,5,6,7,8,9,10,11],ec2_kernel:9,assmebl:6,sneaker:[],jquery_directori:[],titan:[],altalang:[],server01:[],ansible_processor:6,noon:3,definit:[],legal:[4,1],moon:[],exit:[9,4,7],complic:[3,5],refer:[10,9,6,7,11],ansible_swaptotal_mb:6,power:[0,1,3,5,4,7,9,10],broken:1,found:[3,4,9,6,10],"throw":[5,4],earlier:[0,7],src:[10,9,6,7,11],stone:4,central:[3,5,10],greatli:[],get_url:6,acm:[8,10,6,1,11],wolf:9,stand:6,act:6,industri:[3,5,12],mytempl:6,effici:[5,10],terminolog:9,anothert:6,somescript:6,multinod:5,puppetmast:3,your:[0,1,3,6,5,4,7,8,9,10,11,12],charli:6,stare:4,log:[4,10,5,6,7],area:[],aren:5,privileged_us:[],start:[0,1,2,3,5,6,7,9,11],interfac:[9,5],low:6,lot:[3,1,4,8,10,11,12],ipv6:6,bundl:1,vpc_destination_vari:9,congratul:0,faster:[10,4],strawberri:2,dirti:[0,6],possibl:[1,6,4,7,8,9,10,11],"default":[0,3,6,5,4,8,9,10,11],ansible_fact:4,stacktrac:4,connect:[0,10,5,6,3],tasti:2,uid:6,creat:[0,3,5,6,7,9,10,11],certain:[10,5,6,7],deep:7,strongli:[5,1],deferenc:[],file:[0,1,2,3,6,4,7,8,9,10,11],my_custom_fact_can_be_used_now:10,again:[9,5,4,7],beyond:[10,12],googl:[0,1,2,3,4,5,6,7,8,9,10,11,12],compel:[],repositor:6,event:[4,5,6,7],valid:4,you:[0,1,2,3,4,5,6,7,8,9,10,11,12],external_var:10,poor:4,sequenc:3,symbol:6,signficantli:0,briefli:7,"60k":[3,5],postgresql_us:6,directori:[1,2,6,4,7,10,11],invest:5,descript:[6,1,7],chown:6,potenti:10,appl:2,qeuz:6,cpu:6,all:[0,1,2,3,4,5,6,7,8,9,10,11,12],forget:10,selinux:[6,7],lack:[],mnt:6,month:0,scalar:4,abil:[5,7],follow:[0,5,6,8,9,10,11],alt:[],disk:6,children:8,nors:[],articl:[3,4,6],program:[3,2,6,5,4,7,10],mcollect:[],arbitari:2,introduc:3,liter:6,tag_name_redi:9,song:[],fals:[10,4,2],faq:[3,5],util:[],mechan:[],failur:[9,10,5,4,7],veri:[0,1,3,6,5,4,7,9,10,11],condition:7,database_serv:8,list:[0,1,2,3,4,5,6,7,8,9,10,11,12],pbx:12,sane:5,stderr:4,small:[3,2,5,6,9,10],testuser2:10,testuser1:10,enterpris:[0,12],yetanotherdb:6,strung:11,zero:[8,4,7],design:[3,5,11,8],pass:[0,6,4,7,9,10,11],further:[5,10,11,2],ec2_spot_instance_request_id:9,what:[0,1,2,3,4,5,6,7,9,10,11,12],sub:[],section:[0,1,5,7,8,10,11],abl:[3,10,6,1],delet:[6,7,11],abbrevi:2,ec2_state_reason:9,method:[9,5,11],movement:3,hasn:5,full:[10,6,7],hash:[8,10,9,4,2],shouldn:[5,10],recip:0,first_available_fil:10,strong:3,modifi:[4,9,6],fail_on_us:6,valu:[2,6,4,7,9,10,11,12],search:12,ahead:[0,7],likin:5,memcach:[10,7],prior:[10,6],amount:9,pick:[5,11],action:[10,9,6,7],via:[0,10,9,6,3],shorthand:[10,4],factnam:10,ec2_state_cod:9,managememnt:[],href:[],select:[1,6,4,7,8,10,11],distinct:[],stdout:[9,10],regist:10,two:[3,9,6,7,8],rhel:0,demo:11,taken:[5,7],toggl:6,more:[0,1,3,5,6,7,8,9,10,11],flat:7,door:5,hundr:12,flag:[0,7,11],particular:[6,7,8,9,10,11],known:6,compani:[5,4,12],cach:[9,6],none:[0,9,6],pkgbuild:0,hous:[],launch:[10,7],dev:[5,6],remain:[],learn:[0,1,2,3,5,4,7,8,10],deb:6,nagio:6,instantan:5,prompt:[10,7,11],yamllint:2,moduledev:[],templat:[1,6,5,4,7,9,10,11],minimum:[10,4,7],explor:[0,9],pong:6,cygat:12,cours:[5,10,1],newlin:[],secur:[9,3,10,5,6],rather:[10,5,4],anoth:[3,1,2,5,6,7,10,11],simpl:[3,1,2,5,4,7,9,10,11],css:[],unabl:6,resourc:[4,10,5,6,7],referenc:[8,10,7],variant:0,fstype:6,ff0000:4,neccesssari:[],args_data:4,associ:[9,2],spool:6,"short":[0,5,10],django:6,caus:0,help:[0,1,2,3,4,5,6,7,8,9,10,11],xmpp:5,mission:3,uvh:0,scott:5,hierarchi:[],hell:3,suffer:5,paramet:[1,6,4,7,10,11],style:[4,10,6],psycopg2:6,cowsai:[10,7],pend:[],rapidli:[9,10],might:[8,10,9,4,7],wouldn:[9,5],good:[0,3,5,4,7,9,10],"return":[6,5,4,7,9,10],food:2,framework:[9,3,5],botnet:[3,5],odin:[],neccessari:[10,6],troubleshoot:6,instruct:[0,5],authent:6,mysteri:10,easili:[0,3,5,9,10,11],achiev:4,fulli:[0,6],only_if:[10,7],ansible_kernel:6,subsystem:[3,5,6],harm:[],mental:5,hard:[5,4],idea:[0,1,2,3,4,5,6,7,8,9,10,11],crontab:10,realli:[3,2,6,5,4,7],expect:[9,10,7],variablenam:[],halen:[],orient:7,hostnam:[8,10,9,6,7],ftp:6,safeti:[],bubbl:[10,6,7],print:[9,4],yaml_to_ini:8,qualifi:6,postgr:[6,7],proxi:[8,10],advanc:[0,1,3,5,7,9,10],pub:11,reason:[3,5,4,7,9,10],base:[3,10,5,6,1],believ:5,ask:[0,7,11],bash:[0,5,4,11,3],basi:7,thrown:[],pyyaml:0,sytem:5,daisi:[],drupal:12,omit:1,american:[],ansible_system:6,assign:[8,10,9,6,1],feed:[],sdwippefq74nppvuelhpkkaiojjnn1zuhfol:6,notifi:[1,6,5,4,7,11],obviou:[],feel:[9,10,2],exchang:10,number:[3,10,5,6,8],placehold:[10,7],done:[0,1,3,5,6,8,10],least:[10,1],blank:6,stabl:[0,6],fiction:[],differ:[0,1,3,5,6,7,8,9,10,11],list_vm:6,guest:6,script:[3,1,5,4,8,9,10,11],interact:[9,11],construct:[9,5,10,1,7],camelot:10,make_databas:6,statement:[10,4,7],cfg:11,banana:[],store:[8,10,6,12],option:[0,1,6,5,4,7,8,9,10,11],behind:[5,6],selector:11,part:[3,4,5,6,10],ec2_key_nam:9,consult:12,reinstal:[],jump:[0,3],kind:[5,4],grep:[],whenev:4,remot:[0,10,6,7,11],gotten:3,remov:[8,10,6,11],jqueri:[],reus:[5,10,7],architect:3,str:4,jvmdhw:6,toward:10,cleaner:10,comput:[9,5],well:[0,1,3,6,5,4,7,8,9,10,11],group_var:8,packag:[0,1,6,5,4,7,10,11],imagin:[],createhom:6,equival:[10,6],self:[5,4],"123i":12,also:[0,1,2,3,4,5,6,7,8,9,10,11,12],build:[9,0,4,5,6],brace:[],distribut:[0,5,1,12,3],passwd:6,previou:10,reach:[3,1],most:[0,1,2,3,5,6,7,9,10,11],plai:[3,10,7],plan:5,alpha:6,bug:[0,3],filesystem:10,clear:1,cover:[9,5,10],roughli:0,clojur:4,clean:5,pars:[5,4],usual:[7,11],awesom:[3,6,12],commerc:12,ansible_processor_count:6,alphanumer:9,devolv:[],mpd_ring:[],particularli:[9,10,7],fine:[0,4,1],find:[10,9,4,7,12],impact:[5,12],firewal:[3,10],nosql:12,pretti:[9,5,10],solut:[5,12],security_group_default:9,olympu:[],yml:[10,1,7],remedi:10,long_running_oper:11,financ:3,nativ:[0,10],silli:[],him:12,restart:[1,5,6,7,8,11],mdehaan:[6,11],dollar_sign_syntax:[],common:[1,2,6,4,9,10],wrote:4,set:[0,1,3,6,5,4,7,8,9,10,11],dump:[4,6],creator:12,security_group_webserv:9,see:[0,1,2,6,5,4,7,8,9,10,11,12],sec:10,arg:4,close:[3,4],setsebool:7,analog:[],expert:[5,12],someth:[1,5,4,7,9,10],restructur:7,hold:10,experi:5,altern:[10,11],solo:[],numer:[],aserv:0,solv:[],tag_aws_cloudformation_log:9,foo_port:[],popul:9,both:[0,6,5,4,9,10,11],last:[0,3],delimit:6,boto:9,thor:[],uncrypt:7,context:6,whole:5,load:[3,10,11],simpli:[9,6,1,7],point:[10,6,1],instanti:4,schedul:6,etc_other_conf_oth:1,header:8,shutdown:[10,6],suppli:6,asdf:[],backend:[],unsuccess:7,java:[],instrument:[],devic:6,due:[0,5,4],empti:9,ran:3,host4:9,enable_alert:6,escape_pod:8,strategi:5,wish:[0,1,2,7,9,10],fire:[3,5,10],imag:[],convert:[9,4],append:6,gap:5,understand:[3,10,7],comprimis:3,educ:4,look:[3,6,4,7,8,9,10,11],straight:11,batch:[5,11],"while":[3,5,10,1,7],unifi:[],smart:[6,11],behavior:[10,6,11,12],error:[4,10,5,6],loop:[10,7],pack:9,gimm:[],pragmat:[],motd:[9,10,7],max_client:7,readm:[],jpg:[],itself:[9,0,5,6],ansible_ssh_host_key_rsa_publ:6,unmount:6,fedora:[0,12],grant:6,login_usernam:6,belong:9,exit_json:4,higher:[0,10],optim:1,painless:3,alert:6,moment:9,temporari:[],user:[0,1,3,6,5,4,7,9,10,11,12],yesterdai:3,recent:5,lower:[3,5],task:[3,1,5,6,7,10,11],lib:4,older:6,entri:[3,11],lizenzfrei:12,spent:5,expens:9,endfor:10,spend:5,explan:4,ec2_monitor:9,mysql:6,love:[],centos6:9,shortcut:4,async_wrapp:4,appli:[8,10,6,7],input:[10,4],bin:[0,6,4,7,8,9,10,11],march:4,format:[3,2,5,6,7,8,9],judgement:6,nginx:6,game:[3,5],quest:10,bobdata:6,bit:[10,5,6,7],abduct:[],ec2_ownerid:9,xaby9ud5brbfvkedu:6,name_of_fact:[],knock:5,capital_of_assyria:[],signal:[5,6],"98dbcgqw5hme89cjgzro5ktkc5yu":6,manifest:5,"boolean":[4,2],popular:[3,12],cmdfile:6,postgresql_db:6,encount:6,often:[9,10,5,6,1],simplifi:11,creation:11,some:[0,1,3,6,5,4,7,8,9,10,11,12],back:[0,5,6,7,10,11],sampl:11,mirror:[],virtualenv:6,scale:[5,10],ec2_tag_kei:9,per:[9,10],pem:0,substitut:[],mathemat:[],larg:[5,10],either:[9,10,5,6],machin:[0,1,3,6,5,4,7,10,11],object:4,run:[0,2,3,6,5,4,7,8,9,10,11,12],step:[0,3,5,6,7,8,10,11],squeez:6,meantim:5,frob:6,major:9,impor:[],ec2_launch_tim:9,othervar:[],ansible_eth0:[10,6],block:10,fulfil:7,steelhous:12,primarili:[],unreach:7,intl:[],within:[9,8,5,10,7],contributor:12,chang:[3,1,6,4,7,8,10,11],subvers:6,bserver:0,rxp33wfphjwjwvhatfci1nrbaudqi:6,inclus:8,ansible_python_vers:6,group_nam:10,question:[0,1,2,3,4,5,6,7,8,9,10,11],fast:[0,5,3],custom:[3,5,10],includ:[1,6,4,7,8,9,10,11,12],suit:[5,7],forward:3,datastructur:9,foosbal:[8,6],lint:2,link:[4,6],translat:12,newer:0,line:[0,2,3,6,5,4,7,8,9,10,11],info:[9,6,11],concaten:6,consist:4,caller:6,planet:3,schmooz:12,ec2_dns_nam:9,highlight:[],similar:[8,10,9,6,11],curv:[3,5],module_common:4,constant:1,parser:4,doesn:[3,9,10,11,2],repres:[9,7,2],chat:[0,2,3,6,5,4,8,9,11,12],bracket:8,coder:5,crypt:[6,11],chgrp:[],disable_alert:6,likes_emac:2,transport:[0,5,3],peopl:[3,10,12],nice:[3,7],draw:3,asciidoc:[],meaning:[],svn:6,happier:3,far:[11,2],hello:0,jupit:[],local_act:10,pluggabl:[3,5],code:[3,1,5,4,7,9,10,11,12],alien:[],async_statu:11,privat:[0,9,10],sensit:10,elsewher:[],friendli:3,send:10,autostart:6,sens:[0,9,6,7],fatal:[4,7],blindingli:[],sent:4,sensic:3,logtre:6,whichev:11,signfic:4,asdf1234l:6,implicitli:5,ec2_root_device_typ:9,relev:[10,5,4],tri:6,magic:[10,5,4,7],roll:10,id_rsa:[0,11],michael:[3,12],fewer:10,"try":[0,3,6,5,4,7,9,10],p2xkxaczh6fc:6,pleas:[9,0,5,6],malici:5,impli:6,natur:[],focu:12,cron:[5,10],gmbh:12,mysqldb:6,download:[0,6],ansible_python_interpret:8,folk:[0,11,12],index:9,turn:[3,10,5,4],compar:5,access:[0,10,9,6,3],experiment:10,can:[0,1,2,3,4,5,6,7,8,9,10,11],chose:[],let:[0,2,3,6,4,7,9,11],ubuntu:[0,9,6],becom:10,sinc:[9,6,1,11],great:[3,1,5,4,7,10,12],convers:8,hypervisor:6,technolog:[3,12],"_some_str":7,later:[0,6,4,7,8,10,11],unsil:6,typic:[5,7,11],maker:12,hardi:6,fstab:6,heart:9,win:[],app:[5,10],apt:[10,6,1,11],austria:12,api:[9,3,4,5,6],cloud:5,fed:[6,7],from:[0,1,2,3,4,5,6,7,8,9,10,11,12],usa:8,commun:[9,3,5,6,7],"8b3satjxmpgbfbueebwubk5ejl":6,doubl:11,upgrad:[6,7,11],next:[0,3,5,6,7,8,10,11],few:[9,6],usr:[0,6,4,7,8,9,10,11],sort:[5,6,12],dbserver:[8,10,1,11],impress:[3,10],sbin:[10,6,7,11],trail:1,train:5,login_password:6,ansible_nocolor:10,starter:[4,7],account:[0,6,7,11],chdir:6,retriev:10,tunnel:3,alia:[4,6,8],openjdk:6,alic:7,halt:[],obvious:10,ec2_ramdisk:9,fetch:[10,6],proof:4,employe:[5,2],thirsti:6,tar:0,process:[3,5,6,7,11],lock:[5,10],sudo:[0,3,5,6,7,11],mango:2,high:[4,11],knows_oop:2,tag:[0,10,9,6],tab:7,tarbal:[],onlin:2,serial:10,surfac:[3,5],orson:5,lame:2,mysql_root_password:[],"_assembl":[],lepton:4,subdirectori:6,srv:[10,9,6,7,11],panic:10,stock:[],express:[3,2,4,7,9,10],gentoo:0,watch:3,attent:11,tier:3,philosophi:3,ansible_host:0,drop:4,orchestr:[3,5,7],correspond:6,element:[10,9,4],issu:[0,5,1,3],allow:[0,1,6,5,4,9,10,11],aws_secret_access_kei:9,move:[10,6,7],elit:2,comma:[9,6],loginpass:[],release_vers:10,bunch:[],somecommand:7,taboot:5,infrastructur:[0,1,3,5,7,8],anyon:5,therefor:10,ansible_product_uuid:6,dag:12,greater:8,python:[0,2,3,6,5,4,8,9,10,11],auto:[4,9,6],dai:[3,5],auth:6,devel:[],mention:[11,10,4,1,7],rubygem:[],instead:[0,1,5,6,10,11],strive:4,multiprocess:5,somewher:10,anyth:[9,4,5,6],edit:[0,9,6],slide:3,mode:[0,5,6,7,10,11],subset:[],grok:3,bump:[],strip:6,usernam:[6,11],ec2:[3,9],our:[3,12,11,2],patch:5,pitfal:4,special:[9,6],out:[3,1,6,5,4,7,8,9,10,11],variabl:[0,1,3,6,5,4,7,8,9,10,11],twice:[],reboot:[6,7,11],security_group_:9,rel:[8,6,1],"_default":6,leverag:0,ref:[],login_host:6,red:[9,3,5,4],clarifi:[],insid:[10,9,4,7],unpars:4,ansible_machin:6,control:[3,1,6,5,4,7,8,9,10,11],dictionari:[10,9,4,2],releas:[0,1,5,6,7,10],include_ansible_module_common:4,indent:2,could:[6,5,4,7,9,10],put:[0,1,6,7,8,10],fqdn:10,keep:[0,1,6,4,8,9,10],outsid:[9,4],adrian:5,retain:5,stuck:7,localdomain:6,delegate_to:[10,6],softwar:[3,1,5,6,9,10,11],qualiti:4,scene:6,echo:[0,9,10,11],exact:[],date:[0,4],puppet:[9,3,5,6],submit:[5,4],owner:[6,11],facil:[],prioriti:[10,6],ansible_lo:6,perfectli:[],mkdir:11,system:[0,1,3,6,5,4,7,8,9,10,11],messag:[9,4,5,6],attack:[3,5],pattern_goes_her:8,termin:11,"final":6,ipv4:[10,6],shell:[3,1,6,4,7,9,10,11],ec2_descript:9,"var":[8,10,6,1,7],rst:[],nobodi:4,priveledg:[],dive:7,richer:5,intervert:10,charact:[9,2],sweden:12,favorit:[5,10],deprec:8,sysadmin:5,ansible_processor_cor:6,have:[0,1,2,3,4,5,6,7,8,9,10,11,12],tabl:6,need:[0,1,2,3,4,5,6,7,8,9,10,11],cfengin:5,border:[],paramiko:[0,5],unexpect:[],min:[],mix:[8,10,7],baisc:[],tag_name_web:9,which:[0,1,2,3,4,5,6,7,8,9,10,11],datacent:[8,1,11],with_item:10,divers:3,singl:[1,5,6,7,9,10,11],ec2_security_group_nam:9,unless:[10,5,6,7],clash:[],deploy:[11,0,5,7,3],who:[3,9,6,7,12],salli:6,discov:[3,10,7],deploi:[3,5,6,7,10,11],comparison:[3,5],why:[5,1],serol:6,urg:1,inventory_hostname_short:10,url:6,gather:[10,5,6,7],request:6,self_destruct_countdown:8,snapshot:6,determin:10,built:[0,5,6,9,10,11],constrain:11,fact:[3,6,5,4,7,10],text:[],verbos:[4,6,7],bring:[5,7],playbook:[0,1,2,3,4,5,6,7,8,9,10,11],trivial:[0,3,6,4,9,10],anywai:8,varnam:7,redirect:11,locat:[8,10,6,7,11],tire:5,should:[0,1,2,3,4,5,6,7,9,10,12],ansible_swapfree_mb:6,won:[7,11],ec2_root_device_nam:9,"5px":[],local:[10,5,6],something_els:4,contribut:[0,3,6,4,11,12],notat:[],familiar:9,pave:[],autom:[5,1,11],somevar:10,increas:10,ansible_ssh_port:[],enabl:[4,6],organ:[6,1,12],bounc:[6,7],sha:6,stuff:[3,11],integr:[3,9,6],contain:[0,1,3,5,4,7,9,10],ymwaaaebalnasqn10tngsrde5arbsw8ctojqlyybciqgpytzw8zenerfxt7ij3fw3jh:6,view:3,legaci:6,cthy5bws9kmyjmeo0kfumh8hy4maxdokhq7dhbpircjs5jptogxirezjba67r6:6,nodeinfo:6,skynet:6,stack:10,gmail:[],statu:[4,10,6,11],wire:[],extend:[3,5,10,1,7],correctli:6,mainli:[5,10],state:[1,6,5,4,7,8,10,11],viper:10,progress:[],email:[3,1,12],kei:[0,2,3,6,5,4,7,9,10,11,12],homedir:6,tempfil:7,job:[11,2],entir:[3,1,5,4,7,8,9,10],homebrew:0,"2pm":3,addit:[1,6,4,7,8,9,10],instant:[],southeast:8,admin:[3,9],goal:[7,11],equal:[5,4,11],ohai_foo:[],etc:[0,3,5,6,7,8,9,10,11],instanc:[8,10,9,6,7],comment:[4,6,1],english:6,guidelin:4,chmod:[4,9,6,7],distil:5,rpm:[0,4,11],mailto:[],quit:[4,1],evalu:[10,11],platform:[10,5,6,12],addition:[10,7,11],decent:[],compos:7,compon:[],json:[2,6,5,4,9,10],besid:4,treat:[5,4,1],ungroup:[],immedi:[10,6,7],"2677m":6,yournam:7,capistrano:5,global_var:1,vmware:6,togeth:[6,1,11],minim:[0,4],ador:3,atlanta:[8,9,11],present:[3,4,10,6,1],authorized_kei:[0,6],multi:[3,5,7],plain:3,align:[],ansible_virtualization_typ:6,defin:[10,9,6,7],glossari:[],ultra:3,layer:[9,5],almost:[5,6],virt:6,site:[5,10,1,12],archiv:6,lightweight:9,partner:6,revis:[],michaeldehaan:[],surprisingli:[],scienc:[],welcom:[3,9],parti:[],cross:5,member:[6,2],handl:[3,4,10,6],inc:6,ansibl:[0,1,2,3,4,5,6,7,8,9,10,11,12],difficult:5,http:6,structur:[10,6],denot:8,upon:[],effect:[],libvirt:6,php:11,distutil:0,pull:[9,5,10],audit:[3,10,1],off:[3,5,10,1],center:[],seth:5,exampl:[0,1,2,3,4,5,6,7,8,9,10,11],command:[0,3,6,5,4,7,8,9,10,11],interpol:10,undefin:6,latest:[0,10,6,7,11],lest:3,tunabl:1,distanc:5,paus:6,less:[0,5,3],additon:0,starbuck:10,heavili:5,skill:2,simultan:11,web:[9,5,10,11,12],host5:9,cleanup:10,host3:[8,9],host2:[8,9],host1:[8,9],kick:[3,10,11],knob:1,branch:[0,6],xmlrpc:9,dest:[10,9,6,7,11],piec:9,know:[2,6,5,4,8,9,10],nor:[],password:[0,5,6,7,10,11],recurs:[6,11],python3:0,python2:0,insert:6,motorola:3,like:[0,1,2,3,4,5,6,7,8,9,10,11],success:[4,6,7],amazonaw:9,necessari:11,lose:11,async:10,architectur:[3,5,10],page:[0,5,11,2,3],ansible_hostnam:[10,6],shed:5,revers:[3,6],captur:4,twitter:[],linux:[0,5,6,12,3],"export":[0,9],home:6,librari:[6,1,2],tmp:[9,6,7,11],lead:[8,5,12],avoid:[0,6,7,3],thank:5,overlap:[],update_cach:6,encourag:[10,5,4,1,7],slight:9,importerror:[],usag:[1,6,5,4,8,10,11],symlink:[0,6],vhost:7,host:[0,1,3,6,5,4,7,8,9,10,11,12],although:4,simpler:5,about:[0,1,2,3,4,5,6,7,9,10,11],actual:[4,10,5,6],swear:3,discard:6,disabl:[6,7],ntp_server:8,own:[1,6,5,4,7,9,10],easy_instal:6,automat:[4,9,6,1,11],ec2_public_dns_nam:9,some_serv:8,hang:7,merg:[5,4],van:[],transfer:[4,6,7,11],intention:[],trigger:[5,6,7],"8agepocvjdhyzr7pahfxzgudgktgrl2qzryukcmwo1czbmbhci5fzimvths9":6,replac:6,biggest:12,individu:[8,1],"function":[4,6],simplejson:[0,6],subscrib:[],nnwugi:[],continu:[4,10,6],ec2_plac:9,eas:5,eat:11,count:[10,7],succe:4,made:[3,6,5,4,7,8,10],whether:[1,6,5,4,9,10],arg2:6,writeabl:7,asynchron:[10,7],record:2,below:[0,6,7],limit:[10,11],otherwis:[4,10,6,11],problem:[3,5,6,2],epel:0,pin:6,is_favcolor_blu:10,filenam:[10,6],ec2_tag_nam:9,implement:[9,5,4],ini:[8,9],mountpoint:6,pip:6,ing:6,probabl:[0,5,4,1,7],boot:6,detail:[9,4,7,11],virtual:[6,7],capabilit:[],other:[0,1,2,3,4,5,6,7,8,9,10,11,12],futur:[10,4,1],rememb:[7,11],varieti:[9,5,4],riak:12,ec2_external_inventori:9,repeat:[10,1],"class":[9,4,7],ansiblemodul:4,debian:[0,10,6],stai:10,sphinx:[],amp:[8,9],scientif:0,reliabl:5,rule:[10,1,11],portion:[8,6],emerg:3,name_of_host:[],"8btwaryr":6},objtypes:{},titles:["Getting Started","Best Practices","YAML Syntax","Introducing Ansible","Module Development","FAQ","Ansible Modules","Playbooks","Inventory & Patterns","API & Integrations","Advanced Playbooks","Command Line Examples And Next Steps","Who Uses Ansible"],objnames:{},filenames:["gettingstarted","bestpractices","YAMLSyntax","index","moduledev","faq","modules","playbooks","patterns","api","playbooks2","examples","who_uses_ansible"]})
Search.setIndex({objects:{},terms:{facter_operatingsystem:10,kickstart:10,func:[3,5],poorli:[],four:[8,12],prefix:[10,9,6,7],sleep:10,consider:9,whose:10,tweet:12,ebuild:0,aur:0,under:[10,7],spec:7,everi:[1,2,6,7,10,11],risk:10,vastli:7,ansible_virtualization_rol:6,redact:6,upstream:[],affect:[4,6,7],macaddress:6,ansible_config:11,showcas:4,cmd:6,supervisorctl:6,reg:[],ansible_librari:[],shlex:4,vars_prompt:[10,1],saltstack:[],x86_64:[9,6],awwxvv:6,seper:[8,10,5,6,7],direct:[5,6,7],chef:[3,5],second:[9,10,11],tag_key_valu:9,even:[0,5,7,8,9,10],hide:10,thunder:5,scp:11,constrast:[],"new":[5,6],net:[0,2,6,5,4,8,9,11,12],ever:[3,9,4,7,8],told:7,elimin:[10,11],manipul:[6,11],abov:[6,4,7,9,10,11],controlmast:[0,5],eckersberg:[5,2],hera:[],never:[9,4,5,6],here:[0,1,3,6,4,7,9,10,11,12],herd:5,"malm\u00f6":12,path:[1,6,4,7,8,9,10,11],interpret:8,datetim:4,permit:[],aka:10,ansible_ssh_arg:0,somethingels:10,brought:[],substr:6,unix:[3,5],cobblerd:9,ec2_:9,total:7,unit:4,highli:4,describ:[1,7],would:[0,1,6,5,4,7,8,9,10,11],h3d850bdf:[],ansible_memtotal_mb:6,noarch:0,dehaan:[3,12],overhead:3,typo:4,recommend:[4,6,1],type:[9,4,10,5,6],tell:[3,6,11,8],notif:[5,6],notic:5,warn:4,phone:[],exce:[],ec2_architectur:9,relai:7,loss:5,ansible_transport:0,must:[4,10,9,6,7],join:3,restor:6,setup:[0,1,3,6,4,7,9,10],work:[0,1,3,5,6,7,8,9,10,11],anotherdb:6,erb:5,virttyp:6,cento:[0,10,6],root:[0,1,3,5,6,7,10,11],overrid:[0,9,10],os_default:10,give:2,rpath:3,indic:[6,7],app_serv:10,somefil:7,want:[0,1,2,6,5,4,7,9,10,11],end:[4,5,6,7],hoc:[3,5,6,7,11],quot:[10,11],"1pm":3,how:[1,2,6,5,4,7,8,9,10,11],hop:5,yum:[0,1,6,4,7,10,11],perspect:9,updat:[10,6,11],dialect:[],recogn:[7,11],passwordless:11,after:[1,6,5,4,7,8,9,11],lab:[3,5],diagram:[],befor:[3,6,5,4,7,10,11],ohai_:[6,7],ec2_image_id:9,arch:0,parallel:[3,5,10,7,11],attempt:[6,7],ansible_product_seri:6,bootstrap:[3,5,6],credenti:[6,11],exclud:8,greek:[],unpaus:6,maintain:[0,9,4],environ:[0,10,9,6,11],enter:10,exclus:10,idontknow:[],order:[3,10,5,6,7],oper:[0,10,6,7,11],frontend:10,over:[0,3,5,8,9,10,11,12],fall:[10,6],orang:2,becaus:[1,2,5,4,9,10],fifo:6,ec2_previous_st:9,rpmbuild:0,ansible_interfac:6,privileg:6,zeu:[],gather_fact:10,vari:10,myfil:6,streamlin:10,shorter:4,cli:[9,11],img:[],fix:0,better:[6,11],offic:3,mydb:6,easier:[5,4,1,2,11],them:[0,1,2,3,4,5,6,7,8,10],thei:[3,6,5,4,7,8,9,10,11,12],fragment:6,etc_acme_conf_acm:1,safe:7,ec2_ten:9,"break":7,band:[],glorifi:[],jinja2:[0,10,5,6,7],ec2_ip_address:9,mgmt:9,httpd_sys_content_t:6,ec2_region:9,choic:[0,4],vidal:5,bonu:9,timeout:10,each:[1,2,6,5,4,7,8,9,10],debug:2,side:3,mean:[2,6,5,4,7,9,10],colleagu:[],exactli:[4,10,6],playbooks2:[],logo:[],some_password:10,contend:5,network:[3,5,10],dss:6,content:[0,1,6,5,4,7,8,9,10,11],dsl:[],pool:10,adapt:[9,6],got:5,forth:7,a1b1c1d1:9,site_fact:[10,4],ntp:8,nightmar:3,situat:6,free:[0,5,6,9,10,12],standard:[8,4],dotnet:2,fixm:[],md5:4,reconfigur:[5,10,1],openssh:[0,5,3],traceback:4,isv:12,ansible_form_factor:6,isn:[3,5],suppos:[8,10,4,7,11],rang:[3,6,11,8],render:6,clariti:[],wast:[],restrict:4,hook:[],unlik:[5,7],alreadi:[0,3,6,5,4,7,9,10],van_halen_port:7,apt_repositori:6,massiv:3,primari:[9,6],rewritten:[],top:[10,5,4,1,7],sometim:[10,6],destination_vari:9,master:9,too:[9,3,5,4,2],similarli:[9,10],john:[5,2],outag:[3,10],iptabl:[],ansible_memfree_mb:6,tool:[0,3,5,9,10,11],took:[3,5],"80ghz":6,somewhat:9,technic:[0,9,6],freemem:6,basho:12,target:[11,8,1,7],keyword:[10,5,6],provid:[1,2,6,5,4,7,9,10],tree:[4,9,6],project:[0,1,2,3,5,4,7,10,12],matter:11,ansible_distribution_releas:6,minut:[5,6,11],uses_cv:2,recheck:4,provis:5,fashion:5,"_authorized_kei":[],runner:9,ram:5,mind:[5,4],raw:[0,6],aforement:8,seem:[5,10,7],seek:6,someapp:6,sudo_us:7,contact:[0,9,6],blue:10,though:[0,1,3,6,5,4,7,9,10],bruce:0,limitless:10,deleg:10,regular:7,specifi:[0,2,6,5,4,7,9,10,11],bsd:[0,5],boxsubscrib:[],simplic:3,don:[0,1,3,6,5,4,7,8,10,11],doc:6,doe:[0,6,5,4,7,8,9,10,11],declar:7,wildcard:8,libpq:6,came:9,cobbler_external_inventori:[],random:7,syntax:[3,1,2,5,7,10,11],kerber:[0,3],pkg:[10,6,7,11],radic:3,identifi:5,pki:5,ec2_private_ip_address:9,priv:6,involv:4,absolut:[6,11],northeast:8,acquir:3,explain:4,configur:[0,1,2,3,5,6,7,8,9,10,11],apach:[10,5,6,7,11],ec2_instance_typ:9,version:[0,1,6,7,8,10,11],ldap:9,stop:[0,1,2,6,5,4,7,8,9,10,11],amazon:9,report:6,saturn:[],cellspac:[],bar:[8,9,6,7],host_var:8,excel:[3,5,10,8],"public":[10,9,6],reload:6,bad:4,respond:[6,7],daemonless:[],resist:1,result:[3,6,5,4,7,9,10],fail:[6,5,4,7,9,10],themselv:[],hammer:[],best:[3,1,6,5,4,7,9,10],subject:[5,10],brazil:12,heterogen:1,databas:[3,10,9,6,7],discoveri:6,figur:5,simplest:[9,4],awai:[5,10],irc:[0,2,6,5,4,8,9,11,12],approach:[9,3,5,10],attribut:[10,6],login_us:6,manpag:[],extens:5,add:[0,1,6,5,4,9,10,11],kitchen:12,easi:[0,1,3,6,5,4,8,10,11],howev:[0,5,4,11,8],against:[3,5,10,7,8],logic:[],somelist:10,login:[6,7],com:[0,6,4,8,9,12],compromis:5,assur:[10,7],foobar:6,height:[],written:[0,3,4,7,9,10],guid:[],assum:[8,9,6],speak:6,multiplay:3,ansible_library_path:4,three:[3,6,8],been:[9,3,5,6,11],much:[3,2,5,6,7,10,11],interest:[0,9],basic:[0,1,2,6,5,4,7,8,9,10,11],tini:10,quickli:[3,11],life:3,recomend:4,ani:[0,1,3,6,5,4,7,9,10,11],add_back_to_pool:10,mysql_us:6,dave:[],enterprisei:9,child:3,emploi:2,ugli:10,exception:5,east:9,servic:[1,6,4,7,8,9,10,11,12],ec2_security_group_id:9,vars_fil:[10,1,7],aim:5,ain:[],visit:3,tabl:[8,9,6],conf:[10,9,6,1,7],module_nam:[8,9],somekei:4,sever:[2,5,6,7,9,12],inventori:[0,1,3,6,7,8,9,10,11],perform:[0,3,5,6,7,10],suggest:6,make:[0,1,6,5,4,7,8,9,10,11],transpar:0,complex:[3,5,10,7],split:[8,4],complet:[1,2,5,7,9,10],wheel:[10,6],ansible_arch2:[],fragil:[],selevel:6,rail:5,hand:10,rais:[10,4],ownership:11,refin:[],tune:[10,11],speakerdeck:3,kept:[5,7],scenario:9,thu:6,ansible_:10,hypothet:[],tho:[],client:[],"_concatenated_valu":[],thi:[0,1,2,3,4,5,6,7,8,9,10,11],endif:10,programm:[9,5],everyth:[0,10],left:[],protocol:6,just:[0,1,2,3,4,5,6,7,9,10,11],photo:12,laptop:9,human:[7,2],braces_syntax:[],yet:[0,9,6,11,3],languag:[0,2,3,6,5,4,7,8,9,10,12],expos:1,had:10,spread:3,els:[0,10,4,7],ffffff:4,save:[4,10,6,7],hat:[3,5],gave:3,opt:6,applic:[3,5,6,7,9,10,12],supervisord:6,quirk:2,wai:[0,1,6,5,4,7,8,9,10],fusion:6,background:11,daemon:5,specif:[1,5,4,7,8,9,10,11],arbitrari:[5,10],manual:[5,7],remind:[10,4,1],el6:6,unnecessari:[],groups_logo_sm:[],www:8,right:[],deal:[4,6],maxim:5,dead:3,born:5,intern:[9,4],heritag:[],successfulli:[3,9],txt:[6,11],forcibl:[],bottom:7,cnf:6,tracker:[0,3],condit:[10,7,11],foo:[6,7,8,9,10,11],localhost:6,core:[3,4,5,6,11],plu:[],sensibl:0,web2:9,web1:9,promot:[],repositori:[6,1],peer:5,"super":3,chapter:7,sshd:3,postgresql:6,surround:[],simul:10,"2ydx8":6,commit:1,produc:[4,6,12],match:[4,7],ppa:[0,6],basenam:6,contriv:[],halon_system_timeout:8,wrap:[],install_recommend:6,storag:8,eth0:6,ec2_vpc_id:9,git:[0,1,6,5,4,8,10,11],fabric:5,suffici:10,support:[0,1,3,6,5,4,7,9,10,11],happi:3,avail:[0,1,2,6,5,4,7,8,9,10,11],width:[],reli:[3,5,10],gid:6,wordpress:7,call:[2,6,5,4,7,8,9,10],war:3,fork:[9,5,10,11],head:[6,11],python26:0,form:[4,10,6,7,2],offer:[],altogeth:3,batman:0,forg:6,groupfil:8,"true":[4,10,6,7,2],freenod:[0,2,3,6,5,4,8,9,11,12],absent:[4,6,1,11],inquir:4,maximum:10,until:[10,6],ansible_fqdn:6,fundament:6,featur:[0,1,3,5,6,7,8,10],"abstract":5,fedoraproject:[],plugin:9,cobbler:[9,3,5],desir:[8,4,7],ship:[4,5,6],check:[4,10,6,11],assembl:6,pipe:[6,11],encrypt:5,take_out_of_pool:10,tip:[8,10,6,1,7],role:[10,6,1,7],test:[0,6,5,4,9,10,12],tie:9,unlimit:[],maxrequestsperchild:8,node:[0,3,5,6,7,9,10,11],relat:6,intend:4,phoenix:8,devop:3,intent:[],consid:[4,1,7],receiv:6,longer:4,anywher:[],ignor:[10,4,7],time:[0,2,3,6,5,4,7,8,9,10,11],push:[3,5,10,7],concept:[9,10,1,11],vpc:9,chain:[],"5rxgmiicbrh":6,skip:[10,7],consum:5,invent:[],skim:3,operatingsystem:10,decid:[10,5,4,7,11],middl:[],depend:[0,4,5,6,10],zone:9,flask:6,graph:[5,12],readabl:[1,7],decis:10,downtim:6,southwest:8,sourc:[0,1,2,3,4,5,6,7,9,10,11,12],string:[4,6,7],somelog:6,word:[3,9,10],brows:4,jdk:6,administr:[],level:[6,7,2],did:[3,10,9,4],passno:6,item:[9,10,2],team:5,quick:0,ansible_product_nam:6,prevent:4,slower:0,trend:6,ec2_platform:9,anaconda:10,port:[8,5,11],favcolor:[10,9,4],ansible_distribution_vers:6,current:[0,6,5,4,10,11],suspect:[],ceec4eif7ya:6,deriv:[],gener:[0,6,5,4,7,9,10],address:[1,6,5,4,8,9,10,11],along:[4,7],wait:10,box:[3,6,11],precursor:3,alta:12,extrem:[0,10,5,4],bob:[6,7],commonli:[11,2],ourselv:7,scpnmy8rks7fyk8ulx0pei:6,regardless:[5,7,2],extra:[5,10,1],tweak:1,modul:[0,1,3,6,5,4,7,9,10,11],userdel:6,prefer:[8,10,4,11],mzdywqlw:6,leav:[4,10,6,1],instal:[0,3,6,5,4,7,10,11],mobil:[],httpd:[8,10,6,7,11],hyperspac:5,priv1:6,priv2:6,prove:10,is_cento:10,univers:12,fail_json:4,perl:[3,11],live:[0,10,11],handler:[11,6,1,7],criteria:10,msg:[4,9,6],scope:6,checkout:[0,4,10,6,3],ntpserver:9,idempot:[3,6,5,4,7,11],share:[0,10,9,4,3],claus:10,enhanc:[],accept:[4,6],easiest:[0,9,10,3],get_xml:6,ibm:3,module_arg:9,prepar:[],uniqu:9,cat:10,whatev:[3,10,4],purpos:[3,8,6,1,7],boilerpl:4,claim:1,hostvar:10,argument_spec:4,facter_hostnam:7,chip:3,agent:[0,5,11,3],critic:3,occur:7,alwai:[4,5,6,1,7],multipl:[3,1,5,6,7,8,9,10,11],ping:[0,9,6],uptim:9,write:[3,1,2,6,5,4,7,9,10],purg:6,pure:[],somevalu:[10,4],parameter:[10,7],map:[9,7],product:[10,6],mar:[],book:5,max:11,clone:[0,4],usabl:7,membership:[10,11],pattern:[0,1,3,6,7,8,9,10,11],mai:[0,1,2,3,6,4,7,9,10,11],underscor:9,data:[3,2,6,5,4,7,8,9,10,12],man:[],poseidon:[],practic:[3,1,2,5,6,7,10],seuser:6,explicit:[],predic:6,inform:[9,5,10,7,11],"switch":5,preced:10,combin:2,talk:[11,0,7,8],ender:5,ec2_statu:9,nbsp:[],ec2_id:9,still:[0,5,4,7,9,10],pointer:4,ec2_virtualization_typ:9,facter_:[6,7],jid:11,overlord:[],group:[0,1,2,3,4,5,6,7,8,9,10,11],monitor:[3,9],polici:[3,6],yaml:[3,1,2,5,7,8,10],window:[3,10],curli:[],pythonpath:[],mail:[0,1,2,3,4,5,6,7,8,9,10,11,12],job_statu:[],main:[3,10,4,1,7],xyz:11,security_group_pete_s_fancy_group:9,non:[3,4,6,7,8],hassl:3,env:0,encod:6,initi:6,l6pmiam1a8ywep:6,half:5,now:[0,3,6,5,4,7,9,10,11],discuss:5,setyp:6,shoudl:6,down:[9,6,7],term:[4,11],name:[1,2,6,4,7,8,9,10,11],config:[3,9,7,11],didn:[5,11],crypto:3,separ:[9,6,1,7],rock:[],distro:9,domain:[],arg1:6,laserllama:3,yeah:[],ensur:[0,5,6,7,10,11],contrib:[4,6],backport:[0,6],facter:[10,5,6,7],happen:[9,4,5,6],subnet:9,shown:4,space:[3,5,6],infrar:[],profil:9,intermix:[],skylin:12,internet:3,correct:[2,5,6,7,9,10],ksmeta:9,lag:6,migrat:3,argv:4,args_fil:4,theori:7,org:[0,6,11,8],grab:[],card:5,care:[6,7],reusabl:4,couldn:3,frequenc:10,synchron:[10,7],thing:[0,1,2,5,4,7,8,10,11],place:[3,10,4],raleigh:[3,11,8],router:6,think:[10,5,4,1],frequent:[9,10],first:[0,3,6,5,4,8,10,11],origin:6,directli:[6,4,7,8,9,11],onc:[1,6,5,4,7,8,10],arrai:10,yourself:7,"long":[0,5,10,11,3],oppos:11,open:[3,5,4,7,10,12],tomorrow:12,somegroup:6,given:[10,5,6,1,11],unlink:6,convent:[9,4],gif:[],fierc:[],silenc:6,white:4,friend:12,especi:[3,5,10,1],copi:[0,10,9,6,11],motd_cont:10,retyp:0,netmask:6,github:[0,1,2,3,6,4,7,10,12],mostli:1,than:[0,1,2,3,4,5,6,7,9,10,11],cmdb:9,serv:[],wide:5,ec2_private_dns_nam:9,balanc:[3,10],were:[5,10,7,11],pre:[],sai:[0,3,5,6,7,10,11],nicer:[],id_webservergroup:9,argument:[4,9,6,7,8],dash:[9,2],loki:[],collat:6,sat:5,engin:12,squar:[],alias:4,destroi:6,note:[0,6,4,7,9,10,11],forc:6,ideal:[5,10],denomin:1,take:[6,5,4,7,10,11],noth:[6,7,2],channel:[0,2,3,6,5,4,8,9,11,12],begin:[11,2],sure:[9,10,7,11],normal:[9,11],track:[8,10,11],beta:[],pair:[9,4,2],adopt:5,meanwhil:5,runtim:10,mysql_db:6,show:[10,4,7,11],cheat:5,aggregr:4,geographi:1,permiss:[0,6,11],hack:[0,4],rotat:[3,7],xml:2,onli:[0,3,6,5,4,7,9,10,11],explicitli:[6,7],transact:10,activ:[6,12],enough:[8,5,11],dict:4,analyz:10,analyt:12,nearli:[6,2],variou:[10,5,6,7,11],get:[0,2,3,6,5,4,7,9,10,11,12],soon:[],repo:[4,9,6,11,8],ssl:[3,5],cannot:[10,6,7],ssh:[0,3,5,6,8,9,10,11],requir:[0,1,3,6,5,4,9,10,11],some_file_path_foo:1,through:[0,6,11,3],where:[0,1,6,5,4,9,10],summari:7,wiki:[],hour:6,hierachi:[],testserv:6,ansible_product_vers:6,fff:[],ansible_distribut:[10,6],concern:7,detect:6,ansible_ssh_host_key_dsa_publ:6,innov:[],review:[10,5,6,1,7],enumer:10,estat:12,ansible_system_vendor:6,between:[0,1,3,5,7,10],my_app:6,"import":[10,9,4,7,11],across:[9,5],rerun:7,guitar:[],cycl:0,come:[3,4,7,11],timmi:7,region:[9,11],contract:9,tutori:4,abc123:9,mani:[6,4,7,9,10,11],setenforc:7,among:[5,10],color:[10,4],overview:2,inspir:5,period:10,colon:[8,7],inventory_hostnam:[10,6],webapp:[5,6,11],poll:[10,11],other_vari:10,coupl:5,west:9,rebuild:[],rubi:[3,2,6,5,4,10,11],those:[9,10,7,11],"case":[3,6,5,4,7,9,10,11],mount:6,md5sum:[],straighten:5,trick:7,cast:4,invok:[],exist:[3,5,6,7,8,10,11],default_releas:6,newhost:6,advantag:[10,11],ec2_stat:9,canon:6,worri:[5,10],destin:[9,6],cluster:6,myapp:[10,11],rktgjk2httvs6gigvsuwwfod7:6,chkconfig:[],trival:4,http_port:[8,7],develop:[0,1,2,3,4,5,6,7,10,12],ansible_architectur:6,author:[3,6,1],media:12,same:[0,1,2,6,7,8,9,10,11],binari:[0,5],html:5,pad:[],pai:11,document:[3,1,2,5,4,7,9,10,11],week:[3,12],webserv:[3,1,6,7,8,9,10,11],closest:12,ec2_subnet_id:9,nest:[4,10,6],driven:[3,9],capabl:1,fruit:2,interventori:[],improv:[4,12],extern:[3,9,10,1],appropri:[9,10,5,6],choos:[0,5,6,7,3],markup:[],without:[0,5,4],promis:[],model:[3,5],dereferenc:[],execut:[0,3,6,5,4,7,9,10,11],when:[1,6,5,4,7,9,10,11],rest:4,venv:6,kill:7,speed:0,aws_access_key_id:9,versu:[0,5,1],europ:12,miscellan:1,except:[9,4],littl:[3,5],otherus:11,blob:[],notori:5,vulner:5,real:[0,10,7,12,3],ignore_error:10,around:5,ohai:[10,5,6,7],read:[0,2,3,6,5,4,9,11],dark:9,mon:[],world:[0,5,10,7,12],intel:6,whitespac:1,realtim:12,ak123:9,integ:[],server:[3,5,6,7,8,9,10,11],rycsbf1d8e5ptxesxhqs4iq:6,output:[9,4,5,6,7],manag:[0,2,3,5,6,7,8,9,10,11],ec2_kernel:9,assmebl:6,sneaker:[],jquery_directori:[],titan:[],altalang:[],server01:[],ansible_processor:6,noon:3,definit:[],legal:[4,1],moon:[],exit:[9,4,7],complic:[3,5],refer:[10,9,6,7,11],ansible_swaptotal_mb:6,power:[0,1,3,5,4,7,9,10],broken:1,found:[3,4,9,6,10],"throw":[5,4],earlier:[0,7],src:[10,9,6,7,11],stone:4,central:[3,5,10],greatli:[],get_url:6,acm:[8,10,6,1,11],wolf:9,stand:6,act:6,industri:[3,5,12],mytempl:6,effici:[5,10],terminolog:9,anothert:6,somescript:6,multinod:5,puppetmast:3,your:[0,1,3,6,5,4,7,8,9,10,11,12],charli:6,stare:4,log:[4,10,5,6,7],area:[],aren:5,privileged_us:[],start:[0,1,2,3,5,6,7,9,11],interfac:[9,5],low:6,lot:[3,1,4,8,10,11,12],ipv6:6,bundl:1,vpc_destination_vari:9,congratul:0,faster:[10,4],strawberri:2,dirti:[0,6],possibl:[1,6,4,7,8,9,10,11],"default":[0,3,6,5,4,8,9,10,11],ansible_fact:4,stacktrac:4,connect:[0,10,5,6,3],tasti:2,uid:6,creat:[0,3,5,6,7,9,10,11],certain:[10,5,6,7],deep:7,strongli:[5,1],deferenc:[],file:[0,1,2,3,6,4,7,8,9,10,11],my_custom_fact_can_be_used_now:10,again:[9,5,4,7],beyond:[10,12],googl:[0,1,2,3,4,5,6,7,8,9,10,11,12],compel:[],repositor:6,event:[4,5,6,7],valid:4,you:[0,1,2,3,4,5,6,7,8,9,10,11,12],external_var:10,poor:4,sequenc:3,symbol:6,signficantli:0,briefli:7,"60k":[3,5],postgresql_us:6,directori:[1,2,6,4,7,10,11],invest:5,descript:[6,1,7],chown:6,potenti:10,appl:2,qeuz:6,cpu:6,all:[0,1,2,3,4,5,6,7,8,9,10,11,12],forget:10,selinux:[6,7],lack:[],mnt:6,month:0,scalar:4,abil:[5,7],follow:[0,5,6,8,9,10,11],alt:[],disk:6,children:8,nors:[],articl:[3,4,6],program:[3,2,6,5,4,7,10],mcollect:[],arbitari:2,introduc:3,liter:6,tag_name_redi:9,song:[],fals:[10,4,2],faq:[3,5],util:[],mechan:[],failur:[9,10,5,4,7],veri:[0,1,3,6,5,4,7,9,10,11],condition:7,database_serv:8,list:[0,1,2,3,4,5,6,7,8,9,10,11,12],pbx:12,sane:5,stderr:4,small:[3,2,5,6,9,10],testuser2:10,testuser1:10,enterpris:[0,12],yetanotherdb:6,strung:11,zero:[8,4,7],design:[3,5,11,8],pass:[0,6,4,7,9,10,11],further:[5,10,11,2],ec2_spot_instance_request_id:9,what:[0,1,2,3,4,5,6,7,9,10,11,12],sub:[],section:[0,1,5,7,8,10,11],abl:[3,10,6],delet:[6,7,11],abbrevi:2,ec2_state_reason:9,method:[9,5,11],movement:3,hasn:5,full:[10,6,7],hash:[8,10,9,4,2],shouldn:[5,10],recip:0,first_available_fil:10,strong:3,modifi:[4,9,6],fail_on_us:6,valu:[2,6,4,7,9,10,11,12],search:12,ahead:[0,7],likin:5,memcach:[10,7],prior:[10,6],amount:9,pick:[5,11],action:[10,9,6,7],via:[0,10,9,6,3],shorthand:[10,4],factnam:10,ec2_state_cod:9,managememnt:[],href:[],select:[1,6,4,7,8,10,11],distinct:[],stdout:[9,10],regist:10,two:[3,9,6,7,8],rhel:0,demo:11,taken:[5,7],toggl:6,more:[0,1,3,5,6,7,8,9,10,11],flat:7,door:5,hundr:12,flag:[0,7,11],particular:[6,7,8,9,10,11],known:6,compani:[5,4,12],cach:[9,6],none:[0,9,6],pkgbuild:0,hous:[],launch:[10,7],dev:[5,6],remain:[],learn:[0,1,2,3,5,4,7,8,10],deb:6,nagio:6,instantan:5,prompt:[10,7,11],yamllint:2,moduledev:[],templat:[1,6,5,4,7,9,10,11],minimum:[10,4,7],explor:[0,9],pong:6,cygat:12,cours:[5,10,1],newlin:[],secur:[9,3,10,5,6],rather:[10,5,4],anoth:[3,1,2,5,6,7,10,11],simpl:[3,1,2,5,4,7,9,10,11],css:[],unabl:6,resourc:[4,10,5,6,7],referenc:[8,10,7],variant:0,fstype:6,ff0000:4,neccesssari:[],args_data:4,associ:[9,2],spool:6,"short":[0,5,10],django:6,caus:0,help:[0,1,2,3,4,5,6,7,8,9,10,11],xmpp:5,mission:3,uvh:0,scott:5,hierarchi:[],hell:3,suffer:5,paramet:[1,6,4,7,10,11],style:[4,10,6],psycopg2:6,cowsai:[10,7],pend:[],rapidli:[9,10],might:[8,10,9,4,7],wouldn:[9,5],good:[0,3,5,4,7,9,10],"return":[6,5,4,7,9,10],food:2,framework:[9,3,5],botnet:[3,5],odin:[],neccessari:[10,6],troubleshoot:6,instruct:[0,5],authent:6,mysteri:10,easili:[0,3,5,9,10,11],achiev:4,fulli:[0,6],only_if:[10,7],ansible_kernel:6,subsystem:[3,5,6],harm:[],mental:5,hard:[5,4],idea:[0,1,2,3,4,5,6,7,8,9,10,11],crontab:10,realli:[3,2,6,5,4,7],expect:[9,10,7],variablenam:[],halen:[],orient:7,hostnam:[8,10,9,6,7],ftp:6,safeti:[],bubbl:[10,6,7],print:[9,4],yaml_to_ini:8,qualifi:6,postgr:[6,7],proxi:[8,10],advanc:[0,1,3,5,7,9,10],pub:11,reason:[3,5,4,7,9,10],base:[3,10,5,6,1],believ:5,ask:[0,7,11],bash:[0,5,4,11,3],basi:7,thrown:[],pyyaml:0,sytem:5,daisi:[],drupal:12,omit:1,american:[],ansible_system:6,assign:[8,10,9,6,1],feed:[],sdwippefq74nppvuelhpkkaiojjnn1zuhfol:6,notifi:[1,6,5,4,7,11],obviou:[],feel:[9,10,2],exchang:10,number:[3,10,5,6,8],placehold:[10,7],done:[0,1,3,5,6,8,10],least:[10,1],blank:6,stabl:[0,6],fiction:[],differ:[0,1,3,5,6,7,8,9,10,11],list_vm:6,guest:6,script:[3,5,4,8,9,10,11],interact:[9,11],construct:[9,5,10,7],camelot:10,make_databas:6,statement:[10,4,7],cfg:11,banana:[],store:[8,10,6,12],option:[0,1,6,5,4,7,8,9,10,11],behind:[5,6],selector:11,part:[3,4,5,6,10],ec2_key_nam:9,consult:12,reinstal:[],jump:[0,3],kind:[5,4],grep:[],whenev:4,remot:[0,10,6,7,11],gotten:3,remov:[8,10,6,11],jqueri:[],reus:[5,10,7],architect:3,str:4,jvmdhw:6,toward:10,cleaner:10,comput:[9,5],well:[0,1,3,6,5,4,7,8,9,10,11],group_var:8,packag:[0,1,6,5,4,7,10,11],imagin:[],createhom:6,equival:[10,6],self:[5,4],"123i":12,also:[0,1,2,3,4,5,6,7,8,9,10,11,12],build:[9,0,4,5,6],brace:[],distribut:[0,5,1,12,3],passwd:6,previou:10,reach:[3,1],most:[0,1,2,3,5,6,7,9,10,11],plai:[3,10,7],plan:5,alpha:6,bug:[0,3],filesystem:10,clear:1,cover:[9,5,10],roughli:0,clojur:4,clean:5,pars:[5,4],usual:[7,11],awesom:[3,6,12],commerc:12,ansible_processor_count:6,alphanumer:9,devolv:[],mpd_ring:[],particularli:[9,10,7],fine:[0,4],find:[10,9,4,7,12],impact:[5,12],firewal:[3,10],nosql:12,pretti:[9,5,10],solut:[5,12],security_group_default:9,olympu:[],yml:[10,1,7],remedi:10,long_running_oper:11,financ:3,nativ:[0,10],silli:[],him:12,restart:[1,5,6,7,8,11],mdehaan:[6,11],dollar_sign_syntax:[],common:[1,2,6,4,9,10],wrote:4,set:[0,1,3,6,5,4,7,8,9,10,11],dump:[4,6],creator:12,security_group_webserv:9,see:[0,1,2,6,5,4,7,8,9,10,11,12],sec:10,arg:4,disadvantag:3,setsebool:7,analog:[],expert:[5,12],someth:[1,5,4,7,9,10],restructur:7,hold:10,experi:5,altern:[10,11],solo:[],numer:[],aserv:0,solv:[],tag_aws_cloudformation_log:9,foo_port:[],popul:9,both:[0,6,5,4,9,10,11],last:[0,3],delimit:6,boto:9,thor:[],uncrypt:7,context:6,whole:5,load:[3,10,11],simpli:[9,6,1,7],point:[10,6,1],instanti:4,schedul:6,etc_other_conf_oth:1,header:8,shutdown:[10,6],suppli:6,asdf:[],backend:[],unsuccess:7,java:[],instrument:[],devic:6,due:[0,5,4],empti:9,ran:3,host4:9,enable_alert:6,escape_pod:8,strategi:5,wish:[0,9,10,7,2],fire:[3,5,10],imag:[],convert:[9,4],append:6,gap:5,understand:[3,10,7],comprimis:3,educ:4,look:[3,6,4,7,8,9,10,11],straight:11,batch:[5,11],"while":[3,5,10,1,7],unifi:[],smart:[6,11],behavior:[10,6,11,12],error:[4,10,5,6],loop:[10,7],pack:9,gimm:[],pragmat:[],motd:[9,10,7],max_client:7,readm:[],jpg:[],itself:[9,0,5,6],ansible_ssh_host_key_rsa_publ:6,unmount:6,fedora:[0,12],grant:6,login_usernam:6,belong:9,exit_json:4,higher:[0,10],optim:1,painless:3,alert:6,moment:9,temporari:[],user:[0,1,3,6,5,4,7,9,10,11,12],yesterdai:3,recent:5,lower:[3,5],task:[3,1,5,6,7,10,11],lib:4,older:6,entri:[3,11],lizenzfrei:12,spent:5,expens:9,endfor:10,spend:5,explan:4,ec2_monitor:9,mysql:6,love:[],centos6:9,shortcut:4,async_wrapp:4,appli:[8,10,6,7],input:[10,4],bin:[0,6,4,7,8,9,10,11],march:4,format:[3,2,5,6,7,8,9],judgement:6,nginx:6,game:[3,5],quest:10,bobdata:6,bit:[10,5,6,7],abduct:[],ec2_ownerid:9,xaby9ud5brbfvkedu:6,name_of_fact:[],knock:5,capital_of_assyria:[],signal:[5,6],"98dbcgqw5hme89cjgzro5ktkc5yu":6,manifest:5,"boolean":[4,2],popular:[3,12],cmdfile:6,postgresql_db:6,encount:6,often:[9,10,5,6,1],simplifi:11,creation:11,some:[0,1,3,6,5,4,7,8,9,10,11,12],back:[0,5,6,7,10,11],sampl:11,mirror:[],virtualenv:6,scale:[5,10],ec2_tag_kei:9,per:[9,10],pem:0,substitut:[],mathemat:[],larg:[5,10],either:[9,10,5,6],machin:[0,1,3,6,5,4,7,10,11],object:4,run:[0,2,3,6,5,4,7,8,9,10,11,12],step:[0,3,5,6,7,8,10,11],squeez:6,meantim:5,frob:6,major:9,impor:[],ec2_launch_tim:9,othervar:[],ansible_eth0:[10,6],block:10,fulfil:7,steelhous:12,primarili:[],unreach:7,intl:[],within:[9,8,5,10,7],contributor:12,chang:[3,1,6,4,7,8,10,11],subvers:6,bserver:0,rxp33wfphjwjwvhatfci1nrbaudqi:6,inclus:8,ansible_python_vers:6,group_nam:10,question:[0,1,2,3,4,5,6,7,8,9,10,11],fast:[0,5,3],custom:[3,5,10],includ:[1,6,4,7,8,9,10,11,12],suit:[5,7],forward:3,datastructur:9,foosbal:[8,6],lint:2,link:[4,6],translat:12,newer:0,line:[0,2,3,6,5,4,7,8,9,10,11],info:[9,6,11],concaten:6,consist:4,caller:6,planet:3,schmooz:12,ec2_dns_nam:9,highlight:[],similar:[8,10,9,6,11],curv:[3,5],module_common:4,constant:1,parser:4,doesn:[3,9,10,11,2],repres:[9,7,2],chat:[0,2,3,6,5,4,8,9,11,12],bracket:8,coder:5,crypt:[6,11],chgrp:[],disable_alert:6,likes_emac:2,transport:[0,5,3],peopl:[3,10,12],nice:[3,7],draw:3,asciidoc:[],meaning:[],svn:6,happier:3,far:[11,2],hello:0,jupit:[],local_act:10,pluggabl:[3,5],code:[3,1,5,4,7,9,10,11,12],alien:[],async_statu:11,privat:[0,9,10],sensit:10,elsewher:[],friendli:3,send:10,autostart:6,sens:[0,9,6,7],fatal:[4,7],blindingli:[],sent:4,sensic:3,logtre:6,whichev:11,signfic:4,asdf1234l:6,implicitli:5,ec2_root_device_typ:9,relev:[10,5,4],tri:6,magic:[10,5,4,7],roll:10,id_rsa:[0,11],michael:[3,12],fewer:10,"try":[0,3,6,5,4,7,9,10],p2xkxaczh6fc:6,pleas:[9,0,5,6],malici:5,impli:6,natur:[],focu:12,cron:[5,10],gmbh:12,mysqldb:6,download:[0,6],ansible_python_interpret:8,folk:[0,11,12],index:9,turn:[3,10,5,4],compar:5,access:[0,10,9,6,3],experiment:10,can:[0,1,2,3,4,5,6,7,8,9,10,11],chose:[],let:[0,2,3,6,4,7,9,11],ubuntu:[0,9,6],becom:10,sinc:[9,6,1,11],great:[3,1,5,4,7,10,12],convers:8,hypervisor:6,technolog:[3,12],"_some_str":7,later:[0,6,4,7,8,10,11],unsil:6,typic:[5,7,11],maker:12,hardi:6,fstab:6,heart:9,win:[],app:[5,10],apt:[10,6,1,11],austria:12,api:[9,3,4,5,6],cloud:5,fed:[6,7],from:[0,1,2,3,4,5,6,7,8,9,10,11,12],usa:8,commun:[9,3,5,6,7],"8b3satjxmpgbfbueebwubk5ejl":6,doubl:11,upgrad:[6,7,11],next:[0,3,5,6,7,8,10,11],few:[9,6],usr:[0,6,4,7,8,9,10,11],sort:[5,6,12],dbserver:[8,10,1,11],impress:[3,10],sbin:[10,6,7,11],trail:1,train:5,login_password:6,ansible_nocolor:10,starter:[4,7],account:[0,6,7,11],chdir:6,retriev:10,tunnel:3,alia:[4,6,8],openjdk:6,alic:7,halt:[],obvious:10,ec2_ramdisk:9,fetch:[10,6],proof:4,employe:[5,2],thirsti:6,tar:0,process:[3,5,6,7,11],lock:[5,10],sudo:[0,3,5,6,7,11],mango:2,high:[4,11],knows_oop:2,tag:[0,10,9,6],tab:7,tarbal:[],onlin:2,serial:10,surfac:[3,5],orson:5,lame:2,mysql_root_password:[],"_assembl":[],lepton:4,subdirectori:6,srv:[10,9,6,7,11],panic:10,stock:[],express:[3,2,4,7,9,10],gentoo:0,watch:3,attent:11,tier:3,philosophi:3,ansible_host:0,drop:4,orchestr:[3,5,7],correspond:6,element:[10,9,4],issu:[0,5,3],allow:[0,1,6,5,4,9,10,11],aws_secret_access_kei:9,move:[10,6,7],elit:2,comma:[9,6],loginpass:[],release_vers:10,bunch:[],somecommand:7,taboot:5,infrastructur:[0,1,3,5,7,8],anyon:5,therefor:10,ansible_product_uuid:6,dag:12,greater:8,python:[0,2,3,6,5,4,8,9,10,11],auto:[4,9,6],dai:[3,5],auth:6,devel:[],mention:[11,10,4,1,7],rubygem:[],instead:[0,1,5,6,10,11],strive:4,multiprocess:5,somewher:10,anyth:[9,4,5,6],edit:[0,9,6],slide:3,mode:[0,5,6,7,10,11],subset:[],grok:3,bump:[],strip:6,usernam:[6,11],ec2:[3,9],our:[3,12,11,2],patch:5,pitfal:4,special:[9,6],out:[3,1,6,5,4,7,8,9,10,11],variabl:[0,1,3,6,5,4,7,8,9,10,11],twice:[],reboot:[6,7,11],security_group_:9,rel:[8,6,1],"_default":6,leverag:0,ref:[],login_host:6,red:[9,3,5,4],clarifi:[],insid:[10,9,4,7],unpars:4,ansible_machin:6,control:[3,1,6,5,4,7,8,9,10,11],dictionari:[10,9,4,2],releas:[0,10,5,6,7],include_ansible_module_common:4,indent:2,could:[6,5,4,7,9,10],put:[0,1,6,7,8,10],fqdn:10,keep:[0,1,6,4,8,9,10],outsid:[9,4],adrian:5,retain:5,stuck:7,localdomain:6,delegate_to:[10,6],softwar:[3,1,5,6,9,10,11],qualiti:4,scene:6,echo:[0,9,10,11],exact:[],date:[0,4],puppet:[9,3,5,6],submit:[5,4],owner:[6,11],facil:[],prioriti:[10,6],ansible_lo:6,perfectli:[],mkdir:11,system:[0,1,3,6,5,4,7,8,9,10,11],messag:[9,4,5,6],attack:[3,5],pattern_goes_her:8,termin:11,"final":6,ipv4:[10,6],shell:[3,6,4,7,9,10,11],ec2_descript:9,"var":[8,10,6,1,7],rst:[],nobodi:4,priveledg:[],dive:7,richer:5,intervert:10,charact:[9,2],sweden:12,favorit:[5,10],deprec:8,sysadmin:5,ansible_processor_cor:6,have:[0,1,2,3,4,5,6,7,8,9,10,11,12],close:[3,4],need:[0,1,2,3,4,5,6,7,8,9,10,11],cfengin:5,border:[],paramiko:[0,5],unexpect:[],min:[],mix:[8,10,7],baisc:[],tag_name_web:9,which:[0,1,2,3,4,5,6,7,8,9,10,11],datacent:[8,1,11],with_item:10,divers:3,singl:[5,6,7,9,10,11],ec2_security_group_nam:9,unless:[10,5,6,7],clash:[],deploy:[11,0,5,7,3],who:[3,9,6,7,12],salli:6,discov:[3,10,7],deploi:[3,5,6,7,10,11],comparison:[3,5],why:[5,1],serol:6,urg:1,inventory_hostname_short:10,url:6,gather:[10,5,6,7],request:6,self_destruct_countdown:8,snapshot:6,determin:10,built:[0,5,6,9,10,11],constrain:11,fact:[3,6,5,4,7,10],text:[],verbos:[4,6,7],bring:[5,7],playbook:[0,1,2,3,4,5,6,7,8,9,10,11],trivial:[0,3,6,4,9,10],anywai:8,varnam:7,redirect:11,locat:[8,10,6,7,11],tire:5,should:[0,1,2,3,4,5,6,7,9,10,12],ansible_swapfree_mb:6,won:[7,11],ec2_root_device_nam:9,"5px":[],local:[10,5,6],something_els:4,contribut:[0,3,6,4,11,12],notat:[],familiar:9,pave:[],autom:[5,1,11],somevar:10,increas:10,ansible_ssh_port:[],enabl:[4,6],organ:[6,1,12],bounc:[6,7],sha:6,stuff:[3,11],integr:[3,9,6],contain:[0,1,3,5,4,7,9,10],ymwaaaebalnasqn10tngsrde5arbsw8ctojqlyybciqgpytzw8zenerfxt7ij3fw3jh:6,view:3,legaci:6,cthy5bws9kmyjmeo0kfumh8hy4maxdokhq7dhbpircjs5jptogxirezjba67r6:6,nodeinfo:6,skynet:6,stack:10,gmail:[],statu:[4,10,6,11],wire:[],extend:[3,5,10,1,7],correctli:6,mainli:[5,10],state:[1,6,5,4,7,8,10,11],viper:10,progress:[],email:[3,1,12],kei:[0,2,3,6,5,4,7,9,10,11,12],homedir:6,tempfil:7,job:[11,2],entir:[3,5,4,7,8,9,10],homebrew:0,"2pm":3,addit:[1,6,4,7,8,9,10],instant:[],southeast:8,admin:[3,9],goal:[7,11],equal:[5,4,11],ohai_foo:[],etc:[0,3,5,6,7,8,9,10,11],instanc:[8,10,9,6,7],comment:[4,6,1],english:6,guidelin:4,chmod:[4,9,6,7],distil:5,rpm:[0,4,11],mailto:[],quit:[4,1],evalu:[10,11],platform:[10,5,6,12],addition:[10,7,11],decent:[],compos:7,compon:[],json:[2,6,5,4,9,10],besid:4,treat:[5,4,1],ungroup:[],immedi:[10,6,7],"2677m":6,yournam:7,capistrano:5,global_var:1,vmware:6,togeth:[6,1,11],minim:[0,4],ador:3,atlanta:[8,9,11],present:[3,4,10,6,1],authorized_kei:[0,6],multi:[3,5,7],plain:3,align:[],ansible_virtualization_typ:6,defin:[10,9,6,7],glossari:[],ultra:3,layer:[9,5],almost:[5,6],virt:6,site:[5,10,1,12],archiv:6,lightweight:9,partner:6,revis:[],michaeldehaan:[],surprisingli:[],scienc:[],welcom:[3,9],parti:[],cross:5,member:[6,2],handl:[3,4,10,6],inc:6,ansibl:[0,1,2,3,4,5,6,7,8,9,10,11,12],difficult:5,http:6,structur:[10,6],denot:8,upon:[],effect:[],libvirt:6,php:11,distutil:0,pull:[9,5,10],audit:[3,10,1],off:[3,5,10,1],center:[],seth:5,exampl:[0,1,2,3,4,5,6,7,8,9,10,11],command:[0,3,6,5,4,7,8,9,10,11],interpol:10,undefin:6,latest:[0,10,6,7,11],lest:3,tunabl:1,distanc:5,paus:6,less:[0,5,3],additon:0,starbuck:10,heavili:5,skill:2,simultan:11,web:[9,5,10,11,12],host5:9,cleanup:10,host3:[8,9],host2:[8,9],host1:[8,9],introduct:[6,7],kick:[3,10,11],knob:1,branch:[0,6],xmlrpc:9,dest:[10,9,6,7,11],piec:9,know:[2,6,5,4,8,9,10],nor:[],password:[0,5,6,7,10,11],recurs:[6,11],python3:0,python2:0,insert:6,motorola:3,like:[0,1,2,3,4,5,6,7,8,9,10,11],success:[4,6,7],amazonaw:9,necessari:11,lose:11,async:10,architectur:[3,5,10],page:[0,5,11,2,3],ansible_hostnam:[10,6],shed:5,revers:[3,6],captur:4,twitter:[],linux:[0,5,6,12,3],"export":[0,9],home:6,librari:[6,1,2],tmp:[9,6,7,11],lead:[8,5,12],avoid:[0,6,7,3],thank:5,overlap:[],update_cach:6,encourag:[10,5,4,1,7],slight:9,importerror:[],usag:[1,6,5,4,8,10,11],symlink:[0,6],vhost:7,host:[0,1,3,6,5,4,7,8,9,10,11,12],although:4,simpler:5,about:[0,1,2,3,4,5,6,7,9,10,11],actual:[4,10,5,6],swear:3,discard:6,disabl:[6,7],ntp_server:8,own:[1,6,5,4,7,9,10],easy_instal:6,automat:[4,9,6,1,11],ec2_public_dns_nam:9,some_serv:8,hang:7,merg:[5,4],van:[],transfer:[4,6,7,11],intention:[],trigger:[5,6,7],"8agepocvjdhyzr7pahfxzgudgktgrl2qzryukcmwo1czbmbhci5fzimvths9":6,replac:6,biggest:12,individu:[8,1],"function":[4,6],simplejson:[0,6],subscrib:[],nnwugi:[],continu:[4,10,6],ec2_plac:9,eas:5,eat:11,count:[10,7],succe:4,made:[3,6,5,4,7,8,10],whether:[1,6,5,4,9,10],arg2:6,writeabl:7,asynchron:[10,7],record:2,below:[0,6,7],limit:[10,11],otherwis:[4,10,6,11],problem:[3,5,6,2],epel:0,pin:6,is_favcolor_blu:10,filenam:[10,6],ec2_tag_nam:9,implement:[9,5,4],ini:[8,9],mountpoint:6,pip:6,ing:6,probabl:[0,5,4,1,7],boot:6,detail:[9,4,7,11],virtual:[6,7],capabilit:[],other:[0,2,3,6,5,4,7,8,9,10,11,12],futur:[10,4],rememb:[7,11],varieti:[9,5,4],riak:12,ec2_external_inventori:9,repeat:[10,1],"class":[9,4,7],ansiblemodul:4,debian:[0,10,6],stai:10,sphinx:[],amp:[8,9],scientif:0,reliabl:5,rule:[10,1,11],portion:[8,6],emerg:3,name_of_host:[],"8btwaryr":6},objtypes:{},titles:["Getting Started","Best Practices","YAML Syntax","Introducing Ansible","Module Development","FAQ","Ansible Modules","Playbooks","Inventory & Patterns","API & Integrations","Advanced Playbooks","Command Line Examples And Next Steps","Who Uses Ansible"],objnames:{},filenames:["gettingstarted","bestpractices","YAMLSyntax","index","moduledev","faq","modules","playbooks","patterns","api","playbooks2","examples","who_uses_ansible"]})