web-dev-qa-db-fra.com

Comment exécuter Juju sur un serveur local?

J'aimerais utiliser juju sur mon serveur à la maison pour apprendre à connaître juju et jouer avec. J'ai plusieurs ordinateurs et j'aimerais accéder à tout ce qui se trouve sur le serveur. Lorsque j'ai suivi le didacticiel, il a été correctement configuré, mais il n'a exposé que les services à 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 souhaite pas le réinstaller à l'aide de maas uniquement pour que juju fonctionne. Je ne veux pas non plus exécuter ce "dans le nuage" sur ec2 ou tout autre fournisseur, car je veux essayer ceci sur ma propre machine sous mon contrôle sur mon réseau.

Modifier:-

  • Pas de pare-feu
  • Aucun blocage, tous les ports ouverts
  • Oui. Tous les ordinateurs du réseau local (192.168.1.0/24) peuvent voir le serveur (homeserver.local) sur 192.168.1.2.
  • Assez standard câblé et wifi avec un serveur DHCP répartissant les adresses IP dans la plage ci-dessus
  • Le programme d’installation correctement (je viens de repartir de zéro) et le tutoriel que Luis m’a dirigé vers, voici les résultats: - http://paste.ubuntu.com/5714640/
  • statut de juju montré ci-dessus.

Donc, tout fonctionne bien, mais le problème principal 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 m'occuper de configurer le transfert 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.

16
popey

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

Éditez /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 réseau local (paramètres de type 192.168.1.0/24). les sur le LAN depuis 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"
11
popey

Si je comprends bien, Juju est installé et fonctionne, mais vous souhaitez 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 fait partie de celui-ci:

alors j'imagine que si vous souhaitez rendre le service disponible pour d'autres ordinateurs, procédez comme suit:

juju expose SERVICE

En utilisant Comment installer Hadoop? comme 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 plusieurs 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 créerait un problème pour accéder au serveur?
  • Les ordinateurs du réseau local voient-ils le serveur?
  • Existe-t-il une connexion spéciale qui n’est pas courante (sans fil ou câblée) 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 sont-elles correctement effectuées (comme le prévoient les tutoriels mentionnés, en particulier la partie concernant environments.yaml que j'ai tendance à oublier ou à me tromper).
  • Est-ce que juju status vous donne un aperçu de ce que le problème pourrait être?
  • Avez-vous plusieurs environnements configurés dans le fichier environments.yaml?

Si le service n'est pas affiché à l'extérieur à cause de LXC, procédez comme suit (fourni par la réponse fournie par popey et par de nombreuses recherches):

  • Configuration du réseau ponté br0 dans/etc/network/interfaces
  • Éditez /etc/lxc/lxc.conf et réglez lxc.network.link=br0
  • Éditez /etc/default/lxc et réglez LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX de manière appropriée sur le réseau local (paramètres de type 192.168.1.0/24).

    Maintenant, juju status devrait afficher les adresses 192.168.1.0/24 de mes unités et peut être accessible via le réseau local à partir d’une autre machine.

5
Luis Alvarado