Comment exécuter Juju sur un serveur local?

16

J'aimerais utiliser juju sur mon serveur à la maison pour apprendre à connaître juju et jouer avec. J'ai plusieurs ordinateurs et je souhaite accéder à ce qui se trouve sur le serveur à partir de l'un d'eux. Lorsque j'ai suivi le didacticiel, il a correctement configuré juju, mais n'a exposé les services qu'à la machine locale. Je veux les exposer à l'ensemble du réseau. Comment puis-je faire ceci?

Remarque: mon serveur existe déjà et fonctionne sous 12.04, je ne veux pas le réinstaller en utilisant maas juste pour faire fonctionner juju. Je ne veux pas non plus l'exécuter "dans le cloud" sur ec2 ou tout autre fournisseur car je veux l'essayer sur ma propre machine sous mon contrôle sur mon réseau.

Éditer:-

  • Pas de pare-feu
  • Aucun blocage, tous les ports ouverts
  • Oui. Tous les ordinateurs du LAN (192.168.1.0/24) peuvent voir le serveur (homeserver.local) sur 192.168.1.2
  • Câble et wifi assez standard avec un serveur DHCP qui diffuse les adresses IP dans la plage ci-dessus
  • Configuration correcte (juste recommencé à zéro) et suivi du tutoriel que Luis m'a dirigé vers, voici les résultats: - http://paste.ubuntu.com/5714640/
  • le statut de juju montré ci-dessus.

Donc, tout fonctionne bien, mais le principal problème est que les conteneurs ont des adresses IP attribuées localement sur le serveur, qui ne sont accessibles que sur le serveur lui-même. Bien que je puisse faire le tour de la configuration de la redirection de port ssh partout pour accéder aux adresses IP 10.x de la plage 192.168.1.0/24, cela semble trop compliqué et inutile. J'aimerais que les conteneurs soient exposés sur mon réseau local.

popey
la source
le lien pastebin pointe vers un programme C ++ ...
truqué le
1
Eh bien, c'est étrange!
popey

Réponses:

11

Ok, résolu!

Configurez le réseau ponté br0 dans / 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

Modifiez /etc/lxc/lxc.conf et définissez lxc.network.link = br0

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

Modifiez / etc / default / lxc et définissez LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX de manière appropriée pour mon LAN (paramètres de type 192.168.1.0/24). les sur le LAN à partir d'une autre machine

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
la source
Vous devrez également modifier le paramètre "pont-réseau" du fournisseur local dans votre environnements.yaml, sinon juju continuera d'essayer d'utiliser le "lxcbr0" par défaut.
Dimitern
5

Pour ce que je peux comprendre, vous avez Juju installé et fonctionne mais vous voulez exposer un service à d'autres ordinateurs de votre réseau. Je suppose que tous les ordinateurs de votre réseau peuvent se voir et que leurs adresses IP sont correctes.

Je suppose également que le tutoriel dont vous parlez est l'un de ceux-ci:

alors j'imagine que si vous voulez rendre le service disponible pour d'autres ordinateurs, vous feriez ceci:

juju expose SERVICE

L' utilisation Comment installer Hadoop? comme l'exemple je voudrais:

juju expose hadoop-master

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

juju status SERVICE aide également à comprendre le fonctionnement du service.

Bien sûr, il y a quelques choses que je devrais savoir sur le réseau et le serveur, par exemple:

  • Le serveur a-t-il une configuration de pare-feu (iptables, ufw ...)
  • Le réseau a-t-il un routeur configuré pour faire quelque chose lié au blocage, au transfert et tel que cela créerait un problème en essayant d'accéder au serveur?
  • Les ordinateurs du LAN voient-ils le serveur?
  • Y a-t-il une connexion spéciale qui n'est pas courante (sans fil ou filaire) ou une sécurité utilisée qui pourrait créer un problème avec les clients et le serveur?
  • Toutes les étapes pour configurer Juju correctement sont-elles effectuées (comme le prévoient les tutoriels mentionnés, en particulier la partie sur environments.yamllaquelle j'ai tendance à oublier ou à me tromper).
  • Cela juju statusvous donne- t- il un aperçu de ce que pourrait être le problème?
  • Avez-vous plusieurs environnements configurés dans le environments.yamlfichier?

Dans le cas où le service n'est pas montré à l'extérieur à cause de LXC, procédez comme suit (fourni par la réponse que popey a donnée et beaucoup de recherches):

  • Configurer le réseau ponté br0 dans / etc / network / interfaces
  • Modifier /etc/lxc/lxc.confet définirlxc.network.link=br0
  • Modifiez /etc/default/lxcet définissez LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX de manière appropriée sur le LAN (paramètres de type 192.168.1.0/24)

    Maintenant, juju statusdevrait afficher les adresses 192.168.1.0/24 pour mes unités et peut être accessible via le LAN à partir d'une autre machine.

Luis Alvarado
la source
1
Cependant, si je passe au serveur et lance "lynx 10.0.3.234", j'obtiens la page wordpress. Le conteneur lxc est donc opérationnel et wordpress est correctement installé et disponible sur le port 80 sur 10.0.3.234, mais cela n'est visible qu'en interne sur le serveur. Je pense que le déploiement local de juju est adapté aux développeurs qui transportent ce genre de choses sur leur ordinateur portable, pas sur une machine distincte.
popey