我试图使用以下命令在vagrant中运行consul。
consul agent -dev -advertise 172.20.20.31
但它显示以下错误信息
failed to get conn: dial tcp 127.0.0.1:0->172.20.20.31:8300: connect: invalid argument"
结果,当我从我的本地机器连接到这个ip并运行consul ui模式时,它显示了
500 (The backend responded with an error)
我的vagrant文件如下。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.define "centos-consul" do |cs|
cs.vm.hostname = "centos-consul"
cs.vm.network "private_network",ip:"172.20.20.31"
end
end
和连接文件如下
{
"ui": true,
"retry_join": ["172.20.20.31"],
"advertise_addr": "172.20.20.01",
"data_dir": "/tmp/consul/self"
}
我在mac os和Vagrant 2.2.7 centos7中使用consul 1.7.2。
我不知道自己做错了什么,所以任何建议都会很有帮助。
根据文档您得到的错误是由于您的Vagrant盒子上的IP地址172.20.20.31不可路由。
-advertise
- 广告地址是用来改变我们向集群中的其他节点宣传的地址。默认情况下,-bind地址是广告地址。然而,在某些情况下,可能有一个无法绑定的可路由地址。这个标志可以使八卦一个不同的地址来支持这一点。如果这个地址不可路由,节点将处于持续的flapping状态,因为其他节点会将不可路由视为失败。在Consul 1.0及以后的版本中,可以将其设置为go-sockaddr模板。