<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Cs%3A_Ansible</id>
	<title>Cs: Ansible - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Cs%3A_Ansible"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;action=history"/>
	<updated>2026-06-12T01:37:21Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;diff=2049&amp;oldid=prev</id>
		<title>Justine le 22 juin 2022 à 10:02</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;diff=2049&amp;oldid=prev"/>
		<updated>2022-06-22T10:02:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 22 juin 2022 à 10:02&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:cheatsheet]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-mediawiki:diff:1.41:old-1251:rev-2049:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;diff=1251&amp;oldid=prev</id>
		<title>Justine le 17 septembre 2019 à 14:18</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;diff=1251&amp;oldid=prev"/>
		<updated>2019-09-17T14:18:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 17 septembre 2019 à 14:18&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;markdown&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# An Ansible summary&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# An Ansible summary&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l814&quot;&gt;Ligne 814 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 816 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ansible-pull: error: URL for repository not specified, use -h for help&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ansible-pull: error: URL for repository not specified, use -h for help&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;diff=1250&amp;oldid=prev</id>
		<title>Justine : Page créée avec « https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d  # An Ansible summary  Jon Warbrick, July 2014, V3.2 (for Ansible 1.7)  # Configuration file... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Cs:_Ansible&amp;diff=1250&amp;oldid=prev"/>
		<updated>2019-09-17T14:17:37Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d  # An Ansible summary  Jon Warbrick, July 2014, V3.2 (for Ansible 1.7)  # Configuration file... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;https://gist.github.com/andreicristianpetcu/b892338de279af9dac067891579cad7d&lt;br /&gt;
