想要使用 Ansible Lineinfile 模块插入 zookeeperservers 库存组中主机的私有 IP 地址

想要使用 Ansible Lineinfile 模块插入 zookeeperservers 库存组中主机的私有 IP 地址

我需要修改配置文件中的一行,其中包含 zookeeperservers 库存组中主机的私有 IP 地址。

该配置文件是一个.xml 文件。

配置文件中的关键词是“连接字符串”>。

zookeeperservers 库存组中有 3 台主机,即 zoo1、zoo2 和 zoo3。

我想在“连接字符串”>之后立即插入一行(即,紧接着“>”符号之后),我想插入的是zoo1的私有IP地址:2181,zoo2的私有IP地址:2181,zoo3的私有IP地址:2181。

因此,在 > 之后立即添加到此行的行应如下所示:

10.42.239.2:2181,10.42.227.227:2181,10.42.237.9:2181.

:2181 上面的值将是一个字符串。我想使用 ansible 中的值来填充私有 IP 地址。

有人可以指导我该如何做到这一点吗?

答案1

在你的 zookeeper 配置模板中你需要循环遍历你的 zookeeper 主机组。像这样:

{% for host in groups['zookeeperservers'] %}
   {{ hostvars[host]['ansible_default_ipv4']['address'] }}:2181{% if not loop.last %},{% endif %}
{% endfor %}

if not loop.last %},{% endif %}在主机条目之间添加逗号分隔符并跳过最后一个逗号。

相关内容