2017-08-14 62 views

回答

1

如果您對目前正在執行該角色的主機所具有的IP感興趣,則只需使用內置的可靠事實即可。 :

- debug: 
    var={{ "ansible_default_ipv4['address'] }}" 
+0

嗯,我對所有運行該角色的主機感興趣 –

+0

這不是一種有效的工作方式。您可以將角色想象爲在劇本的每個主機上運行的腳本(通常並行)。沒有連接。 – ProfHase85

1

我不認爲Ansible提供了一個可變訪問一個作用被應用到主機。如果您想獲得當前播放中的活動主機,請使用ansible_play_hosts(或者如果您的版本爲< 2.2,則使用play_hosts)。

但是,我認爲一個更好的解決方案是將您的動物園管理員節點分組在一起。

[zookeeper_nodes] 
node1 
node2 
node3 

從那裏你可以使用groupshostvars

{% for host in groups['zookeeper_nodes'] %} 
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }} 
{% endfor %} 

Ansible's docs on magic variables更多信息從訪問這些主機變量。

相關問題