我需要修改配置文件中的一行,其中包含 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 %}
在主机条目之间添加逗号分隔符并跳过最后一个逗号。