- hosts: - bgp tasks: - debug: var: bgp_if - debug: var: bgp_peers - ansible.utils.update_fact: updates: - path: "peers[{{ idx }}]" value: "{{ {} }}" - path: "peers[{{ idx }}].name" value: "{{ item }}" - path: "peers[{{ idx }}].as" value: "{{ hostvars[item].bgp_as }}" - path: "peers[{{ idx }}].ip" value: "{{ hostvars[item].bgp_ip }}" loop: "{{ bgp_peers }}" loop_control: index_var: idx vars: peers: [] register: out changed_when: false - set_fact: peers: "{{ out.results[-1].peers }}" - debug: var: peers - become: yes template: src: bird.conf.j2 dest: /etc/bird/bird.conf register: template - systemd: state: reloaded service: bird when: template.changed become: yes