Вы можете использовать Jinja2 для шаблона вашей переменной из других переменных.
Так что, если у нас есть список вещей, как это:
seeds:
- 192.168.56.11
- 192.168.56.12
Мы можем превратить это в запятая строку с разделителями по looping через него с чем-то вроде этого:
seeds_string: '{% for seed in seeds %} {{ seed }}{% if not loop.last %},{% endif %}{% endfor %}'
Что касается получения IP-адреса хостов в вашем инвентаре, мы можем получить доступ к фактам о других хостах, чем тот, который настроен с помощью the groups
and hostvars
magic variables.
Так, чтобы получить IP-адреса всех хостов в инвентаре мы могли бы использовать что-то вроде:
{% for host in groups['all'] %}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
Объединяя это вместе мы можем сделать что-то вроде этого:
seeds: '{% for host in groups['all'] %} {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}{% if not loop.last %},{% endif %}{% endfor %}'
Спасибо большое, это именно то, что я искал. Просто проверил его в моем проекте, он работает как шарм. – sashaegorov