在Ansible的循环中访问ansible hosts文件中的主机名?

时间:2014-06-16 17:58:05

标签: apache-zookeeper ansible

我尝试使用Ansible自动zookeeper install。我想在我的cfg文件中添加一堆行。以下是有5个节点的示例。 zoo1zoo2zoo3等我ansible_hosts文件中的主机。

我想用with_items实现它,但无法弄明白。知道如何在循环中访问ansible_hosts文件中的主机名吗?

initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
server.4=zoo4:2888:3888
server.5=zoo5:2888:3888

2 个答案:

答案 0 :(得分:2)

尝试使用lineinfile模块with_items: groups['<GROUP_NAME>'](或with_items: groups['all'],如果您想引用所有已定义的主机。)

答案 1 :(得分:0)

您可以通过在模板中执行循环来自动执行此操作

{% for host in groups['06'] %} server.{{ loop.index }}={{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}:2888:3888 {% endfor %}