我有3台服务器A,B,C。当我在j2模板中运行以下内容时,它会拉出所有3台服务器。
如何忽略运行模板的服务器?
例如,如果服务器A运行,它应该只获取服务器B&下进行。
"retry_join": ["
{% for host in groups['servers']%}
{{ hostvars[host]['ansible_ssh_host'] }}
{% if not loop.last %}, {% endif %}
{% endfor %}
"]
答案 0 :(得分:2)
从服务器列表中排除inventory_hostname
:
{% for host in groups['servers'] | difference([inventory_hostname]) %}
答案 1 :(得分:0)
您可以尝试像这样的检查来验证您的循环变量不是当前主机:
{% if host != inventory_hostname %}
{{ hostvars[host]['ansible_ssh_host'] }}
{% endif %}