--- - hosts: localhost vars: my_loop: > [ {% for i in range(1, 2) %} { 'name':'prefix-{{ i }}' } {% if not loop.last %},{% endif %} {% endfor %} ] ips_str: | {% for idx in range(0,2) %} - name: 192.168.100.{{ idx }} test: {{ idx }} {% endfor %} ips: "{{ ips_str | from_yaml }}" tasks: - debug: msg: "{{ my_loop }}" - debug: msg: "{{ item.name }}" loop: "{{ my_loop }}" - debug: msg: "{{ ips }}" - debug: msg: "{{ item.name }}" loop: "{{ ips }}"