--- - name: load provisioner facts block: - name: save current provisioner hostname ansible.builtin.set_fact: provisioner_hostname: '{{ provisioner_hostname | default(lookup("ansible.builtin.pipe", "hostname"), true) }}' - name: retrieve hostnames and IP addresses of all provisioners ansible.builtin.set_fact: provisioner_controllers_list: '{{ provisioner_controllers_list | default({}) | combine({hostvars[item]["ansible_host"]: lookup("community.general.dig", hostvars[item]["ansible_host"])}) }}' loop: '{{ groups["provisioner"] }}' - name: retrieve provisioner inventory facts ansible.builtin.set_fact: provisioner_facts: '{{ dict(hostvars[provisioner_hostname]) | combine({"provisioner_controllers_list": provisioner_controllers_list}) | moreati.jq.jq(JSON_MATCH_QUERY) }}' when: inventory_hostname == ansible_play_hosts_all[0] run_once: true vars: JSON_MATCH_QUERY: 'to_entries | map(select(.key | match("^provisioner_.+")) | .key |= ltrimstr("provisioner_")) | from_entries'