How to create with-subelements loop?

Create a ansible config file as ansible.cfg file in your project directory

[defaults]  
inventory = hosts

Create a hosts file as hosts in the project directory

[webservers]
ansnode1 ansible_ssh_host=192.168.56.202 ansible_python_interpreter=/usr/bin/python   
ansnode2 ansible_ssh_host=192.168.56.203 ansible_python_interpreter=/usr/bin/python   

[webservers:vars]
ansible_port=22  
http_port=8080  


[dbservers]
ansnode3 ansible_ssh_host=192.168.56.204 ansible_python_interpreter=/usr/bin/python    
ansnode4 ansible_ssh_host=192.168.56.205 ansible_python_interpreter=/usr/bin/python   

[dev:children]
webservers  
dbservers   

Create a file named called as vars_with_subelements_loop.yml in your project directory

---
# YAML documents begin with the document separator --- 
# the minus in YAML this indicates a list item.       
# The playbook contains a list of plays with each play being a  
# dictionary      
- hosts: all   
  vars:
    users_with_items:
      - name: "alice"
    personal_directories:
      - "bob"
      - "carol"
      - "dan"
      - name: "bob"
    personal_directories:
      - "alice"
      - "carol"
      - "dan"
    common_directories:
      - ".ssh"
      - "loops"
    common_directories:
      - ".ssh"
      - "loops"
 tasks:
   - name: create common users directories using with_nested loop
     file:
       dest: "/home/{{item.0.name}}/{{ item.1 }}"
       state: directory
     with_subelements:
       - "{{ users_with_items }}"
       - personal_directories
# three dots indicate the end of a YAML document
... 

Source Code Available in Github: https://www.github.com/tamiltutera

Become a Subscriber
Get the Notify on latest Videos in your Desktop and Mobile . We never spam!
Popular Videos
Read next
Diagram illustrating HTMX attributes interacting with a web server and SQLite database to update a product list on a web browser.

Introduction to htmx and SQLite

Introduction to htmx and SQLite In modern web development, the demand for dynamic and responsive applications has significantly increased. One effective solution is htmx, a lightweight JavaScript library designed to enhance HTML with minimal effort. Unlike traditional JavaScript frameworks that require extensive code for making web pages dynamic, htmx allows developers to leverage HTML attributes […]

July 27, 2026