mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Added info about ignore_errors: True and added a user to the who uses page
This commit is contained in:
parent
b9d8ca4f30
commit
fa6aa5ef98
18 changed files with 90 additions and 68 deletions
|
@ -289,7 +289,7 @@ languages:
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
2
api.html
2
api.html
|
@ -465,7 +465,7 @@ e.g.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -318,7 +318,7 @@ This way you have an audit trail describing when and why you changed the rules a
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -396,7 +396,7 @@ a simplified syntax for this.</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
2
faq.html
2
faq.html
|
@ -409,7 +409,7 @@ tasks – whether for a QA sytem, build system, or anything you can think of
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -204,7 +204,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -391,7 +391,7 @@ explore, but you already have a fully working infrastructure!</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -410,7 +410,7 @@ Puppet Labs, and is now with <a class="reference external" href="http://rpath.co
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -509,7 +509,7 @@ the program. Stop by the mailing list to inquire about requirements.</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -1568,7 +1568,7 @@ yum name=httpd state=installed</pre>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -380,7 +380,7 @@ a <a class="reference external" href="https://github.com/ansible/ansible/blob/de
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -422,13 +422,13 @@ a group of systems into multiple roles. Let’s see what this looks like...
|
||||||
action: command /bin/bar</pre>
|
action: command /bin/bar</pre>
|
||||||
</div>
|
</div>
|
||||||
<p>Include directives look like this, and can be mixed in with regular tasks in a playbook:</p>
|
<p>Include directives look like this, and can be mixed in with regular tasks in a playbook:</p>
|
||||||
<div class="highlight-python"><pre>- tasks:
|
<div class="highlight-python"><pre>tasks:
|
||||||
- include: tasks/foo.yml</pre>
|
- include: tasks/foo.yml</pre>
|
||||||
</div>
|
</div>
|
||||||
<p>You can also pass variables into includes. We call this a ‘parameterized include’.</p>
|
<p>You can also pass variables into includes. We call this a ‘parameterized include’.</p>
|
||||||
<p>For instance, if deploying multiple wordpress instances, I could
|
<p>For instance, if deploying multiple wordpress instances, I could
|
||||||
contain all of my wordpress tasks in a single wordpress.yml file, and use it like so:</p>
|
contain all of my wordpress tasks in a single wordpress.yml file, and use it like so:</p>
|
||||||
<div class="highlight-python"><pre>- tasks:
|
<div class="highlight-python"><pre>tasks:
|
||||||
- include: wordpress.yml user=timmy
|
- include: wordpress.yml user=timmy
|
||||||
- include: wordpress.yml user=alice
|
- include: wordpress.yml user=alice
|
||||||
- include: wordpress.yml user=bob</pre>
|
- include: wordpress.yml user=bob</pre>
|
||||||
|
@ -535,7 +535,7 @@ package is installed. Try it!</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -150,7 +150,8 @@ s.parentNode.insertBefore(ga, s);
|
||||||
<span class="localtoc"><ul>
|
<span class="localtoc"><ul>
|
||||||
<li><a class="reference internal" href="#">Advanced Playbooks</a><ul>
|
<li><a class="reference internal" href="#">Advanced Playbooks</a><ul>
|
||||||
<li><a class="reference internal" href="#tags">Tags</a></li>
|
<li><a class="reference internal" href="#tags">Tags</a></li>
|
||||||
<li><a class="reference internal" href="#playbooks-including-playbooks">Playbooks Including Playbooks</a><ul>
|
<li><a class="reference internal" href="#playbooks-including-playbooks">Playbooks Including Playbooks</a></li>
|
||||||
|
<li><a class="reference internal" href="#ignoring-failed-commands">Ignoring Failed Commands</a></li>
|
||||||
<li><a class="reference internal" href="#accessing-complex-variable-data">Accessing Complex Variable Data</a></li>
|
<li><a class="reference internal" href="#accessing-complex-variable-data">Accessing Complex Variable Data</a></li>
|
||||||
<li><a class="reference internal" href="#accessing-information-about-other-hosts">Accessing Information About Other Hosts</a></li>
|
<li><a class="reference internal" href="#accessing-information-about-other-hosts">Accessing Information About Other Hosts</a></li>
|
||||||
<li><a class="reference internal" href="#variable-file-seperation">Variable File Seperation</a></li>
|
<li><a class="reference internal" href="#variable-file-seperation">Variable File Seperation</a></li>
|
||||||
|
@ -168,8 +169,6 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -234,8 +233,18 @@ reconfigure all of your systems like this:</p>
|
||||||
</div>
|
</div>
|
||||||
<p>This concept works great with tags to rapidly select exactly what plays you want to run, and exactly
|
<p>This concept works great with tags to rapidly select exactly what plays you want to run, and exactly
|
||||||
what parts of those plays.</p>
|
what parts of those plays.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ignoring-failed-commands">
|
||||||
|
<h2>Ignoring Failed Commands<a class="headerlink" href="#ignoring-failed-commands" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<p>(New in 0.6) Generally playbooks will stop executing any more steps on a host that has a failure.
|
||||||
|
Sometimes, though, you want to continue on. To do so, write a task that looks like this:</p>
|
||||||
|
<div class="highlight-python"><pre>- name: this will not be counted as a failure
|
||||||
|
action: command /bin/false
|
||||||
|
ignore_errors: True</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="section" id="accessing-complex-variable-data">
|
<div class="section" id="accessing-complex-variable-data">
|
||||||
<h3>Accessing Complex Variable Data<a class="headerlink" href="#accessing-complex-variable-data" title="Permalink to this headline">¶</a></h3>
|
<h2>Accessing Complex Variable Data<a class="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>
|
||||||
<div class="highlight-python"><pre>${ansible_eth0.ipv4.address}</pre>
|
<div class="highlight-python"><pre>${ansible_eth0.ipv4.address}</pre>
|
||||||
|
@ -250,7 +259,7 @@ that is preferred:</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="accessing-information-about-other-hosts">
|
<div class="section" id="accessing-information-about-other-hosts">
|
||||||
<h3>Accessing Information About Other Hosts<a class="headerlink" href="#accessing-information-about-other-hosts" title="Permalink to this headline">¶</a></h3>
|
<h2>Accessing Information About Other Hosts<a class="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>
|
||||||
<div class="highlight-python"><pre>${hostvars.hostname.factname}</pre>
|
<div class="highlight-python"><pre>${hostvars.hostname.factname}</pre>
|
||||||
|
@ -276,7 +285,7 @@ period.</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>
|
||||||
<div class="section" id="variable-file-seperation">
|
<div class="section" id="variable-file-seperation">
|
||||||
<h3>Variable File Seperation<a class="headerlink" href="#variable-file-seperation" title="Permalink to this headline">¶</a></h3>
|
<h2>Variable File Seperation<a class="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
|
||||||
|
@ -305,7 +314,7 @@ password: magic</pre>
|
||||||
<p>NOTE: It’s also possible to keep per-host and per-group variables in very similar files, this is covered in <a class="reference internal" href="patterns.html#patterns"><em>Inventory & Patterns</em></a>.</p>
|
<p>NOTE: It’s also possible to keep per-host and per-group variables in very similar files, this is covered in <a class="reference internal" href="patterns.html#patterns"><em>Inventory & Patterns</em></a>.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="prompting-for-sensitive-data">
|
<div class="section" id="prompting-for-sensitive-data">
|
||||||
<h3>Prompting For Sensitive Data<a class="headerlink" href="#prompting-for-sensitive-data" title="Permalink to this headline">¶</a></h3>
|
<h2>Prompting For Sensitive Data<a class="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
|
||||||
|
@ -334,7 +343,7 @@ some other options, but otherwise works equivalently:</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="passing-variables-on-the-command-line">
|
<div class="section" id="passing-variables-on-the-command-line">
|
||||||
<h3>Passing Variables On The Command Line<a class="headerlink" href="#passing-variables-on-the-command-line" title="Permalink to this headline">¶</a></h3>
|
<h2>Passing Variables On The Command Line<a class="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>
|
||||||
|
@ -352,7 +361,7 @@ ansible-playbook release.yml --extra-vars "hosts=vipers user=starbuck"</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="conditional-execution">
|
<div class="section" id="conditional-execution">
|
||||||
<h3>Conditional Execution<a class="headerlink" href="#conditional-execution" title="Permalink to this headline">¶</a></h3>
|
<h2>Conditional Execution<a class="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>
|
||||||
|
@ -387,7 +396,7 @@ there will be accessible to future tasks:</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="conditional-imports">
|
<div class="section" id="conditional-imports">
|
||||||
<h3>Conditional Imports<a class="headerlink" href="#conditional-imports" title="Permalink to this headline">¶</a></h3>
|
<h2>Conditional Imports<a class="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,
|
||||||
|
@ -430,7 +439,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>
|
||||||
<div class="section" id="loop-shorthand">
|
<div class="section" id="loop-shorthand">
|
||||||
<h3>Loop Shorthand<a class="headerlink" href="#loop-shorthand" title="Permalink to this headline">¶</a></h3>
|
<h2>Loop Shorthand<a class="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>
|
||||||
<div class="highlight-python"><pre>- name: add user $item
|
<div class="highlight-python"><pre>- name: add user $item
|
||||||
action: user name=$item state=present groups=wheel
|
action: user name=$item state=present groups=wheel
|
||||||
|
@ -451,7 +460,7 @@ minimum of decision points to track.</p>
|
||||||
manager transactions.</p>
|
manager transactions.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="selecting-files-and-templates-based-on-variables">
|
<div class="section" id="selecting-files-and-templates-based-on-variables">
|
||||||
<h3>Selecting Files And Templates Based On Variables<a class="headerlink" href="#selecting-files-and-templates-based-on-variables" title="Permalink to this headline">¶</a></h3>
|
<h2>Selecting Files And Templates Based On Variables<a class="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>
|
||||||
|
@ -465,7 +474,7 @@ CentOS and Debian:</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="asynchronous-actions-and-polling">
|
<div class="section" id="asynchronous-actions-and-polling">
|
||||||
<h3>Asynchronous Actions and Polling<a class="headerlink" href="#asynchronous-actions-and-polling" title="Permalink to this headline">¶</a></h3>
|
<h2>Asynchronous Actions and Polling<a class="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 <tt class="docutils literal"><span class="pre">--forks</span></tt>), you may wish that long
|
a small parallelism value (aka <tt class="docutils literal"><span class="pre">--forks</span></tt>), you may wish that long
|
||||||
|
@ -515,7 +524,7 @@ tasks even faster. This also increases the efficiency of polling.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="local-playbooks">
|
<div class="section" id="local-playbooks">
|
||||||
<h3>Local Playbooks<a class="headerlink" href="#local-playbooks" title="Permalink to this headline">¶</a></h3>
|
<h2>Local Playbooks<a class="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>
|
||||||
|
@ -529,7 +538,7 @@ connection: local</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="turning-off-facts">
|
<div class="section" id="turning-off-facts">
|
||||||
<h3>Turning Off Facts<a class="headerlink" href="#turning-off-facts" title="Permalink to this headline">¶</a></h3>
|
<h2>Turning Off Facts<a class="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>
|
||||||
|
@ -538,7 +547,7 @@ systems, mainly, or if you are using Ansible on experimental platforms. In any
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="pull-mode-playbooks">
|
<div class="section" id="pull-mode-playbooks">
|
||||||
<h3>Pull-Mode Playbooks<a class="headerlink" href="#pull-mode-playbooks" title="Permalink to this headline">¶</a></h3>
|
<h2>Pull-Mode Playbooks<a class="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>
|
||||||
|
@ -550,7 +559,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>
|
||||||
<div class="section" id="style-points">
|
<div class="section" id="style-points">
|
||||||
<h3>Style Points<a class="headerlink" href="#style-points" title="Permalink to this headline">¶</a></h3>
|
<h2>Style Points<a class="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>
|
||||||
<div class="admonition-see-also admonition seealso">
|
<div class="admonition-see-also admonition seealso">
|
||||||
|
@ -576,7 +585,6 @@ logs from ansible-pull runs would be an excellent way to gather and analyze remo
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
@ -606,7 +614,7 @@ logs from ansible-pull runs would be an excellent way to gather and analyze remo
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -46,8 +46,18 @@ reconfigure all of your systems like this::
|
||||||
This concept works great with tags to rapidly select exactly what plays you want to run, and exactly
|
This concept works great with tags to rapidly select exactly what plays you want to run, and exactly
|
||||||
what parts of those plays.
|
what parts of those plays.
|
||||||
|
|
||||||
|
Ignoring Failed Commands
|
||||||
|
````````````````````````
|
||||||
|
|
||||||
|
(New in 0.6) Generally playbooks will stop executing any more steps on a host that has a failure.
|
||||||
|
Sometimes, though, you want to continue on. To do so, write a task that looks like this::
|
||||||
|
|
||||||
|
- name: this will not be counted as a failure
|
||||||
|
action: command /bin/false
|
||||||
|
ignore_errors: True
|
||||||
|
|
||||||
Accessing Complex Variable Data
|
Accessing Complex Variable Data
|
||||||
+++++++++++++++++++++++++++++++
|
```````````````````````````````
|
||||||
|
|
||||||
Some provided facts, like networking information, are made available as nested data structures. To access
|
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::
|
them a simple '$foo' is not sufficient, but it is still easy to do. Here's how we get an IP address::
|
||||||
|
@ -66,7 +76,7 @@ that is preferred::
|
||||||
{{ ansible_eth0["ipv4"]["address"] }}
|
{{ ansible_eth0["ipv4"]["address"] }}
|
||||||
|
|
||||||
Accessing Information About Other Hosts
|
Accessing Information About Other Hosts
|
||||||
+++++++++++++++++++++++++++++++++++++++
|
```````````````````````````````````````
|
||||||
|
|
||||||
If your database server wants to check the value of a 'fact' from another node, or an inventory variable
|
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::
|
assigned to another node, it's easy to do so within a template or even an action line::
|
||||||
|
@ -99,7 +109,7 @@ period.
|
||||||
Don't worry about any of this unless you think you need it. You'll know when you do.
|
Don't worry about any of this unless you think you need it. You'll know when you do.
|
||||||
|
|
||||||
Variable File Seperation
|
Variable File Seperation
|
||||||
++++++++++++++++++++++++
|
````````````````````````
|
||||||
|
|
||||||
It's a great idea to keep your playbooks under source control, but
|
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
|
||||||
|
@ -133,7 +143,7 @@ The contents of each variables file is a simple YAML dictionary, like this::
|
||||||
NOTE: It's also possible to keep per-host and per-group variables in very similar files, this is covered in :ref:`patterns`.
|
NOTE: It's also possible to keep per-host and per-group variables in very similar files, this is covered in :ref:`patterns`.
|
||||||
|
|
||||||
Prompting For Sensitive Data
|
Prompting For Sensitive Data
|
||||||
++++++++++++++++++++++++++++
|
````````````````````````````
|
||||||
|
|
||||||
You may wish to prompt the user for certain input, and can
|
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
|
||||||
|
@ -166,7 +176,7 @@ some other options, but otherwise works equivalently::
|
||||||
|
|
||||||
|
|
||||||
Passing Variables On The Command Line
|
Passing Variables On The Command Line
|
||||||
+++++++++++++++++++++++++++++++++++++
|
`````````````````````````````````````
|
||||||
|
|
||||||
In addition to `vars_prompt` and `vars_files`, it is possible to send variables over
|
In addition to `vars_prompt` and `vars_files`, 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
|
||||||
|
@ -187,7 +197,7 @@ Example::
|
||||||
ansible-playbook release.yml --extra-vars "hosts=vipers user=starbuck"
|
ansible-playbook release.yml --extra-vars "hosts=vipers user=starbuck"
|
||||||
|
|
||||||
Conditional Execution
|
Conditional Execution
|
||||||
+++++++++++++++++++++
|
`````````````````````
|
||||||
|
|
||||||
Sometimes you will want to skip a particular step on a particular host. This could be something
|
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,
|
||||||
|
@ -228,7 +238,7 @@ there will be accessible to future tasks::
|
||||||
- action: command echo ${my_custom_fact_can_be_used_now}
|
- action: command echo ${my_custom_fact_can_be_used_now}
|
||||||
|
|
||||||
Conditional Imports
|
Conditional Imports
|
||||||
+++++++++++++++++++
|
```````````````````
|
||||||
|
|
||||||
Sometimes you will want to do certain things differently in a playbook based on certain criteria.
|
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.
|
Having one playbook that works on multiple platforms and OS versions is a good example.
|
||||||
|
@ -278,7 +288,7 @@ in more streamlined & auditable configuration rules -- especially because there
|
||||||
minimum of decision points to track.
|
minimum of decision points to track.
|
||||||
|
|
||||||
Loop Shorthand
|
Loop Shorthand
|
||||||
++++++++++++++
|
``````````````
|
||||||
|
|
||||||
To save some typing, repeated tasks can be written in short-hand like so::
|
To save some typing, repeated tasks can be written in short-hand like so::
|
||||||
|
|
||||||
|
@ -304,7 +314,7 @@ manager transactions.
|
||||||
|
|
||||||
|
|
||||||
Selecting Files And Templates Based On Variables
|
Selecting Files And Templates Based On Variables
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++
|
````````````````````````````````````````````````
|
||||||
|
|
||||||
Sometimes a configuration file you want to copy, or a template you will use may depend on a variable.
|
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,
|
||||||
|
@ -321,7 +331,7 @@ CentOS and Debian::
|
||||||
|
|
||||||
|
|
||||||
Asynchronous Actions and Polling
|
Asynchronous Actions and Polling
|
||||||
++++++++++++++++++++++++++++++++
|
````````````````````````````````
|
||||||
|
|
||||||
By default tasks in playbooks block, meaning the connections stay open
|
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
|
||||||
|
@ -372,7 +382,7 @@ Alternatively, if you do not need to wait on the task to complete, you may
|
||||||
tasks even faster. This also increases the efficiency of polling.
|
tasks even faster. This also increases the efficiency of polling.
|
||||||
|
|
||||||
Local Playbooks
|
Local Playbooks
|
||||||
+++++++++++++++
|
```````````````
|
||||||
|
|
||||||
It may be useful to use a playbook locally, rather than by connecting over SSH. This can be useful
|
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
|
||||||
|
@ -389,7 +399,7 @@ use the default remote connection type::
|
||||||
connection: local
|
connection: local
|
||||||
|
|
||||||
Turning Off Facts
|
Turning Off Facts
|
||||||
+++++++++++++++++
|
`````````````````
|
||||||
|
|
||||||
If you know you don't need any fact data about your hosts, and know everything about your systems centrally, you
|
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
|
||||||
|
@ -399,7 +409,7 @@ systems, mainly, or if you are using Ansible on experimental platforms. In any
|
||||||
gather_facts: False
|
gather_facts: False
|
||||||
|
|
||||||
Pull-Mode Playbooks
|
Pull-Mode Playbooks
|
||||||
+++++++++++++++++++
|
```````````````````
|
||||||
|
|
||||||
The use of playbooks in local mode (above) is made extremely powerful with the addition of `ansible-pull`.
|
The use of playbooks in local mode (above) is made extremely powerful with the addition of `ansible-pull`.
|
||||||
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
|
||||||
|
@ -414,7 +424,7 @@ This is useful both for extreme scale-out as well as periodic remediation. Usag
|
||||||
logs from ansible-pull runs would be an excellent way to gather and analyze remote logs from ansible-pull.
|
logs from ansible-pull runs would be an excellent way to gather and analyze remote logs from ansible-pull.
|
||||||
|
|
||||||
Style Points
|
Style Points
|
||||||
++++++++++++
|
````````````
|
||||||
|
|
||||||
Ansible playbooks are colorized. If you do not like this, set the ANSIBLE_NOCOLOR=1 environment variable.
|
Ansible playbooks are colorized. If you do not like this, set the ANSIBLE_NOCOLOR=1 environment variable.
|
||||||
|
|
||||||
|
|
|
@ -3,18 +3,19 @@ Who Uses Ansible
|
||||||
|
|
||||||
Ansible is used by all sorts of organizations from hosted web applications, media companies, universities, consultancies, and ISVs -- all over the world. Some of these users include:
|
Ansible is used by all sorts of organizations from hosted web applications, media companies, universities, consultancies, and ISVs -- all over the world. Some of these users include:
|
||||||
|
|
||||||
================================================== ===================================================
|
============================================================ ===================================================
|
||||||
Who They Are What They Do
|
Who They Are What They Do
|
||||||
================================================== ===================================================
|
============================================================ ===================================================
|
||||||
`Basho <http://basho.com>`_ makers of NoSQL key-value store Riak
|
`Basho <http://basho.com>`_ Makers of NoSQL key-value store Riak
|
||||||
`Cygate AB <http://cygate.se>`_ IT solutions from Malmö, Sweden
|
`Cygate AB <http://cygate.se>`_ IT solutions from Malmö, Sweden
|
||||||
`Dag IT Solutions <http://dagit.net>`_ "Enterprise Linux and Beyond"
|
`Dag IT Solutions <http://dagit.net>`_ "Enterprise Linux and Beyond"
|
||||||
`Fedora Project <http://fedoraproject.org>`_ produces the popular Linux distribution
|
`Fedora Project <http://fedoraproject.org>`_ Produces the popular Linux distribution
|
||||||
`Four Kitchens <http://fourkitchens.com>`_ "the Drupal Experts"
|
`Four Kitchens <http://fourkitchens.com>`_ "The Drupal Experts"
|
||||||
`Schmooze Com <http://www.schmoozecom.com/>`_ Creators of Industry-Leading PBX Platforms
|
`Schmooze Com <http://www.schmoozecom.com/>`_ Creators of Industry-Leading PBX Platforms
|
||||||
`Skyline.es <http://skylin.es>`_ Realtime Photo Search Engine
|
`Skyline.es <http://skylin.es>`_ Realtime Photo Search Engine
|
||||||
`Steelhouse <http://steelhouse.com>`_ Behavioral Commerce
|
`Steelhouse <http://steelhouse.com>`_ Behavioral Commerce
|
||||||
================================================== ===================================================
|
`Tomorrow Focus Technologies GmbH <http://www.t-f-t.net/>`_ Running some of the biggest web sites in Europe
|
||||||
|
============================================================ ===================================================
|
||||||
|
|
||||||
and lots of other people (you should see our Google Analytics data). Tweet at `Michael DeHaan <http://twitter.com/laserllama>`_ or `email him <mailto:michael.dehaan@gmail.com>`_ to get your company or project listed here. (It's free!)
|
and lots of other people (you should see our Google Analytics data). Tweet at `Michael DeHaan <http://twitter.com/laserllama>`_ or `email him <mailto:michael.dehaan@gmail.com>`_ to get your company or project listed here. (It's free!)
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -178,8 +178,8 @@ s.parentNode.insertBefore(ga, s);
|
||||||
<p>Ansible is used by all sorts of organizations from hosted web applications, media companies, universities, consultancies, and ISVs – all over the world. Some of these users include:</p>
|
<p>Ansible is used by all sorts of organizations from hosted web applications, media companies, universities, consultancies, and ISVs – all over the world. Some of these users include:</p>
|
||||||
<table border="1" class="docutils">
|
<table border="1" class="docutils">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="50%" />
|
<col width="54%" />
|
||||||
<col width="50%" />
|
<col width="46%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head">Who They Are</th>
|
<tr><th class="head">Who They Are</th>
|
||||||
|
@ -188,7 +188,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td><a class="reference external" href="http://basho.com">Basho</a></td>
|
<tr><td><a class="reference external" href="http://basho.com">Basho</a></td>
|
||||||
<td>makers of NoSQL key-value store Riak</td>
|
<td>Makers of NoSQL key-value store Riak</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://cygate.se">Cygate AB</a></td>
|
<tr><td><a class="reference external" href="http://cygate.se">Cygate AB</a></td>
|
||||||
<td>IT solutions from Malmö, Sweden</td>
|
<td>IT solutions from Malmö, Sweden</td>
|
||||||
|
@ -197,10 +197,10 @@ s.parentNode.insertBefore(ga, s);
|
||||||
<td>“Enterprise Linux and Beyond”</td>
|
<td>“Enterprise Linux and Beyond”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://fedoraproject.org">Fedora Project</a></td>
|
<tr><td><a class="reference external" href="http://fedoraproject.org">Fedora Project</a></td>
|
||||||
<td>produces the popular Linux distribution</td>
|
<td>Produces the popular Linux distribution</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://fourkitchens.com">Four Kitchens</a></td>
|
<tr><td><a class="reference external" href="http://fourkitchens.com">Four Kitchens</a></td>
|
||||||
<td>“the Drupal Experts”</td>
|
<td>“The Drupal Experts”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://www.schmoozecom.com/">Schmooze Com</a></td>
|
<tr><td><a class="reference external" href="http://www.schmoozecom.com/">Schmooze Com</a></td>
|
||||||
<td>Creators of Industry-Leading PBX Platforms</td>
|
<td>Creators of Industry-Leading PBX Platforms</td>
|
||||||
|
@ -211,6 +211,9 @@ s.parentNode.insertBefore(ga, s);
|
||||||
<tr><td><a class="reference external" href="http://steelhouse.com">Steelhouse</a></td>
|
<tr><td><a class="reference external" href="http://steelhouse.com">Steelhouse</a></td>
|
||||||
<td>Behavioral Commerce</td>
|
<td>Behavioral Commerce</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr><td><a class="reference external" href="http://www.t-f-t.net/">Tomorrow Focus Technologies GmbH</a></td>
|
||||||
|
<td>Running some of the biggest web sites in Europe</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>and lots of other people (you should see our Google Analytics data). Tweet at <a class="reference external" href="http://twitter.com/laserllama">Michael DeHaan</a> or <a class="reference external" href="mailto:michael.dehaan%40gmail.com">email him</a> to get your company or project listed here. (It’s free!)</p>
|
<p>and lots of other people (you should see our Google Analytics data). Tweet at <a class="reference external" href="http://twitter.com/laserllama">Michael DeHaan</a> or <a class="reference external" href="mailto:michael.dehaan%40gmail.com">email him</a> to get your company or project listed here. (It’s free!)</p>
|
||||||
|
@ -257,7 +260,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 01, 2012.<br/>
|
Last updated on Aug 02, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
Loading…
Reference in a new issue