我正在嘗試設置一個Zookeeper集羣併爲了設置指向ZK節點的URL我想知道哪些是IP地址運行當前角色的主機。我怎樣才能從該角色內運行某個角色的主機
我知道,從劇本我可以通過主機機器通過一個變量,但它是很好的檢查這個角色。
我正在嘗試設置一個Zookeeper集羣併爲了設置指向ZK節點的URL我想知道哪些是IP地址運行當前角色的主機。我怎樣才能從該角色內運行某個角色的主機
我知道,從劇本我可以通過主機機器通過一個變量,但它是很好的檢查這個角色。
如果您對目前正在執行該角色的主機所具有的IP感興趣,則只需使用內置的可靠事實即可。 :
- debug:
var={{ "ansible_default_ipv4['address'] }}"
我不認爲Ansible提供了一個可變訪問一個作用被應用到主機。如果您想獲得當前播放中的活動主機,請使用ansible_play_hosts
(或者如果您的版本爲< 2.2,則使用play_hosts
)。
但是,我認爲一個更好的解決方案是將您的動物園管理員節點分組在一起。
[zookeeper_nodes]
node1
node2
node3
從那裏你可以使用groups
和hostvars
{% for host in groups['zookeeper_nodes'] %}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
見Ansible's docs on magic variables更多信息從訪問這些主機變量。
嗯,我對所有運行該角色的主機感興趣 –
這不是一種有效的工作方式。您可以將角色想象爲在劇本的每個主機上運行的腳本(通常並行)。沒有連接。 – ProfHase85