Come posso eseguire Juju su un server locale?


16

Mi piacerebbe usare juju sul mio server a casa per conoscere juju e giocarci. Ho più computer e vorrei accedere a ciò che è sul server da uno di essi. Quando ho seguito il tutorial, ha funzionato bene, ma ha esposto i servizi solo alla macchina locale. Voglio esporli a tutta la rete. Come posso fare questo?

Nota: il mio server esiste già ed è in esecuzione 12.04, non voglio reinstallarlo usando Maas solo per far funzionare juju. Inoltre non voglio eseguire questo "nel cloud" su ec2 o qualsiasi altro provider perché voglio provarlo sul mio computer sotto il mio controllo sulla mia rete.

Modificare:-

  • Nessun firewall
  • Nessun blocco, tutte le porte aperte
  • Sì. Tutti i computer sulla LAN (192.168.1.0/24) possono vedere il server (homeserver.local) su 192.168.1.2
  • Cablaggio e wifi piuttosto standard con un server DHCP che fornisce indirizzi IP nell'intervallo sopra indicato
  • Installazione corretta (appena riavviata da zero) e seguito il tutorial a cui Luis mi ha indirizzato, ecco i risultati: - http://paste.ubuntu.com/5714640/
  • lo stato di juju mostrato sopra.

Quindi, tutto funziona bene, ma il problema principale è che i contenitori hanno indirizzi IP assegnati localmente sul server, che sono accessibili solo sul server stesso. Mentre potrei andare in giro a configurare il port forwarding ssh dappertutto per accedere agli indirizzi IP 10.x dalla gamma 192.168.1.0/24, questo sembra eccessivamente complicato e non necessario. Vorrei che i container fossero esposti sulla mia LAN.


il link pastebin punta a un programma C ++ ...
risolto il

1
Beh, è ​​strano!
popey,

Risposte:


11

Ok, risolto!

Imposta bridged network br0 in / 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

Modifica /etc/lxc/lxc.conf e imposta lxc.network.link = br0

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

Modifica / etc / default / lxc e imposta LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE e LXC_DHCP_MAX in modo appropriato per la mia LAN (192.168.1.0/24 tipo impostazioni) ora lo stato juju mostra gli indirizzi 192.168.1.0/24 e posso accedere alle mie unità per i miei indirizzi 192.168.1.0/24 tramite la LAN da un'altra macchina

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"

Dovrai anche modificare l'impostazione "bridge di rete" del provider locale nei tuoi ambienti.yaml, altrimenti juju continuerà a provare a usare "lxcbr0" predefinito.
dimitern

5

Per quello che sono in grado di capire, hai Juju installato e funzionante ma vuoi esporre un servizio ad altri computer della tua rete. Presumo che tutti i computer della tua rete possano vedersi e avere i loro indirizzi IP corretti.

Immagino anche che il tutorial di cui stai parlando sia uno di questi:

quindi immagino che se si desidera rendere disponibile il servizio per altri computer, si dovrebbe fare questo:

juju expose SERVICE

Utilizzando Come installare Hadoop? come esempio vorrei:

juju expose hadoop-master

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

juju status SERVICE aiuta anche a capire come funziona il servizio.

Naturalmente ci sono un paio di cose che dovrei sapere sulla rete e sul server, ad esempio:

  • Il server ha una configurazione del firewall (iptables, ufw ...)
  • La rete ha un router configurato per eseguire operazioni relative a blocco, inoltro e tali da creare un problema nel tentativo di accedere al server?
  • I computer sulla LAN vedono il server?
  • Esiste una connessione speciale non comune (wireless o cablata) o di sicurezza utilizzata che potrebbe creare un problema con client e server?
  • Tutti i passaggi per configurare Juju sono stati eseguiti correttamente (come indicato dai tutorial menzionati, in particolare la parte su environments.yamlcui tendo a dimenticare o a sbagliarmi).
  • Ti juju statusdà un'idea di quale potrebbe essere il problema?
  • Hai più ambienti impostati nel environments.yamlfile?

Nel caso in cui il servizio non venga mostrato all'esterno a causa di LXC, procedi come segue (Fornito dalla risposta di Popey e da molte ricerche):

  • Imposta bridged network br0 in / etc / network / interfaces
  • Modifica /etc/lxc/lxc.confe impostalxc.network.link=br0
  • Modifica /etc/default/lxce imposta LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE e LXC_DHCP_MAX in modo appropriato sulla LAN (impostazioni del tipo 192.168.1.0/24)

    Ora juju statusdovrebbe mostrare gli indirizzi 192.168.1.0/24 per le mie unità e può accedere alla LAN da un'altra macchina.


1
Tuttavia, se ssh al server ed eseguo "lynx 10.0.3.234" ottengo la pagina di wordpress. Quindi il contenitore lxc è attivo e funzionante, e wordpress è tutto installato con successo e disponibile sulla porta 80 su 10.0.3.234, ma è visibile solo internamente sul server. Il mio pensiero è che l'implementazione locale juju sia su misura per gli sviluppatori che trasportano queste cose sul proprio laptop, non su una macchina separata.
popey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.