made with_ examples have explicit templating
This commit is contained in:
parent
74a537ede0
commit
2e39661a26
1 changed files with 15 additions and 15 deletions
|
@ -23,7 +23,7 @@ To save some typing, repeated tasks can be written in short-hand like so::
|
|||
|
||||
If you have defined a YAML list in a variables file, or the 'vars' section, you can also do::
|
||||
|
||||
with_items: somelist
|
||||
with_items: "{{somelist}}"
|
||||
|
||||
The above would be the equivalent of::
|
||||
|
||||
|
@ -58,12 +58,12 @@ Loops can be nested as well::
|
|||
- [ 'alice', 'bob' ]
|
||||
- [ 'clientdb', 'employeedb', 'providerdb' ]
|
||||
|
||||
As with the case of 'with_items' above, you can use previously defined variables. Just specify the variable's name without templating it with '{{ }}'::
|
||||
As with the case of 'with_items' above, you can use previously defined variables.::
|
||||
|
||||
- name: here, 'users' contains the above list of employees
|
||||
mysql_user: name={{ item[0] }} priv={{ item[1] }}.*:ALL append_privs=yes password=foo
|
||||
with_nested:
|
||||
- users
|
||||
- "{{users}}"
|
||||
- [ 'clientdb', 'employeedb', 'providerdb' ]
|
||||
|
||||
.. _looping_over_hashes:
|
||||
|
@ -89,7 +89,7 @@ And you want to print every user's name and phone number. You can loop through
|
|||
tasks:
|
||||
- name: Print phone records
|
||||
debug: msg="User {{ item.key }} is {{ item.value.name }} ({{ item.value.telephone }})"
|
||||
with_dict: users
|
||||
with_dict: "{{users}}"
|
||||
|
||||
.. _looping_over_fileglobs:
|
||||
|
||||
|
@ -111,7 +111,7 @@ be used like this::
|
|||
- copy: src={{ item }} dest=/etc/fooapp/ owner=root mode=600
|
||||
with_fileglob:
|
||||
- /playbooks/files/fooapp/*
|
||||
|
||||
|
||||
.. note:: When using a relative path with ``with_fileglob`` in a role, Ansible resolves the path relative to the `roles/<rolename>/files` directory.
|
||||
|
||||
Looping over Parallel Sets of Data
|
||||
|
@ -130,21 +130,21 @@ And you want the set of '(a, 1)' and '(b, 2)' and so on. Use 'with_together' t
|
|||
tasks:
|
||||
- debug: msg="{{ item.0 }} and {{ item.1 }}"
|
||||
with_together:
|
||||
- alpha
|
||||
- numbers
|
||||
- "{{alpha}}"
|
||||
- "{{numbers}}"
|
||||
|
||||
Looping over Subelements
|
||||
````````````````````````
|
||||
|
||||
Suppose you want to do something like loop over a list of users, creating them, and allowing them to login by a certain set of
|
||||
SSH keys.
|
||||
SSH keys.
|
||||
|
||||
How might that be accomplished? Let's assume you had the following defined and loaded in via "vars_files" or maybe a "group_vars/all" file::
|
||||
|
||||
---
|
||||
users:
|
||||
- name: alice
|
||||
authorized:
|
||||
authorized:
|
||||
- /tmp/alice/onekey.pub
|
||||
- /tmp/alice/twokey.pub
|
||||
mysql:
|
||||
|
@ -171,7 +171,7 @@ How might that be accomplished? Let's assume you had the following defined and
|
|||
It might happen like so::
|
||||
|
||||
- user: name={{ item.name }} state=present generate_ssh_key=yes
|
||||
with_items: users
|
||||
with_items: "{{users}}"
|
||||
|
||||
- authorized_key: "user={{ item.0.name }} key='{{ lookup('file', item.1) }}'"
|
||||
with_subelements:
|
||||
|
@ -329,7 +329,7 @@ Should you ever need to execute a command remotely, you would not use the above
|
|||
|
||||
- name: Do something with each result
|
||||
shell: /usr/bin/something_else --param {{ item }}
|
||||
with_items: command_result.stdout_lines
|
||||
with_items: "{{command_result.stdout_lines}}"
|
||||
|
||||
.. _indexed_lists:
|
||||
|
||||
|
@ -345,7 +345,7 @@ It's uncommonly used::
|
|||
|
||||
- name: indexed loop demo
|
||||
debug: msg="at array position {{ item.0 }} there is a value {{ item.1 }}"
|
||||
with_indexed_items: some_list
|
||||
with_indexed_items: "{{some_list}}"
|
||||
|
||||
.. _flattening_a_list:
|
||||
|
||||
|
@ -370,8 +370,8 @@ As you can see the formatting of packages in these lists is all over the place.
|
|||
- name: flattened loop demo
|
||||
yum: name={{ item }} state=installed
|
||||
with_flattened:
|
||||
- packages_base
|
||||
- packages_apps
|
||||
- "{{packages_base}}"
|
||||
- "{{packages_apps}}"
|
||||
|
||||
That's how!
|
||||
|
||||
|
@ -435,7 +435,7 @@ Subsequent loops over the registered variable to inspect the results may look li
|
|||
fail:
|
||||
msg: "The command ({{ item.cmd }}) did not have a 0 return code"
|
||||
when: item.rc != 0
|
||||
with_items: echo.results
|
||||
with_items: "{{echo.results}}"
|
||||
|
||||
.. _writing_your_own_iterators:
|
||||
|
||||
|
|
Loading…
Reference in a new issue