比如使用 ansible 部署 pxc 的时候,my.cnf 里面有一条
wsrep_cluster_address=gcomm://172.18.201.66:5020,172.18.201.67:5020,172.18.201.68:5020
如何让 ansible 自动将 ip 填进去呢?
hostvars
ansible_play_hosts
我感觉这不是我想要的。比如 zookeeper 集群。zoo.cfg 里面
server.1=172.18.11.137:2888:3888 server.2=172.18.11.138:2888:3888 server.3=172.18.11.139:2888:3888
我看您的 ansible 的 zookeeper roles 里面是这么写的:
{% for i in zookeeper_hosts %} server.{{ i.id|d(loop.index) }}={{i.host|d(i)}}:{{i.leader_port|default('2888:3888')}} {% endfor %}
我想问这个原理是啥?为啥这样填就能实现
这个是我在default.yaml中定义了zookeeper_hosts,简而言之,就是这个变量的值是人为定义的,不是通过预设程序自己生成的。
default.yaml
zookeeper_hosts