Working with lists and dictionary variables in ansible
From Notes_Wiki
Home > CentOS > CentOS 6.x > System administration tools > ansible > Ansible tips and tricks > Ansible lookup plugins > Working with lists and dictionary variables in ansible
For working with lists and dictionary variables in ansible, refer to following example:
--- - name: Test playbook for checking dictionaries hosts: all remote_user: root vars: dict1: {hostname: "test", ip: "127.0.0.1"} list_dict2: - {hostname: "test2", ip: "127.0.0.2"} - {hostname: "test3", ip: "127.0.0.3"} list_dict3: - {hostname: "test4", ip: [ "127.0.0.4", "127.0.0.5", "127.0.0.6" ] } tasks: - name: Accessing direct dictionary debug: msg=" hostname is {{dict1.hostname}} and ip is {{dict1.ip}}" - name: Accessing list of dictionary debug: msg=" hostname is {{item.hostname}} and ip is {{item.ip}}" with_items: list_dict2 - name: Accessing dictionary with one of the value as lists template: src=host.j2 dest=/root/message.txt with_items: list_dict3
The example refers to jinja2 file name 'host.j2" with contents:
{% for host1 in list_dict3 %} Current host is {{host1.hostname}} The ips for this host are: {% for ip1 in host1.ip %} - {{ip1}} {% endfor %} {% endfor %}
The output message file on destination would get created with contents:
Current host is test4 The ips for this host are: - 127.0.0.4 - 127.0.0.5 - 127.0.0.6
Home > CentOS > CentOS 6.x > System administration tools > ansible > Ansible tips and tricks > Ansible lookup plugins > Working with lists and dictionary variables in ansible