How to create with-subelements loop?

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

Leave a Reply

Your email address will not be published. Required fields are marked *