2016-02-01 4 views
11

Как я могу получить доступ к пользовательскому интерфейсу консула извне?Как получить доступ к внешнему консулу UI

Я хочу получить доступ Написание консулом UI

<ANY_MASTER_OR_SLAVE_NODE_IP>:8500

Я стараюсь делать SSH туннель доступом: SSH -N -f -L 8500: LOCALHOST: 8500 [email protected]

Тогда, если я получаю доступ http://localhost:8500 Это работает, но это не то, что я хочу. Мне нужно получить доступ извне, без туннеля ssh.

Мой config.json файл является следующим:

{ 
"bind_addr":"172.16.8.216", 
"server": false, 
"datacenter": "nyc2", 
"data_dir": "/var/consul", 
"ui_dir": "/home/ikerlan/dist", 
"log_level": "INFO", 
"enable_syslog": true, 
"start_join": ["172.16.8.211","172.16.8.212","172.16.8.213"] 
} 

Любая помощь? Благодаря

ответ

22

Добавить

{ 
    "client_addr": "0.0.0.0" 
} 

в конфигурацию или добавить опцию -client 0.0.0.0 в командной строке консула сделайте свой веб-интерфейс доступным извне (see the docs for more information).

Обратите внимание, что это также приведет к тому, что ваш API-интерфейс Consul REST будет доступен извне. В зависимости от вашей среды вы можете активировать ACL Консула, чтобы ограничить доступ.

+1

Если я добавлю «client_addr»: «0.0.0.0» в свою конфигурацию, клиент выйдет из кластера, а когда я запустил на консоли клиентов консула: «Ошибка подключения к агенту Consul: наберите tcp 127.0.0.1:8400: connection отказалась". Если я запустил -client 0.0.0.0 в моей командной строке: «-client: command not found» В чем может быть проблема? @ ahus1 –

+1

@Asier Я обновил описание. Если ваш клиент выходит из кластера, просмотрите файл журнала consul. Возможно, в вашей конфигурации есть синтаксическая ошибка. параметр '-client' должен быть частью командной строки вашего исполняемого консула. Пожалуйста, просмотрите документацию консула, на которую ссылается. Я также обновил ответ, чтобы сделать его более явным. – ahus1

+0

Я беру строку «client_addr»: «0.0.0.0» в мой файл config.json, и если у меня есть эта конфигурация, узел не может подключиться к другим, у меня есть ошибка при выполнении консула. Уверен, что уникальная конфигурация, которую мне нужно сделать, это отредактировать config.json и вставить эту строку? Спасибо @ ahus1 –

0

Ни в коем случае, чтобы получить пользовательский интерфейс, если не Ther пользовательский интерфейс) Классический интерфейс некоторых его стопка Desktop Environment (х термин ....), поэтому перед получить, необходимо установить его на узле

+0

меня установить Пользователь Inteface, я могу Acces его с SSH туннелем , но я хочу получить доступ без туннеля ssh, написав http://172.16.8.194:8500 –

0

я не имею практический опыт с консулом еще, но вот несколько советов:

  • Выполнить sudo netstat -peanut | grep :8500 и проверить, если консул обязан 0.0.0.0 или явной ф. Должен проверять документы, если это настраивается.
  • На каждом узле установки Squid, Nginx или любое другое программное обеспечение, которое может выступать в качестве HTTP-прокси
+0

Если я запустил «sudo netstat -peanut | grep: 8500», я вижу: tcp 0 0 127.0.0.1:8500 0.0.0.0: * LISTEN, не обойтись без установки Nginx или других пакетов? Спасибо @NikoNyrh –

+0

ahus1, похоже, знает документы лучше, вы должны настроить его на то, что он не привязан к '127.0.0.1', потому что тогда он не будет принимать внешние соединения. – NikoNyrh

1

Наконец-то я нашел решение. Добавьте в конфигурационный файл с админом bind, который является IP-адресом машины, и client_addr, который является хостом, который он прослушивает. Поэтому я использую 0.0.0.0 для прослушивания всех IP-адресов.

"bind_addr":"172.16.8.234", 
"client_addr":"0.0.0.0", 
2

Вы можете использовать socat в этом случае.

Сокат -d -d TCP-L: 8500, привязывать = 172.16.93.128, вилка TCP: Localhost: 8500 &

где 172.16.93.12 это мой IP.

0

я запускаю его как докер образ, я дал

docker pull consul 

docker run -p 8500:8500 consul 

и я могу получить доступ к консулу пользовательского интерфейса на http://<hostname>:8500/ui

Смежные вопросы