&lt;br /&gt;
# An Ansible summary&lt;br /&gt;
&lt;br /&gt;
Jon Warbrick, July 2014, V3.2 (for Ansible 1.7)&lt;br /&gt;
&lt;br /&gt;
# Configuration file&lt;br /&gt;
&lt;br /&gt;
[intro\_configuration.html](http://docs.ansible.com/intro_configuration.html)&lt;br /&gt;
&lt;br /&gt;
First one found from of&lt;br /&gt;
&lt;br /&gt;
* Contents of `$ANSIBLE_CONFIG`&lt;br /&gt;
* `./ansible.cfg`&lt;br /&gt;
* `~/.ansible.cfg`&lt;br /&gt;
* `/etc/ansible/ansible.cfg`&lt;br /&gt;
&lt;br /&gt;
Configuration settings can be overridden by environment variables - see&lt;br /&gt;
constants.py in the source tree for names.&lt;br /&gt;
&lt;br /&gt;
# Patterns&lt;br /&gt;
&lt;br /&gt;
[intro\_patterns.html](http://docs.ansible.com/intro_patterns.html)&lt;br /&gt;
&lt;br /&gt;
Used on the `ansible` command line, or in playbooks.&lt;br /&gt;
&lt;br /&gt;
* `all` (or `*`)&lt;br /&gt;
* hostname: `foo.example.com`&lt;br /&gt;
* groupname: `webservers`&lt;br /&gt;
* or: `webservers:dbserver`&lt;br /&gt;
* exclude: `webserver:!phoenix`&lt;br /&gt;
* intersection: `webservers:&amp;amp;staging`&lt;br /&gt;
&lt;br /&gt;
Operators can be chained: `webservers:dbservers:&amp;amp;staging:!phoenix`&lt;br /&gt;
&lt;br /&gt;
Patterns can include variable substitutions: `{{foo}}`, wildcards:&lt;br /&gt;
`*.example.com` or 192.168.1.*, and regular expressions:&lt;br /&gt;
`~(web|db).*\.example\.com`&lt;br /&gt;
&lt;br /&gt;
# Inventory files&lt;br /&gt;
&lt;br /&gt;
[intro\_inventory.html](http://docs.ansible.com/intro_inventory.html),&lt;br /&gt;
[intro\_dynamic\_inventory.html](http://docs.ansible.com/intro_dynamic_inventory.html)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;INI-file&amp;#039; structure, blocks define groups. Hosts allowed in more than&lt;br /&gt;
one group. Non-standard SSH port can follow hostname separated by &amp;#039;:&amp;#039;&lt;br /&gt;
(but see also `ansible_ssh_port` below).&lt;br /&gt;
&lt;br /&gt;
Hostname ranges: `www[01:50].example.com`, `db-[a:f].example.com`&lt;br /&gt;
&lt;br /&gt;
Per-host variables: `foo.example.com foo=bar baz=wibble`&lt;br /&gt;
&lt;br /&gt;
* `[foo:children]`: new group `foo` containing all members if included groups&lt;br /&gt;
* `[foo:vars]`: variable definitions for all members of group `foo`&lt;br /&gt;
&lt;br /&gt;
Inventory file defaults to `/etc/ansible/hosts`. Veritable with `-i`&lt;br /&gt;
or in the configuration file. The &amp;#039;file&amp;#039; can also be a dynamic&lt;br /&gt;
inventory script. If a directory, all contained files are processed.&lt;br /&gt;
&lt;br /&gt;
# Variable files: &lt;br /&gt;
&lt;br /&gt;
[intro\_inventory.html](http://docs.ansible.com/intro_inventory.html)&lt;br /&gt;
&lt;br /&gt;
YAML; given inventory file at `./hosts`:&lt;br /&gt;
&lt;br /&gt;
* `./group_vars/foo`: variable definitions for all members of group `foo`&lt;br /&gt;
* `./host_vars/foo.example.com`: variable definitions for foo.example.com&lt;br /&gt;
&lt;br /&gt;
`group_vars` and `host_vars` directories can also exist in the playbook&lt;br /&gt;
directory. If both paths exist, variables in the playbook directory&lt;br /&gt;
will be loaded second. &lt;br /&gt;
&lt;br /&gt;
# Behavioral inventory parameters:&lt;br /&gt;
&lt;br /&gt;
[intro\_inventory.html](http://docs.ansible.com/intro_inventory.html)&lt;br /&gt;
&lt;br /&gt;
* `ansible_ssh_host`&lt;br /&gt;
* `ansible_ssh_port`&lt;br /&gt;
* `ansible_ssh_user`&lt;br /&gt;
* `ansible_ssh_pass`&lt;br /&gt;
* `ansible_sudo_pass`&lt;br /&gt;
* `ansible_connection`&lt;br /&gt;
* `ansible_ssh_private_key_file`&lt;br /&gt;
* `ansible_python_interpreter`&lt;br /&gt;
* `ansible_*_interpreter`&lt;br /&gt;
&lt;br /&gt;
# Playbooks&lt;br /&gt;
&lt;br /&gt;
[playbooks\_intro.html](http://docs.ansible.com/playbooks_intro.html),&lt;br /&gt;
[playbooks\_roles.html](http://docs.ansible.com/playbooks_roles.html)&lt;br /&gt;
&lt;br /&gt;
Playbooks are a YAML list of one or more plays. Most (all?) keys are&lt;br /&gt;
optional. Lines can be broken on space with continuation lines&lt;br /&gt;
indented.&lt;br /&gt;
&lt;br /&gt;
Playbooks consist of a list of one or more &amp;#039;plays&amp;#039; and/or inclusions:&lt;br /&gt;
&lt;br /&gt;
    ---&lt;br /&gt;
    - include: playbook.yml&lt;br /&gt;
    - &amp;lt;play&amp;gt;&lt;br /&gt;
    - ...&lt;br /&gt;
&lt;br /&gt;
## Plays&lt;br /&gt;
&lt;br /&gt;
[playbooks\_intro.html](http://docs.ansible.com/playbooks_intro.html),&lt;br /&gt;
[playbooks\_roles.html](http://docs.ansible.com/playbooks_roles.htm),&lt;br /&gt;
[playbooks\_variables.html](http://docs.ansible.com/playbooks_variables.html),&lt;br /&gt;
[playbooks\_conditionals.html](http://docs.ansible.com/playbooks_conditionals.html),&lt;br /&gt;
[playbooks\_acceleration.html](http://docs.ansible.com/playbooks_acceleration.html),&lt;br /&gt;
[playbooks\_delegation.html](http://docs.ansible.com/playbooks_delegation.html),&lt;br /&gt;
[playbooks\_prompts.html](http://docs.ansible.com/playbooks_prompts.html),&lt;br /&gt;
[playbooks\_tags.html](http://docs.ansible.com/playbooks_tags.htm)&lt;br /&gt;
[Forum posting](https://groups.google.com/forum/#!topic/ansible-project/F9mIAfo6orc)&lt;br /&gt;
[Forum postinb](https://groups.google.com/forum/#!topic/Ansible-project/MU_ws7zynnI)&lt;br /&gt;
    &lt;br /&gt;
Plays consist of play metadata and a sequence of task and handler&lt;br /&gt;
definitions, and roles.&lt;br /&gt;
&lt;br /&gt;
    - hosts: webservers&lt;br /&gt;
      remote_user: root&lt;br /&gt;
      sudo: yes&lt;br /&gt;
      sudo_user: postgress&lt;br /&gt;
      su: yes&lt;br /&gt;
      su_user: exim&lt;br /&gt;
      gather_facts: no&lt;br /&gt;
      accelerate: no&lt;br /&gt;
      accelerate_port: 5099&lt;br /&gt;
      any_errors_fatal: yes&lt;br /&gt;
      max_fail_percentage: 30&lt;br /&gt;
      connection: local&lt;br /&gt;
      serial: 5&lt;br /&gt;
      vars:&lt;br /&gt;
        http_port: 80&lt;br /&gt;
      vars_files:&lt;br /&gt;
        - &amp;quot;vars.yml&amp;quot;&lt;br /&gt;
        - [ &amp;quot;try-first.yml&amp;quot;, &amp;quot;try-second-.yml&amp;quot; ]&lt;br /&gt;
      vars_prompt:&lt;br /&gt;
        - name: &amp;quot;my_password2&amp;quot;&lt;br /&gt;
          prompt: &amp;quot;Enter password2&amp;quot;&lt;br /&gt;
          default: &amp;quot;secret&amp;quot;&lt;br /&gt;
          private: yes&lt;br /&gt;
          encrypt: &amp;quot;md5_crypt&amp;quot;&lt;br /&gt;
          confirm: yes&lt;br /&gt;
          salt: 1234&lt;br /&gt;
          salt_size: 8&lt;br /&gt;
      tags: &lt;br /&gt;
        - stuff&lt;br /&gt;
        - nonsence&lt;br /&gt;
      pre_tasks:&lt;br /&gt;
        - &amp;lt;task&amp;gt;&lt;br /&gt;
        - ...&lt;br /&gt;
      roles:&lt;br /&gt;
        - common&lt;br /&gt;
        - { role: common, port: 5000, when: &amp;quot;bar == &amp;#039;Baz&amp;#039;&amp;quot;, tags :[one, two] }&lt;br /&gt;
        - { role: common, when: month == &amp;#039;Jan&amp;#039; }&lt;br /&gt;
        - ...&lt;br /&gt;
      tasks:&lt;br /&gt;
        - include: tasks.yaml&lt;br /&gt;
        - include: tasks.yaml foo=bar baz=wibble&lt;br /&gt;
        - include: tasks.yaml&lt;br /&gt;
          vars:&lt;br /&gt;
            foo: aaa &lt;br /&gt;
            baz:&lt;br /&gt;
              - z&lt;br /&gt;
              - y&lt;br /&gt;
        - { include: tasks.yaml, foo: zzz, baz: [a,b]}&lt;br /&gt;
        - include: tasks.yaml&lt;br /&gt;
          when: day == &amp;#039;Thursday&amp;#039;&lt;br /&gt;
        - &amp;lt;task&amp;gt;&lt;br /&gt;
        - ...&lt;br /&gt;
      post_tasks:&lt;br /&gt;
        - &amp;lt;task&amp;gt;&lt;br /&gt;
        - ...&lt;br /&gt;
      handlers:&lt;br /&gt;
        - include: handlers.yml&lt;br /&gt;
        - &amp;lt;task&amp;gt;&lt;br /&gt;
        - ...&lt;br /&gt;
&lt;br /&gt;
Using `encrypt` with `vars_prompt` requires that&lt;br /&gt;
[Passlib](http://pythonhosted.org/passlib/) is installed.&lt;br /&gt;
&lt;br /&gt;
In addition the source code implies the availability of the following&lt;br /&gt;
which don&amp;#039;t *seem* to be mentioned in the documentation: `name`, `user` (deprecated), `port`, `accelerate_ipv6`, `role_names`, and `vault_password`.&lt;br /&gt;
&lt;br /&gt;
## Task definitions&lt;br /&gt;
&lt;br /&gt;
[playbooks\_intro.html](http://docs.ansible.com/playbooks_intro.html),&lt;br /&gt;
[playbooks\_roles.html](http://docs.ansible.com/playbooks_roles.html),&lt;br /&gt;
[playbooks\_async.html](http://docs.ansible.com/playbooks_async.html),&lt;br /&gt;
[playbooks\_checkmode.html](http://docs.ansible.com/[playbooks_checkmode.html),&lt;br /&gt;
[playbooks\_delegation.html](http://docs.ansible.com/playbooks_delegation.html),&lt;br /&gt;
[playbooks\_environment.html](http://docs.ansible.com/playbooks_environment.html),&lt;br /&gt;
[playbooks\_error_handling.html](http://docs.ansible.com/playbooks_error_handling.html),&lt;br /&gt;
[playbooks\_tags.html](http://docs.ansible.com/playbooks_tags.html)&lt;br /&gt;
[ansible-1-5-released](http://www.ansible.com/blog/2014/02/28/ansible-1-5-released)&lt;br /&gt;
[Forum posting](https://groups.google.com/forum/#!topic/ansible-project/F9mIAfo6orc)&lt;br /&gt;
[Ansible examples](https://github.com/ansible/ansible-examples/blob/master/language_features/complex_args.yml)&lt;br /&gt;
&lt;br /&gt;
Each task definition is a list of items, normally including at least a&lt;br /&gt;
name and a module invocation:&lt;br /&gt;
&lt;br /&gt;
    - name: task&lt;br /&gt;
      remote_user: apache&lt;br /&gt;
      sudo: yes&lt;br /&gt;
      sudo_user: postgress&lt;br /&gt;
      sudo_pass: wibble&lt;br /&gt;
      su: yes&lt;br /&gt;
      su_user: exim&lt;br /&gt;
      ignore_errors: True&lt;br /&gt;
      delegate_to: 127.0.0.1&lt;br /&gt;
      async: 45&lt;br /&gt;
      poll: 5&lt;br /&gt;
      always_run: no&lt;br /&gt;
      run_once: false&lt;br /&gt;
      meta: flush_handlers&lt;br /&gt;
      no_log: true&lt;br /&gt;
      environment: &amp;lt;hash&amp;gt;&lt;br /&gt;
      environment:&lt;br /&gt;
        var1: val1&lt;br /&gt;
        var2: val2&lt;br /&gt;
      tags: &lt;br /&gt;
        - stuff&lt;br /&gt;
        - nonsence&lt;br /&gt;
      &amp;lt;module&amp;gt;: src=template.j2 dest=/etc/foo.conf&lt;br /&gt;
      action: &amp;lt;module&amp;gt;, src=template.j2 dest=/etc/foo.conf&lt;br /&gt;
      action: &amp;lt;module&amp;gt;&lt;br /&gt;
      args:&lt;br /&gt;
          src=template.j2&lt;br /&gt;
          dest=/etc/foo.conf&lt;br /&gt;
      local_action: &amp;lt;module&amp;gt; /usr/bin/take_out_of_pool {{ inventory_hostname }}&lt;br /&gt;
      when: ansible_os_family == &amp;quot;Debian&amp;quot;&lt;br /&gt;
      register: result&lt;br /&gt;
      failed_when: &amp;quot;&amp;#039;FAILED&amp;#039; in result.stderr&amp;quot;&lt;br /&gt;
      changed_when: result.rc != 2&lt;br /&gt;
      notify:&lt;br /&gt;
        - restart apache&lt;br /&gt;
&lt;br /&gt;
`delegate_to: 127.0.0.1` is implied by `local_action:`&lt;br /&gt;
&lt;br /&gt;
The forms `&amp;lt;module&amp;gt;: &amp;lt;args&amp;gt;`, `action: &amp;lt;module&amp;gt; &amp;lt;args&amp;gt;`, and `local_action: &amp;lt;module&amp;gt; &amp;lt;args&amp;gt;` are mutually-exclusive. &lt;br /&gt;
&lt;br /&gt;
Additional keys `when_*`, `until`, `retries` and `delay` are documented below under &amp;#039;Loops&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In addition the source code implies the availability of the following&lt;br /&gt;
which don&amp;#039;t *seem* to be mentioned in the documentation: &lt;br /&gt;
`first_available_file` (deprecated), `transport`, &lt;br /&gt;
`connection`, `any_errors_fatal`.&lt;br /&gt;
&lt;br /&gt;
# Roles&lt;br /&gt;
&lt;br /&gt;
[playbooks\_roles.html](http://docs.ansible.com/playbooks_roles.html)&lt;br /&gt;
&lt;br /&gt;
Directory structure:&lt;br /&gt;
&lt;br /&gt;
    playbook.yml&lt;br /&gt;
    roles/&lt;br /&gt;
       common/&lt;br /&gt;
         tasks/&lt;br /&gt;
           main.yml&lt;br /&gt;
         handlers/&lt;br /&gt;
           main.yml&lt;br /&gt;
         vars/&lt;br /&gt;
           main.yml&lt;br /&gt;
         meta/&lt;br /&gt;
           main.yml&lt;br /&gt;
         defaults/&lt;br /&gt;
           main.yml&lt;br /&gt;
         files/&lt;br /&gt;
         templates/&lt;br /&gt;
         library/&lt;br /&gt;
&lt;br /&gt;
# Modules&lt;br /&gt;
&lt;br /&gt;
[modules.htm](http://docs.ansible.com/modules.htm),&lt;br /&gt;
[modules\_by\_category.html](http://docs.ansible.com/modules_by_category.html)&lt;br /&gt;
&lt;br /&gt;
List all installed modules with&lt;br /&gt;
&lt;br /&gt;
    ansible-doc --list&lt;br /&gt;
&lt;br /&gt;
Document a particular module with&lt;br /&gt;
&lt;br /&gt;
    ansible-doc &amp;lt;module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show playbook snippet for specified module&lt;br /&gt;
&lt;br /&gt;
    ansible-doc -i &amp;lt;module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Variables&lt;br /&gt;
&lt;br /&gt;
[playbooks\_roles.html](http://docs.ansible.com/playbooks_roles.html),&lt;br /&gt;
[playbooks\_variables.html](http://docs.ansible.com/playbooks_variables.html)&lt;br /&gt;
&lt;br /&gt;
Names: letters, digits, underscores; starting with a letter.&lt;br /&gt;
&lt;br /&gt;
## Substitution examples: &lt;br /&gt;
&lt;br /&gt;
* `{{ var }}`&lt;br /&gt;
* `{{ var[&amp;quot;key1&amp;quot;][&amp;quot;key2&amp;quot;]}}`&lt;br /&gt;
* `{{ var.key1.key2 }}`&lt;br /&gt;
* `{{ list[0] }}`&lt;br /&gt;
&lt;br /&gt;
YAML requires an item starting with a variable substitution to be quoted.&lt;br /&gt;
&lt;br /&gt;
## Sources: &lt;br /&gt;
&lt;br /&gt;
* Highest priority:&lt;br /&gt;
    * `--extra-vars` on the command line&lt;br /&gt;
* General:&lt;br /&gt;
    * `vars` component of a playbook&lt;br /&gt;
    * From files referenced by `vars_file` in a playbook&lt;br /&gt;
    * From included files (incl. roles)&lt;br /&gt;
    * Parameters passed to includes&lt;br /&gt;
    * `register:` in tasks&lt;br /&gt;
* Lower priority:&lt;br /&gt;
    * Inventory (set on host or group)&lt;br /&gt;
* Lower priority:&lt;br /&gt;
    * Facts (see below)&lt;br /&gt;
    * Any `/etc/ansible/facts.d/filename.fact` on managed machines &lt;br /&gt;
      (sets variables with `ansible_local.filename. prefix)&lt;br /&gt;
* Lowest priority&lt;br /&gt;
    * Role defaults (from defaults/main.yml)&lt;br /&gt;
&lt;br /&gt;
## Built-in:&lt;br /&gt;
&lt;br /&gt;
* `hostvars` (e.g. `hostvars[other.example.com][...]`)&lt;br /&gt;
* `group_names` (groups containing current host)&lt;br /&gt;
* `groups` (all groups and hosts in the inventory)&lt;br /&gt;
* `inventory_hostname` (current host as in inventory)&lt;br /&gt;
* `inventory_hostname_short` (first component of inventory_hostname)&lt;br /&gt;
* `play_hosts` (hostnames in scope for current play)&lt;br /&gt;
* `inventory_dir` (location of the inventory)&lt;br /&gt;
* `inventoty_file` (name of the inventory)&lt;br /&gt;
&lt;br /&gt;
## Facts:&lt;br /&gt;
&lt;br /&gt;
Run `ansible hostname -m setup`, but in particular:&lt;br /&gt;
&lt;br /&gt;
* `ansible_distribution`&lt;br /&gt;
* `ansible_distribution_release`&lt;br /&gt;
* `ansible_distribution_version`&lt;br /&gt;
* `ansible_fqdn`&lt;br /&gt;
* `ansible_hostname`&lt;br /&gt;
* `ansible_os_family`&lt;br /&gt;
* `ansible_pkg_mgr`&lt;br /&gt;
* `ansible_default_ipv4.address`&lt;br /&gt;
* `ansible_default_ipv6.address`&lt;br /&gt;
&lt;br /&gt;
## Content of &amp;#039;registered&amp;#039; variables:&lt;br /&gt;
&lt;br /&gt;
[playbooks\_conditionals.html](http://docs.ansible.com/playbooks_conditionals.html),&lt;br /&gt;
[playbooks\_loops.html](http://docs.ansible.com/playbooks_loops.html)&lt;br /&gt;
&lt;br /&gt;
Depends on module. Typically includes:&lt;br /&gt;
&lt;br /&gt;
* `.rc`&lt;br /&gt;
* `.stdout`&lt;br /&gt;
* `.stdout_lines`&lt;br /&gt;
* `.changed`&lt;br /&gt;
* `.msg` (following failure)&lt;br /&gt;
* `.results` (when used in a loop)&lt;br /&gt;
&lt;br /&gt;
See also `failed`, `changed`, etc filters.&lt;br /&gt;
&lt;br /&gt;
When used in a loop the `result` element is a list containing all&lt;br /&gt;
responses from the module.&lt;br /&gt;
&lt;br /&gt;
## Additionally available in templates:&lt;br /&gt;
&lt;br /&gt;
* `ansible_managed`: string containing the information below&lt;br /&gt;
* `template_host`: node name of the templateâs machine&lt;br /&gt;
* `template_uid`: the owner&lt;br /&gt;
* `template_path`: absolute path of the template&lt;br /&gt;
* `template_fullpath`: the absolute path of the template&lt;br /&gt;
* `template_run_date`: the date that the template was rendered&lt;br /&gt;
&lt;br /&gt;
# Filters&lt;br /&gt;
&lt;br /&gt;
[playbooks\_variables.html](http://docs.ansible.com/playbooks_variables.html)&lt;br /&gt;
&lt;br /&gt;
* `{{ var | to_nice_json }}`&lt;br /&gt;
* `{{ var | to_json }}`&lt;br /&gt;
* `{{ var | from_json }}`&lt;br /&gt;
* `{{ var | to_nice_yml }}`&lt;br /&gt;
* `{{ var | to_yml }}`&lt;br /&gt;
* `{{ var | from_yml }}`&lt;br /&gt;
* `{{ result | failed }}`&lt;br /&gt;
* `{{ result | changed }}`&lt;br /&gt;
* `{{ result | success }}`&lt;br /&gt;
* `{{ result | skipped }}`&lt;br /&gt;
* `{{ var | manditory }}`&lt;br /&gt;
* `{{ var | default(5) }}`&lt;br /&gt;
* `{{ list1 | unique }}`&lt;br /&gt;
* `{{ list1 | union(list2) }}`&lt;br /&gt;
* `{{ list1 | intersect(list2) }}`&lt;br /&gt;
* `{{ list1 | difference(list2) }}`&lt;br /&gt;
* `{{ list1 | symmetric_difference(list2) }}`&lt;br /&gt;
* `{{ ver1 | version_compare(ver2, operator=&amp;#039;&amp;gt;=&amp;#039;, strict=True }}`&lt;br /&gt;
* `{{ list | random }}`&lt;br /&gt;
* `{{ number | random }}`&lt;br /&gt;
* `{{ number | random(start=1, step=10) }}`&lt;br /&gt;
* `{{ list | join(&amp;quot; &amp;quot;) }}`&lt;br /&gt;
* `{{ path | basename }}`&lt;br /&gt;
* `{{ path | dirname }}`&lt;br /&gt;
* `{{ path | expanduser }}`&lt;br /&gt;
* `{{ path | realpath }}`&lt;br /&gt;
* `{{ var | b64decode }}`&lt;br /&gt;
* `{{ var | b64encode }}`&lt;br /&gt;
* `{{ filename | md5 }}`&lt;br /&gt;
* `{{ var | bool }}`&lt;br /&gt;
* `{{ var | int }}`&lt;br /&gt;
* `{{ var | quote }}`&lt;br /&gt;
* `{{ var | md5 }}`&lt;br /&gt;
* `{{ var | fileglob }}`&lt;br /&gt;
* `{{ var | match }}`&lt;br /&gt;
* `{{ var | search }}`&lt;br /&gt;
* `{{ var | regex }}`&lt;br /&gt;
* `{{ var | regexp_replace(&amp;#039;from&amp;#039;, &amp;#039;to&amp;#039; )}}`&lt;br /&gt;
&lt;br /&gt;
See also [default jinja2&lt;br /&gt;
filters](http://jinja.pocoo.org/docs/templates/#builtin-filters). In&lt;br /&gt;
YAML, values starting `{` must be quoted.&lt;br /&gt;
&lt;br /&gt;
# Lookups&lt;br /&gt;
&lt;br /&gt;
[playbooks\_lookups.html](http://docs.ansible.com/playbooks_lookups.html)&lt;br /&gt;
&lt;br /&gt;
Lookups are evaluated on the control machine. &lt;br /&gt;
&lt;br /&gt;
* `{{ lookup(&amp;#039;file&amp;#039;, &amp;#039;/etc/foo.txt&amp;#039;) }}`&lt;br /&gt;
* `{{ lookup(&amp;#039;password&amp;#039;, &amp;#039;/tmp/passwordfile length=20 chars=ascii_letters,digits&amp;#039;) }}`&lt;br /&gt;
* `{{ lookup(&amp;#039;env&amp;#039;,&amp;#039;HOME&amp;#039;) }}`&lt;br /&gt;
* `{{ lookup(&amp;#039;pipe&amp;#039;,&amp;#039;date&amp;#039;) }}`&lt;br /&gt;
* `{{ lookup(&amp;#039;redis_kv&amp;#039;, &amp;#039;redis://localhost:6379,somekey&amp;#039;) }}`&lt;br /&gt;
* `{{ lookup(&amp;#039;dnstxt&amp;#039;, &amp;#039;example.com&amp;#039;) }}`&lt;br /&gt;
* `{{ lookup(&amp;#039;template&amp;#039;, &amp;#039;./some_template.j2&amp;#039;) }}`&lt;br /&gt;
&lt;br /&gt;
Lookups can be assigned to variables and will be evaluated each time&lt;br /&gt;
the variable is used.&lt;br /&gt;
&lt;br /&gt;
Lookup plugins also support loop iteration (see below).&lt;br /&gt;
&lt;br /&gt;
# Conditions&lt;br /&gt;
&lt;br /&gt;
[playbooks\_conditionals.html](http://docs.ansible.com/playbooks_conditionals.html)&lt;br /&gt;
&lt;br /&gt;
`when: &amp;lt;condition&amp;gt;`, where condition is:&lt;br /&gt;
&lt;br /&gt;
* `var == &amp;quot;Vaue&amp;quot;`, `var &amp;gt;= 5`, etc.&lt;br /&gt;
* `var`, where `var` coreces to boolean (yes, true, True, TRUE)&lt;br /&gt;
* `var is defined`, `var is not defined`&lt;br /&gt;
* `&amp;lt;condition1&amp;gt; and &amp;lt;condition2&amp;gt;` (also `or`?)&lt;br /&gt;
&lt;br /&gt;
Combined with `with_items`, the when statement is processed for each item.&lt;br /&gt;
&lt;br /&gt;
`when` can also be applied to includes and roles. Conditional Imports&lt;br /&gt;
and variable substitution in file and template names can avoid the&lt;br /&gt;
need for explicit conditionals.&lt;br /&gt;
&lt;br /&gt;
# Loops&lt;br /&gt;
&lt;br /&gt;
[playbooks\_loops.html](http://docs.ansible.com/playbooks_loops.html)&lt;br /&gt;
&lt;br /&gt;
In addition the source code implies the availability of the following&lt;br /&gt;
which don&amp;#039;t *seem* to be mentioned in the documentation: `csvfile`, `etcd`, `inventory_hostname`. &lt;br /&gt;
&lt;br /&gt;
## Standard:&lt;br /&gt;
&lt;br /&gt;
    - user: name={{ item }} state=present groups=wheel&lt;br /&gt;
      with_items:&lt;br /&gt;
        - testuser1&lt;br /&gt;
        - testuser2&lt;br /&gt;
       &lt;br /&gt;
    - name: add several users&lt;br /&gt;
      user: name={{ item.name }} state=present groups={{ item.groups }}&lt;br /&gt;
      with_items:&lt;br /&gt;
        - { name: &amp;#039;testuser1&amp;#039;, groups: &amp;#039;wheel&amp;#039; }&lt;br /&gt;
        - { name: &amp;#039;testuser2&amp;#039;, groups: &amp;#039;root&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
      with_items: somelist&lt;br /&gt;
    &lt;br /&gt;
## Nested:&lt;br /&gt;
&lt;br /&gt;
    - mysql_user: name={{ item[0] }} priv={{ item[1] }}.*:ALL                &lt;br /&gt;
                               append_privs=yes password=foo&lt;br /&gt;
      with_nested:&lt;br /&gt;
        - [ &amp;#039;alice&amp;#039;, &amp;#039;bob&amp;#039;, &amp;#039;eve&amp;#039; ]&lt;br /&gt;
        - [ &amp;#039;clientdb&amp;#039;, &amp;#039;employeedb&amp;#039;, &amp;#039;providerdb&amp;#039; ]&lt;br /&gt;
        &lt;br /&gt;
## Over hashes:&lt;br /&gt;
&lt;br /&gt;
Given&lt;br /&gt;
&lt;br /&gt;
    ---&lt;br /&gt;
    users:&lt;br /&gt;
      alice:&lt;br /&gt;
        name: Alice Appleworth&lt;br /&gt;
        telephone: 123-456-7890&lt;br /&gt;
      bob:&lt;br /&gt;
        name: Bob Bananarama&lt;br /&gt;
        telephone: 987-654-3210&lt;br /&gt;
        &lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: Print phone records&lt;br /&gt;
        debug: msg=&amp;quot;User {{ item.key }} is {{ item.value.name }} &lt;br /&gt;
                         ({{ item.value.telephone }})&amp;quot;&lt;br /&gt;
        with_dict: users&lt;br /&gt;
&lt;br /&gt;
## Fileglob:&lt;br /&gt;
&lt;br /&gt;
    - copy: src={{ item }} dest=/etc/fooapp/ owner=root mode=600&lt;br /&gt;
      with_fileglob:&lt;br /&gt;
        - /playbooks/files/fooapp/*&lt;br /&gt;
&lt;br /&gt;
In a role, relative paths resolve relative to the&lt;br /&gt;
`roles/&amp;lt;rolename&amp;gt;/files` directory.&lt;br /&gt;
&lt;br /&gt;
## With content of file:&lt;br /&gt;
&lt;br /&gt;
(see example for `authorized_key` module)&lt;br /&gt;
&lt;br /&gt;
    - authorized_key: user=deploy key=&amp;quot;{{ item }}&amp;quot;&lt;br /&gt;
      with_file:&lt;br /&gt;
        - public_keys/doe-jane&lt;br /&gt;
        - public_keys/doe-john&lt;br /&gt;
&lt;br /&gt;
See also the `file` lookup when the content of a file is needed.&lt;br /&gt;
&lt;br /&gt;
## Parallel sets of data:&lt;br /&gt;
&lt;br /&gt;
Given&lt;br /&gt;
&lt;br /&gt;
    ---&lt;br /&gt;
    alpha: [ &amp;#039;a&amp;#039;, &amp;#039;b&amp;#039;, &amp;#039;c&amp;#039;, &amp;#039;d&amp;#039; ]&lt;br /&gt;
    numbers:  [ 1, 2, 3, 4 ]&lt;br /&gt;
    &lt;br /&gt;
    - debug: msg=&amp;quot;{{ item.0 }} and {{ item.1 }}&amp;quot;&lt;br /&gt;
      with_together:&lt;br /&gt;
        - alpha&lt;br /&gt;
        - numbers&lt;br /&gt;
&lt;br /&gt;
## Subelements:&lt;br /&gt;
&lt;br /&gt;
Given&lt;br /&gt;
&lt;br /&gt;
    ---&lt;br /&gt;
    users:&lt;br /&gt;
      - name: alice&lt;br /&gt;
        authorized:&lt;br /&gt;
          - /tmp/alice/onekey.pub&lt;br /&gt;
          - /tmp/alice/twokey.pub&lt;br /&gt;
      - name: bob&lt;br /&gt;
        authorized:&lt;br /&gt;
          - /tmp/bob/id_rsa.pub&lt;br /&gt;
    &lt;br /&gt;
    - authorized_key: &amp;quot;user={{ item.0.name }} &lt;br /&gt;
                       key=&amp;#039;{{ lookup(&amp;#039;file&amp;#039;, item.1) }}&amp;#039;&amp;quot;&lt;br /&gt;
      with_subelements:&lt;br /&gt;
         - users&lt;br /&gt;
         - authorized&lt;br /&gt;
         &lt;br /&gt;
## Integer sequence:&lt;br /&gt;
&lt;br /&gt;
Decimal, hexadecimal (0x3f8) or octal (0600)&lt;br /&gt;
&lt;br /&gt;
    - user: name={{ item }} state=present groups=evens&lt;br /&gt;
      with_sequence: start=0 end=32 format=testuser%02x&lt;br /&gt;
          &lt;br /&gt;
      with_sequence: start=4 end=16 stride=2&lt;br /&gt;
          &lt;br /&gt;
      with_sequence: count=4&lt;br /&gt;
          &lt;br /&gt;
## Random choice:&lt;br /&gt;
&lt;br /&gt;
    - debug: msg={{ item }}&lt;br /&gt;
      with_random_choice:&lt;br /&gt;
         - &amp;quot;go through the door&amp;quot;&lt;br /&gt;
         - &amp;quot;drink from the goblet&amp;quot;&lt;br /&gt;
         - &amp;quot;press the red button&amp;quot;&lt;br /&gt;
         - &amp;quot;do nothing&amp;quot;&lt;br /&gt;
         &lt;br /&gt;
## Do-Until:&lt;br /&gt;
&lt;br /&gt;
    - action: shell /usr/bin/foo&lt;br /&gt;
      register: result&lt;br /&gt;
      until: result.stdout.find(&amp;quot;all systems go&amp;quot;) != -1&lt;br /&gt;
      retries: 5&lt;br /&gt;
      delay: 10&lt;br /&gt;
&lt;br /&gt;
## Results of a local program:&lt;br /&gt;
&lt;br /&gt;
    - name: Example of looping over a command result&lt;br /&gt;
      shell: /usr/bin/frobnicate {{ item }}&lt;br /&gt;
      with_lines: /usr/bin/frobnications_per_host &lt;br /&gt;
                           --param {{ inventory_hostname }}&lt;br /&gt;
                           &lt;br /&gt;
To loop over the results of a remote program, use `register: result`&lt;br /&gt;
and then `with_items: result.stdout_lines` in a subsequent&lt;br /&gt;
task.&lt;br /&gt;
                           &lt;br /&gt;
## Indexed list:&lt;br /&gt;
&lt;br /&gt;
    - name: indexed loop demo&lt;br /&gt;
      debug: msg=&amp;quot;at array position {{ item.0 }} there is &lt;br /&gt;
                                         a value {{ item.1 }}&amp;quot;&lt;br /&gt;
      with_indexed_items: some_list&lt;br /&gt;
      &lt;br /&gt;
## Flattened list:&lt;br /&gt;
&lt;br /&gt;
    ---&lt;br /&gt;
    # file: roles/foo/vars/main.yml&lt;br /&gt;
    packages_base:&lt;br /&gt;
      - [ &amp;#039;foo-package&amp;#039;, &amp;#039;bar-package&amp;#039; ]&lt;br /&gt;
    packages_apps:&lt;br /&gt;
      - [ [&amp;#039;one-package&amp;#039;, &amp;#039;two-package&amp;#039; ]]&lt;br /&gt;
      - [ [&amp;#039;red-package&amp;#039;], [&amp;#039;blue-package&amp;#039;]]&lt;br /&gt;
      &lt;br /&gt;
    - name: flattened loop demo&lt;br /&gt;
      yum: name={{ item }} state=installed&lt;br /&gt;
      with_flattened:&lt;br /&gt;
        - packages_base&lt;br /&gt;
        - packages_apps      &lt;br /&gt;
&lt;br /&gt;
## First found:&lt;br /&gt;
&lt;br /&gt;
    - name: template a file&lt;br /&gt;
      template: src={{ item }} dest=/etc/myapp/foo.conf&lt;br /&gt;
      with_first_found:&lt;br /&gt;
        - files:&lt;br /&gt;
            - {{ ansible_distribution }}.conf&lt;br /&gt;
            - default.conf&lt;br /&gt;
          paths:&lt;br /&gt;
             - search_location_one/somedir/&lt;br /&gt;
             - /opt/other_location/somedir/&lt;br /&gt;
            &lt;br /&gt;
# Tags&lt;br /&gt;
&lt;br /&gt;
Both plays and tasks support a `tags:` attribute.&lt;br /&gt;
&lt;br /&gt;
    - template: src=templates/src.j2 dest=/etc/foo.conf&lt;br /&gt;
      tags:&lt;br /&gt;
        - configuration&lt;br /&gt;
&lt;br /&gt;
Tags can be applied to roles and includes (effectively tagging all&lt;br /&gt;
included tasks)&lt;br /&gt;
         &lt;br /&gt;
    roles:&lt;br /&gt;
        - { role: webserver, port: 5000, tags: [ &amp;#039;web&amp;#039;, &amp;#039;foo&amp;#039; ] }&lt;br /&gt;
&lt;br /&gt;
    - include: foo.yml tags=web,foo&lt;br /&gt;
    &lt;br /&gt;
To select by tag:&lt;br /&gt;
&lt;br /&gt;
    ansible-playbook example.yml --tags &amp;quot;configuration,packages&amp;quot;&lt;br /&gt;
    ansible-playbook example.yml --skip-tags &amp;quot;notification&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Command lines&lt;br /&gt;
&lt;br /&gt;
## ansible&lt;br /&gt;
&lt;br /&gt;
    Usage: ansible &amp;lt;host-pattern&amp;gt; [options]&lt;br /&gt;
&lt;br /&gt;
    Options:&lt;br /&gt;
      -a MODULE_ARGS, --args=MODULE_ARGS&lt;br /&gt;
                            module arguments&lt;br /&gt;
      -k, --ask-pass        ask for SSH password&lt;br /&gt;
      --ask-su-pass         ask for su password&lt;br /&gt;
      -K, --ask-sudo-pass   ask for sudo password&lt;br /&gt;
      --ask-vault-pass      ask for vault password&lt;br /&gt;
      -B SECONDS, --background=SECONDS&lt;br /&gt;
                            run asynchronously, failing after X seconds&lt;br /&gt;
                            (default=N/A)&lt;br /&gt;
      -C, --check           don&amp;#039;t make any changes; instead, try to predict some&lt;br /&gt;
                            of the changes that may occur&lt;br /&gt;
      -c CONNECTION, --connection=CONNECTION&lt;br /&gt;
                            connection type to use (default=smart)&lt;br /&gt;
      -f FORKS, --forks=FORKS&lt;br /&gt;
                            specify number of parallel processes to use&lt;br /&gt;
                            (default=5)&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -i INVENTORY, --inventory-file=INVENTORY&lt;br /&gt;
                            specify inventory host file&lt;br /&gt;
                            (default=/etc/ansible/hosts)&lt;br /&gt;
      -l SUBSET, --limit=SUBSET&lt;br /&gt;
                            further limit selected hosts to an additional pattern&lt;br /&gt;
      --list-hosts          outputs a list of matching hosts; does not execute&lt;br /&gt;
                            anything else&lt;br /&gt;
      -m MODULE_NAME, --module-name=MODULE_NAME&lt;br /&gt;
                            module name to execute (default=command)&lt;br /&gt;
      -M MODULE_PATH, --module-path=MODULE_PATH&lt;br /&gt;
                            specify path(s) to module library&lt;br /&gt;
                            (default=/usr/share/ansible)&lt;br /&gt;
      -o, --one-line        condense output&lt;br /&gt;
      -P POLL_INTERVAL, --poll=POLL_INTERVAL&lt;br /&gt;
                            set the poll interval if using -B (default=15)&lt;br /&gt;
      --private-key=PRIVATE_KEY_FILE&lt;br /&gt;
                            use this file to authenticate the connection&lt;br /&gt;
      -S, --su              run operations with su&lt;br /&gt;
      -R SU_USER, --su-user=SU_USER&lt;br /&gt;
                            run operations with su as this user (default=root)&lt;br /&gt;
      -s, --sudo            run operations with sudo (nopasswd)&lt;br /&gt;
      -U SUDO_USER, --sudo-user=SUDO_USER&lt;br /&gt;
                            desired sudo user (default=root)&lt;br /&gt;
      -T TIMEOUT, --timeout=TIMEOUT&lt;br /&gt;
                            override the SSH timeout in seconds (default=10)&lt;br /&gt;
      -t TREE, --tree=TREE  log output to this directory&lt;br /&gt;
      -u REMOTE_USER, --user=REMOTE_USER&lt;br /&gt;
                            connect as this user (default=jw35)&lt;br /&gt;
      --vault-password-file=VAULT_PASSWORD_FILE&lt;br /&gt;
                            vault password file&lt;br /&gt;
      -v, --verbose         verbose mode (-vvv for more, -vvvv to enable&lt;br /&gt;
                            connection debugging)&lt;br /&gt;
      --version             show program&amp;#039;s version number and exit&lt;br /&gt;
&lt;br /&gt;
##  ansible-playbook&lt;br /&gt;
&lt;br /&gt;
    Usage: ansible-playbook playbook.yml&lt;br /&gt;
&lt;br /&gt;
    Options:&lt;br /&gt;
      -k, --ask-pass        ask for SSH password&lt;br /&gt;
      --ask-su-pass         ask for su password&lt;br /&gt;
      -K, --ask-sudo-pass   ask for sudo password&lt;br /&gt;
      --ask-vault-pass      ask for vault password&lt;br /&gt;
      -C, --check           don&amp;#039;t make any changes; instead, try to predict some&lt;br /&gt;
                            of the changes that may occur&lt;br /&gt;
      -c CONNECTION, --connection=CONNECTION&lt;br /&gt;
                            connection type to use (default=smart)&lt;br /&gt;
      -D, --diff            when changing (small) files and templates, show the&lt;br /&gt;
                            differences in those files; works great with --check&lt;br /&gt;
      -e EXTRA_VARS, --extra-vars=EXTRA_VARS&lt;br /&gt;
                            set additional variables as key=value or YAML/JSON&lt;br /&gt;
      -f FORKS, --forks=FORKS&lt;br /&gt;
                            specify number of parallel processes to use&lt;br /&gt;
                            (default=5)&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -i INVENTORY, --inventory-file=INVENTORY&lt;br /&gt;
                            specify inventory host file&lt;br /&gt;
                            (default=/etc/ansible/hosts)&lt;br /&gt;
      -l SUBSET, --limit=SUBSET&lt;br /&gt;
                            further limit selected hosts to an additional pattern&lt;br /&gt;
      --list-hosts          outputs a list of matching hosts; does not execute&lt;br /&gt;
                            anything else&lt;br /&gt;
      --list-tasks          list all tasks that would be executed&lt;br /&gt;
      -M MODULE_PATH, --module-path=MODULE_PATH&lt;br /&gt;
                            specify path(s) to module library&lt;br /&gt;
                            (default=/usr/share/ansible)&lt;br /&gt;
      --private-key=PRIVATE_KEY_FILE&lt;br /&gt;
                            use this file to authenticate the connection&lt;br /&gt;
      --skip-tags=SKIP_TAGS&lt;br /&gt;
                            only run plays and tasks whose tags do not match these&lt;br /&gt;
                            values&lt;br /&gt;
      --start-at-task=START_AT&lt;br /&gt;
                            start the playbook at the task matching this name&lt;br /&gt;
      --step                one-step-at-a-time: confirm each task before running&lt;br /&gt;
      -S, --su              run operations with su&lt;br /&gt;
      -R SU_USER, --su-user=SU_USER&lt;br /&gt;
                            run operations with su as this user (default=root)&lt;br /&gt;
      -s, --sudo            run operations with sudo (nopasswd)&lt;br /&gt;
      -U SUDO_USER, --sudo-user=SUDO_USER&lt;br /&gt;
                            desired sudo user (default=root)&lt;br /&gt;
      --syntax-check        perform a syntax check on the playbook, but do not&lt;br /&gt;
                            execute it&lt;br /&gt;
      -t TAGS, --tags=TAGS  only run plays and tasks tagged with these values&lt;br /&gt;
      -T TIMEOUT, --timeout=TIMEOUT&lt;br /&gt;
                            override the SSH timeout in seconds (default=10)&lt;br /&gt;
      -u REMOTE_USER, --user=REMOTE_USER&lt;br /&gt;
                            connect as this user (default=jw35)&lt;br /&gt;
      --vault-password-file=VAULT_PASSWORD_FILE&lt;br /&gt;
                            vault password file&lt;br /&gt;
      -v, --verbose         verbose mode (-vvv for more, -vvvv to enable&lt;br /&gt;
                            connection debugging)&lt;br /&gt;
      --version             show program&amp;#039;s version number and exit&lt;br /&gt;
&lt;br /&gt;
## ansible-vault&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
playbooks_vault.html&lt;br /&gt;
&lt;br /&gt;
    Usage: ansible-vault [create|decrypt|edit|encrypt|rekey] [--help] [options] file_name&lt;br /&gt;
&lt;br /&gt;
    Options:&lt;br /&gt;
      -h, --help  show this help message and exit&lt;br /&gt;
&lt;br /&gt;
    See &amp;#039;ansible-vault &amp;lt;command&amp;gt; --help&amp;#039; for more information on a specific command.&lt;br /&gt;
&lt;br /&gt;
## ansible-doc&lt;br /&gt;
&lt;br /&gt;
    Usage: ansible-doc [options] [module...]&lt;br /&gt;
&lt;br /&gt;
    Show Ansible module documentation&lt;br /&gt;
&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program&amp;#039;s version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -M MODULE_PATH, --module-path=MODULE_PATH&lt;br /&gt;
                                 Ansible modules/ directory&lt;br /&gt;
      -l, --list            List available modules&lt;br /&gt;
      -s, --snippet         Show playbook snippet for specified module(s)&lt;br /&gt;
      -v                    Show version number and exit&lt;br /&gt;
   &lt;br /&gt;
## ansible-galaxy&lt;br /&gt;
&lt;br /&gt;
    Usage: ansible-galaxy [init|info|install|list|remove] [--help] [options] ...&lt;br /&gt;
&lt;br /&gt;
    Options:&lt;br /&gt;
      -h, --help  show this help message and exit&lt;br /&gt;
&lt;br /&gt;
      See &amp;#039;ansible-galaxy &amp;lt;command&amp;gt; --help&amp;#039; for more information on a&lt;br /&gt;
      specific command &lt;br /&gt;
&lt;br /&gt;
## ansible-pull&lt;br /&gt;
&lt;br /&gt;
    Usage: ansible-pull [options] [playbook.yml]&lt;br /&gt;
&lt;br /&gt;
    ansible-pull: error: URL for repository not specified, use -h for help&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>