如何解决需要一种方法来获取 Consul 的 retry_join 的所有私有 IP,而无需在配置文件中对其进行硬编码
我正在尝试使用 terraform 在具有专用网络的 Hetzner Cloud 上设置领事服务器。
由于 Hetzner 尚不支持 auto-join
,是否可以使用 go-sockaddr 的 GetPrivateIPs
来获取配置文件中 retry_join
可用的所有私有 IP? go-sockaddr document 表示 GetPrivateIPs
将返回一个包含所有 IP 的以空格分隔的字符串。如何在配置中使用此功能?
据我所知,retry_join
需要一个像这样的文字数组:["10.0.0.6","10.0.0.7"]
这是 etc/consul.d/server.hcl
中的设置:
server = true
bootstrap_expect = ${consul_instances}
client_addr = "127.0.0.1"
data_dir = "/opt/consul"
bind_addr = "{{GetPrivateInterfaces | include \"network\" \"${ip_range}\" | attr \"address\"}}"
retry_join = "{{GetPrivateIPs}}" // Is there a way to turn it into ["10.0.0.6","10.0.0.7"]?
这是使用变量呈现 server.hcl 的 terraform 数据块:
data template_file "server_config" {
template = file("${path.module}/server.hcl")
vars = {
consul_instances = 3
ip_range = "10.0.0.0/8"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。