Como executo o Juju em um servidor local?

16

Eu gostaria de usar o juju no meu servidor em casa para conhecer o juju e brincar com ele. Eu tenho vários computadores e gostaria de acessar o que está no servidor a partir de qualquer um deles. Quando eu passei pelo tutorial, ele configurou o juju ok, mas apenas expôs os serviços à máquina local. Eu quero expô-los a toda a rede. Como posso fazer isso?

Nota: meu servidor já existe e está executando o 12.04, não quero reinstalá-lo usando o maas apenas para que o juju funcione. Também não quero executar isso "na nuvem" no ec2 ou em qualquer outro provedor, porque quero fazer isso na minha própria máquina, sob meu controle na minha rede.

Editar:-

  • Sem firewall
  • Sem bloqueio, todas as portas abertas
  • Sim. Todos os computadores na LAN (192.168.1.0/24) podem ver o servidor (homeserver.local) em 192.168.1.2
  • Bastante padrão com fio e wifi com um servidor DHCP distribuindo endereços IP na faixa acima
  • Configure corretamente (inicie novamente do zero) e siga o tutorial que Luis me indicou, eis os resultados: - http://paste.ubuntu.com/5714640/
  • O status juju foi mostrado acima.

Portanto, tudo está funcionando bem, mas o principal problema é que os contêineres têm endereços IP atribuídos localmente no servidor, que são acessíveis apenas no próprio servidor. Embora eu possa configurar o encaminhamento de porta ssh em todo o lugar para acessar os endereços IP 10.x do intervalo 192.168.1.0/24, isso parece complicado demais e desnecessário. Eu gostaria dos contêineres expostos na minha LAN.

popey
fonte
o link pastebin aponta para um programa C ++ ...
rigved
11
Bem, isso é estranho!
popey

Respostas:

11

Ok, resolvido!

Configure a rede em ponte br0 em / 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 e defina lxc.network.link = br0

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

Edite / etc / default / lxc e defina LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE e LXC_DHCP_MAX apropriadamente para minha LAN (configurações do tipo 192.168.1.0/24) agora o status juju mostra 192.168.1.0/24 endereços de acesso para unidades 192.168.1.0/24 através da LAN de outra 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"
popey
fonte
Você também precisará alterar a configuração "bridge de rede" do provedor local em seus ambientes.yaml, caso contrário, o juju continuará tentando usar o "lxcbr0" padrão.
dimitern
5

Pelo que sou capaz de entender, você tem o Juju instalado e funcionando, mas deseja expor um serviço a outros computadores da sua rede. Assumirei que todos os computadores da sua rede podem se ver e ter seus endereços IP corretos.

Também estou supondo que o tutorial que você está falando seja um destes:

então eu imagino que, se você quiser disponibilizar o serviço para outros computadores, faça o seguinte:

juju expose SERVICE

Usando Como instalar o Hadoop? como o exemplo eu faria:

juju expose hadoop-master

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

juju status SERVICE também ajuda a descobrir como o serviço está funcionando.

É claro que há algumas coisas que eu precisaria saber sobre a rede e o servidor, por exemplo:

  • O servidor possui uma configuração de firewall (iptables, ufw ...)
  • A rede possui um roteador configurado para fazer algo relacionado ao bloqueio, encaminhamento e outros fatores que criariam um problema ao tentar acessar o servidor?
  • Os computadores na LAN veem o servidor?
  • Existe alguma conexão especial que não seja comum (sem fio ou com fio) ou seja usada segurança que possa criar um problema com os clientes e o servidor?
  • Todas as etapas para configurar o Juju foram feitas corretamente (conforme fornecido pelos tutoriais mencionados, especialmente a parte sobre a environments.yamlqual eu costumo esquecer ou me enganar).
  • Dá a juju statusvocê uma ideia do que poderia ser o problema?
  • Você tem vários ambientes configurados no environments.yamlarquivo?

Caso o serviço não seja mostrado para o exterior por causa do LXC, faça o seguinte (Fornecido pela resposta que popey deu e muita pesquisa):

  • Configurar a rede em ponte br0 em / etc / network / interfaces
  • Editar /etc/lxc/lxc.confe definirlxc.network.link=br0
  • Edite /etc/default/lxce defina LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE e LXC_DHCP_MAX adequadamente na LAN (configurações do tipo 192.168.1.0/24)

    Agora juju statusdeve mostrar os endereços 192.168.1.0/24 para minhas unidades e pode ser acessado pela LAN a partir de outra máquina.

Luis Alvarado
fonte
11
No entanto, se eu ssh no servidor e executar o "lynx 10.0.3.234", recebo a página do wordpress. Portanto, o contêiner lxc está em funcionamento e o wordpress está instalado e disponível com sucesso na porta 80 em 10.0.3.234, mas isso só é visível internamente no servidor. Meu pensamento é que a implantação local do juju é adaptada aos desenvolvedores que transportam esse material em seu laptop, não em uma máquina separada.
popey