我有三台这样的机器:
[consul@cjportal]$ consul members
Node Address Status Type Build Protocol DC
portal1 192.168.11.155:8301 alive client 0.7.0 2 dc1
portal0 192.168.14.100:8301 alive client 0.7.0 2 dc1
portal2 192.168.11.182:8301 alive server 0.7.0 2 dc1
和所有3台机器都有相同的consul配置文件,如
{
"service":{
"name":"portal_confgen",
"tags":[
"portal"
],
"address": "127.0.0.1",
"port": 8823,
"check":{
"name":"ping",
"script":"ping -c1 192.168.11.155",
"interval":"10s"
}
}
}
和所有3台机器运行consul,只有服务器portal2运行consul-template,使用命令:
consul-template -config=/home/consul/consul-template/config/hosts.hcl -consul=localhost:8500
我的consul模板配置文件,hosts.hcl:
template {
source = "/home/consul/consul-template/hosts.ctmpl"
destination = "/home/consul/conf/conf.d/test.conf"
}
但是当我在consul存储中更改k/v时,只有localhost portal2正确写入目标文件,远程机器portal0和portal1不起作用。我错过了什么??
需要在所有服务器上运行consul-template。你还指望什么?如果您只在portal2上运行consul模板,那么只有它会被更新,如果您在portal0和portal1上运行consul模板,它们也会被更新