Как получить доступ к IP-адресу eth0 для всех узлов в шаблоне Ansible?

Текущее решение зависит от имени хоста для каждого узла в группе:

"{{ groups['zookeeper']|join(':2181,') }}:2181"

Это генерирует строку: hostname1: 2181, hostname2: 2181 или что-то подобное. Я хотел бы использовать внутренний IP-адрес на eth0 вместо имени хоста. Есть ли аналогичный способ получить доступ ко всем IP-адресам eth0 аналогичным образом?


person Istvan    schedule 11.02.2017    source источник


Ответы (1)


Решение состоит в том, чтобы получить доступ к hostvars с извлечением карты:

kafka_zk_string: "{{ groups['zookeeper'] | map('extract', hostvars, ['ansible_eth0', 'ipv4', 'address']) |join(':2181,') }}:2181"
person Istvan    schedule 11.02.2017