Как мне запустить Juju на локальном сервере?

16

Я хотел бы использовать juju на моем сервере дома, чтобы узнать juju и поиграть с ним. У меня есть несколько компьютеров, и я хотел бы получить доступ к тому, что находится на сервере, с любого из них. Когда я прошел через учебник, он хорошо настроен, но только предоставил сервисы локальной машине. Я хочу показать их всей сети. Как я могу это сделать?

Примечание: мой сервер уже существует и работает 12.04, я не хочу переустанавливать его, используя maas только для того, чтобы заставить juju работать. Я также не хочу запускать это «в облаке» на ec2 или любом другом провайдере, потому что я хочу попробовать это на моей собственной машине под моим контролем в моей сети.

Редактировать:-

  • Нет брандмауэра
  • Нет блокировки, все порты открыты
  • Да. Все компьютеры в локальной сети (192.168.1.0/24) могут видеть сервер (homeserver.local) на 192.168.1.2
  • Довольно стандартный проводной и Wi-Fi с одним DHCP-сервером, выдающим IP-адреса в вышеуказанном диапазоне
  • Настройте правильно (только что начал заново) и следуйте инструкциям, на которые меня направил Луис, вот результаты: - http://paste.ubuntu.com/5714640/
  • статус juju показанный выше.

Итак, все работает нормально, но основная проблема заключается в том, что контейнеры имеют локально назначенные IP-адреса на сервере, которые доступны только на самом сервере. Хотя я мог бы настроить переадресацию порта ssh повсюду, чтобы получить доступ к IP-адресам 10.x из диапазона 192.168.1.0/24, это кажется слишком сложным и ненужным. Я бы хотел, чтобы контейнеры были открыты по моей локальной сети.

попей
источник
ссылка pastebin указывает на программу на C ++ ...
rigved
1
Ну, это странно!
Попей

Ответы:

11

Хорошо, решено!

Настройте мостовую сеть br0 в / etc / network / interfaces.

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
bridge_ports eth1
address 192.168.1.2
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
bridge_stp off
bridge_fd 0
bridge_maxwait 0

Отредактируйте /etc/lxc/lxc.conf и установите lxc.network.link = br0

lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up

Отредактируйте / etc / default / lxc и установите LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX соответственно для моей ЛВС (настройки типа 192.168.1.0/24), теперь статус juju показывает 192.168.1 / 0, я могу получить доступ к состоянию на 192.168.1/ их по локальной сети с другой машины

LXC_BRIDGE="br0"
LXC_ADDR="192.168.1.2"
LXC_NETMASK="255.255.255.0"
LXC_NETWORK="192.168.1.0/24"
LXC_DHCP_RANGE="192.168.1.50,192.168.1.99"
LXC_DHCP_MAX="49"
попей
источник
Вам также нужно будет изменить настройку «сетевой мост» локального провайдера в вашем environment.yaml, иначе juju будет пытаться использовать значение по умолчанию «lxcbr0».
Димитерн
5

Насколько я понимаю, у вас установлена ​​и работает Juju, но вы хотите предоставить сервис другим компьютерам в вашей сети. Я предполагаю, что все компьютеры в вашей сети могут видеть друг друга и имеют правильные IP-адреса.

Я также предполагаю, что учебник, о котором вы говорите, является одним из следующих:

тогда я думаю, что если вы хотите сделать сервис доступным для других компьютеров, вы сделаете это:

juju expose SERVICE

Использование Как установить Hadoop? В качестве примера я бы:

juju expose hadoop-master

Juju Expose - https://jujucharms.com/docs/stable/charms-exposing

juju status SERVICE также помогает выяснить, как работает сервис.

Конечно, есть пара вещей, которые мне нужно знать о сети и сервере, например:

  • Есть ли на сервере настройка брандмауэра (iptables, ufw ...)
  • Есть ли в сети маршрутизатор, настроенный на что-то, связанное с блокировкой, пересылкой и тому подобным, что может создать проблему при попытке доступа к серверу?
  • Компьютеры в локальной сети видят сервер?
  • Существует ли какое-либо специальное соединение, которое не является распространенным (беспроводным или проводным) или используется в безопасности, что может создать проблему с клиентами и сервером?
  • Все ли шаги по настройке Juju выполнены правильно (как указано в упомянутых руководствах, особенно в части, о environments.yamlкоторой я склонен забывать или ошибаться).
  • Дает ли juju statusвам некоторое представление о том, в чем может быть проблема?
  • У вас есть несколько сред, настроенных в environments.yamlфайле?

В случае, если сервис не показан снаружи из-за LXC, сделайте следующее (При условии, что папа дал ответ и много исследований):

  • Настройте мостовую сеть br0 в / etc / network / interfaces
  • Редактировать /etc/lxc/lxc.confи установитьlxc.network.link=br0
  • Отредактируйте /etc/default/lxcи установите LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX соответствующим образом для локальной сети (настройки типа 192.168.1.0/24)

    Теперь juju statusдолжны отображаться адреса 192.168.1.0/24 для моих устройств и доступ к локальной сети с другого компьютера.

Луис Альварадо
источник
1
Однако, если я ssh к серверу и запускаю «lynx 10.0.3.234», я получаю страницу WordPress. Итак, контейнер lxc запущен и работает, и WordPress все успешно установлен и доступен на порту 80 10.0.3.234, но это видно только внутри сервера. Я думаю, что локальное развертывание Juju предназначено для разработчиков, которые переносят все это на свой ноутбук, а не на отдельную машину.
Попей