У меня сервер Consul, работающий внутри виртуальной машины, а клиентские агенты работают на других виртуальных машинах, все в Vagrant.
Все клиентские агенты, работающие на других виртуальных машинах, регистрируются на сервере Consul без проблем.
Я пытаюсь запустить клиентский агент на локальном компьютере для локальной разработки.Однако я не могу заставить агента клиента подключиться к экземпляру Vagrant Consul.Я пробовал сочетания public и private переадресации сети и портов, но не могу понять это правильно.
Как настроить клиент Vagrantfile / Consul длязарегистрироваться?
Урезанный Vagrantfile :
Vagrant.configure("2") do |config|
consul_servers = ["consul1"]
consul_servers.each.with_index(1) do |consul_server, index|
config.vm.define consul_server do |server|
server.vm.box = "centos/7"
server.vm.box_version = "1809.01"
# vars['consul'][consul_server]['hostname'] is set to "consul1"
server.vm.hostname = vars['consul'][consul_server]['hostname']
# vars['consul'][consul_server]['ip_address'] is set to 192.168.23.17
server.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)", ip: vars['consul'][consul_server]['ip_address']
server.vm.network "forwarded_port", guest: 8500, host: "850#{index}"
# I've tried with these forwarded ports as well.
# Leaving them here for info
# server.vm.network "forwarded_port", guest: 8300, host: 8310
# server.vm.network "forwarded_port", guest: 8301, host: 8311, protocol: "tcp"
# server.vm.network "forwarded_port", guest: 8301, host: 8311, protocol: "udp"
# server.vm.network "forwarded_port", guest: 8302, host: 8311, protocol: "tcp"
# server.vm.network "forwarded_port", guest: 8302, host: 8311, protocol: "udp"
# server.vm.network "forwarded_port", guest: 8400, host: 8410
server.vm.provision :ansible do |ansible|
# ...
end
end
end
Консул Конфигурация сервера:
datacenter = "dc1"
data_dir = "/opt/consul"
server = true
bootstrap_expect = 1
ui = true
client_addr = "0.0.0.0"
retry_join = ["192.168.23.17"]
bind_addr = "192.168.23.17"
Консулклиентский конфиг (работает локально)
datacenter = "dc1"
data_dir = "/consul/data"
retry_join = ["192.168.23.17"] # Tried "localhost", "0.0.0.0"
node_name = "local-dev"
bind_addr = "192.168.23.1" # This is the IP for the vboxnet1 interface.
# For bind_addr I've also tried 192.168.1.12 (en0 ip address), localhost, 0.0.0.0