A documentação segura tem este exemplo:
A frequently used idiom is walking a group to find all IP addresses in that group:
{% for host in groups['app_servers'] %}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
Faz aproximadamente o que você quer. Você pode usá-lo assim:
- name: Execute somescript
command: >
somescript {% for host in groups['app_servers'] %}
-H {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
Agora, você também deseja excluir o próprio host da lista de endereços IP. Você pode fazer isso modificando o {% for %}
da seguinte forma:
{% for host in groups['app_servers'] if host != ansible_host %}
Em vez de ansible_host
, talvez seja necessário usar ansible_fqdn
ou ansible_nodename
. Você deve verificar o que funciona para você.