loop in Ansible are done with look up plugin 1) 2) that returns variables for each selectionned item that you can use in your template.
loop in Ansible are never nested but you can combine list
- name: give users access to multiple databases
mysql_user:
name: "{{ item[0] }}"
priv: "{{ item[1] }}.*:ALL"
append_privs: yes
password: "foo"
loop: "{{ ['alice', 'bob'] |product(['clientdb', 'employeedb', 'providerdb'])|list }}"
- name: Install mapr-core
vars:
packages_Suse: ['mapr-compat-suse', 'mapr-core', 'mapr-core-internal']
packages_RedHat: ['mapr-core', 'mapr-core-internal']
packages_Debian: ['mapr-core', 'mapr-core-internal']
package: name={{ item }} state=present
with_items: "{{ vars['packages_' + ansible_os_family] }}"
register: core_result
See the file system page loop section where you can find the with_fileglob and with_filetree lookup.