18 lines
1 KiB
YAML
18 lines
1 KiB
YAML
---
|
|
- 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'
|