I would like to setup a Consul Cluster with a UI on my local machine (Mac OS X) using Vagrant. So far I simply followed the Getting Started instructions of the official Consul Docs: https://www.consul.io/intro/getting-started/join.html
In order to be able to access the UI from the host, I simply added this one line to the provided Vagrantfile (https://github.com/hashicorp/consul/blob/master/demo/vagrant-cluster/Vagrantfile)
n1.vm.network "forwarded_port", guest: 8500, host: 8500
To start Consul with a UI on the guest machine I ssh into the machine and then simply added the -ui flag to the provided command:
consul agent -server -bootstrap-expect=1 \
-data-dir=/tmp/consul -node=agent-one -bind=172.20.20.10 \
-enable-script-checks=true -config-dir=/etc/consul.d -ui
Consul starts without problems and from with the guest machine I can execute:
curl -v 'http://localhost:8500/ui/'
and the expected HTML page is returned.
Trying to access http://localhost:8500/ui/ in a browser or via curl on the host does not work though. Using curl on the host results in:
* Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 8500 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8500 (#0)
> GET /ui/ HTTP/1.1
> Host: localhost:8500
> User-Agent: curl/7.54.0
> Accept: */*
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
Anything I am missing with setting up the port forwarding correctly?
The logs after running vagrant up look good to me:
n1: Forwarding ports...
n1: 8500 (guest) => 8500 (host) (adapter 1)