Вы спасли мой день!Также, если вам нужна строка в конфигурационном файле, например, JSON:
nodelist = ["192.168.126.38","192.168.126.39","192.168.126.40"]
Это ваш ответ для этого:
nodelist={%for host in groups['mygroup']%}"{{hostvars[host].ansible_eth0.ipv4.address}}"{% if not loop.last %},{% endif %}{% endfor %}
Вотесли полный пример:
- name: Create List of nodes to be added into Cluster
set_fact: nodelist={%for host in groups['mygroup']%}"{{hostvars[host].ansible_eth0.ipv4.address}}"{% if not loop.last %},{% endif %}{% endfor %}
- debug: msg=[{{nodelist}}]
- name: Set Cluster node list in config file
lineinfile:
path: "/etc/myfonfig.cfg"
line: "hosts: [{{ nodelist }}]"
, в результате вы получите следующую строку в файле конфигурации:
hosts: ["192.168.126.38","192.168.126.39","192.168.126.40"]