¿Cómo ejecuto Juju en un servidor local?

16

Me gustaría usar juju en mi servidor en casa para conocer juju y jugar con él. Tengo varias computadoras y me gustaría acceder a lo que hay en el servidor desde cualquiera de ellas. Cuando revisé el tutorial, configuró juju bien, pero solo expuso los servicios a la máquina local. Quiero exponerlos a toda la red. ¿Cómo puedo hacer esto?

Nota: mi servidor ya existe y está ejecutando 12.04, no quiero reinstalarlo usando maas solo para que juju funcione. Tampoco quiero ejecutar esto "en la nube" en ec2 o cualquier otro proveedor porque quiero probar esto en mi propia máquina bajo mi control en mi red.

Editar:-

  • Sin firewall
  • Sin bloqueo, todos los puertos abiertos
  • Si. Todas las computadoras en la LAN (192.168.1.0/24) pueden ver el servidor (homeserver.local) en 192.168.1.2
  • Bastante estándar con cable y wifi con un servidor DHCP que distribuye direcciones IP en el rango anterior
  • Configuré correctamente (recién comencé desde cero) y seguí el tutorial que me dirigió Luis, aquí están los resultados: - http://paste.ubuntu.com/5714640/
  • El estado de juju se mostró arriba.

Entonces, todo funciona bien, pero el problema principal es que los contenedores tienen direcciones IP asignadas localmente en el servidor, a las que solo se puede acceder en el servidor. Si bien podría configurar el reenvío de puertos ssh por todas partes para acceder a las direcciones IP 10.x desde el rango 192.168.1.0/24, esto parece demasiado complicado e innecesario. Quisiera los contenedores expuestos sobre mi LAN.

papa
fuente
los puntos de enlace de Pastebin a un programa en C ++ ...
Rigved
1
Bueno, eso es extraño!
papa

Respuestas:

11

Ok, resuelto!

Configure la red puenteada br0 en / 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

Edite /etc/lxc/lxc.conf y establezca lxc.network.link = br0

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

Edite / etc / default / lxc y configure LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX de manera adecuada para mi LAN (configuración de tipo 192.168.1.0/24) ahora el estado de juju muestra 192.168.1.0/24 direcciones para mis unidades y las direcciones pueden acceder a mis unidades. ellos a través de la LAN desde otra máquina

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"
papa
fuente
También deberá cambiar la configuración de "puente de red" del proveedor local en sus entornos. Yaml, de lo contrario, juju seguirá intentando utilizar el "lxcbr0" predeterminado.
dimitern
5

Por lo que puedo entender, tiene Juju instalado y funcionando, pero desea exponer un servicio a otras computadoras en su red. Asumiré que todas las computadoras en su red pueden verse y tener sus direcciones IP correctas.

También supongo que el tutorial del que estás hablando es uno de estos:

entonces me imagino que si desea que el servicio esté disponible para otras computadoras, haría esto:

juju expose SERVICE

Usando ¿Cómo instalar Hadoop? como el ejemplo que haría:

juju expose hadoop-master

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

juju status SERVICE También ayuda a descubrir cómo funciona el servicio.

Por supuesto, hay un par de cosas que necesitaría saber sobre la red y el servidor, por ejemplo:

  • ¿El servidor tiene una configuración de firewall (iptables, ufw ...)
  • ¿La red tiene un enrutador configurado para hacer algo relacionado con el bloqueo, el reenvío y tal que cree un problema al intentar acceder al servidor?
  • ¿Las computadoras en la LAN ven el servidor?
  • ¿Existe alguna conexión especial que no sea común (inalámbrica o por cable) o seguridad en uso que pueda crear un problema con los clientes y el servidor?
  • ¿Están todos los pasos para configurar Juju correctamente environments.yaml?
  • ¿ juju statusLe da una idea de cuál podría ser el problema?
  • ¿Tiene múltiples entornos configurados en el environments.yamlarchivo?

En caso de que el servicio no se muestre al exterior debido a LXC, haga lo siguiente (Proporcionado por la respuesta que dio papa y mucha investigación):

  • Configurar la red puenteada br0 en / etc / network / interfaces
  • Editar /etc/lxc/lxc.confy configurarlxc.network.link=br0
  • Edite /etc/default/lxcy establezca LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX adecuadamente en la LAN (configuración de tipo 192.168.1.0/24)

    Ahora juju statusdebería mostrar 192.168.1.0/24 direcciones para mis unidades y se puede acceder a través de la LAN desde otra máquina.

Luis Alvarado
fuente
1
Sin embargo, si ssh al servidor y ejecuto "lynx 10.0.3.234" me sale la página de WordPress. Por lo tanto, el contenedor lxc está en funcionamiento y Wordpress se instaló correctamente y está disponible en el puerto 80 en 10.0.3.234, pero eso solo es visible internamente en el servidor. Mi opinión es que la implementación local de juju se adapta a los desarrolladores que llevan todo esto en su computadora portátil, no a una máquina separada.
papa