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.