2017-10-06 3 views
0

Ich möchte einen Consul Cluster mit einer Benutzeroberfläche auf meinem lokalen Computer (Mac OS X) mit Vagrant einrichten. Bisher folgte ich einfach die Ersten Schritte Anweisungen der offiziellen Consul Docs: https://www.consul.io/intro/getting-started/join.htmlRunning Consul on Vagrant: Portweiterleitung von Gast zu Host funktioniert nicht unter Mac OS X

Um die UI vom Host zugreifen zu können, ich diese eine Zeile des bereitgestellten Vagrantfile einfach hinzugefügt (https://github.com/hashicorp/consul/blob/master/demo/vagrant-cluster/Vagrantfile)

n1.vm.network "forwarded_port", guest: 8500, host: 8500 

um Konsul mit einem UI auf dem Gastcomputer beginne ich in die Maschine ssh und dann hinzugefügt einfach die -ui Flagge auf den Befehl zur Verfügung gestellt:

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 ohne Probleme gestartet und von mit der Gastmaschine kann ich ausführen:

und die erwartete HTML-Seite zurückgegeben wird.

Der Zugriff auf http://localhost:8500/ui/ in einem Browser oder über Curl auf dem Host funktioniert jedoch nicht. Die Verwendung von Curl auf dem Host führt zu:

* 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 

Alles, was ich vermisse mit der Einrichtung der Portweiterleitung richtig? Die Protokolle nach vagrant up gut aussehen zu mir gelaufen:

n1: Forwarding ports... 
    n1: 8500 (guest) => 8500 (host) (adapter 1) 

Antwort

2

Sie haben 2 Möglichkeiten:

  1. eine statische IP verwenden (entweder ein public network oder private network), so dass Sie Ihren Konsul-Agenten auf dem statischen binden IP (sagen wir 172.20.20.10) und Sie werden

Hinweis durch http://172.20.20.10:8500/ui/ von Ihrem Web-Browser zugreifen können: in diesem Fall brauchen Sie nicht zu ha habe den weitergeleiteten Port in Ihrem Vagrantfile

  1. pro consul doc on bind option

Die Adresse, die gebundene Kommunikation für die internen Cluster werden soll. Dies ist eine IP-Adresse, die für alle anderen Knoten im Cluster erreichbar sein sollte. Standardmäßig ist diese "0.0.0.0", was bedeutet, Konsul an alle Adressen auf dem lokalen Rechner binden

so können Sie Konsul laufen auf Ihrer VM von Ihrem Host

NB erreichen: für Option meine Vorlieben geht # 1

+0

danke, du hast Recht. Ich habe bereits eine IP-Adresse im privaten Netzwerk angegeben, daher ist keine Portweiterleitung erforderlich. Was ich vermisste war auch die Angabe der Client-IP-Adresse zu binden. (https://www.consul.io/docs/agent/options.html#_client). Also endlich mit diesem Befehl ist die UI vom Host unter 'http: //172.20.20.10: 8500/ui /' verfügbar. Der Befehl muss daher wie folgt aussehen: 'Consul-Agent-Server-Bootstrap-Expect = 1 -data-dir =/tmp/Consul-Knoten = Agent-One-Bind = 172.20.20.10 -Client = 172.20.20.10 -enable-script-checks = true -config-dir =/etc/consul.d -ui – user2350644