如何在本地服务器上运行 Juju?

pop*_*pey 16 networking juju

我想在家里的服务器上使用 juju 来了解 juju 并使用它。我有多台计算机,想从其中任何一台访问服务器上的内容。当我完成教程时,它设置 juju 没问题,但只将服务暴露给本地机器。我想将它们暴露给整个网络。我怎样才能做到这一点?

注意:我的服务器已经存在并且正在运行 12.04,我不想使用 maas 重新安装它只是为了让 juju 工作。我也不想在 ec2 或任何其他提供商的“云中”运行这个,因为我想在我自己的机器上在我的网络控制下尝试这个。

编辑:-

  • 没有防火墙
  • 无阻塞,所有端口开放
  • 是的。局域网(192.168.1.0/24)上的所有电脑都可以看到192.168.1.2上的服务器(homeserver.local)
  • 非常标准的有线和 wifi,其中一台 DHCP 服务器提供上述范围内的 IP 地址
  • 正确设置(刚刚从头开始)并按照 Luis 指导我的教程进行操作,结果如下:- http://paste.ubuntu.com/5714640/
  • juju状态如上所示。

所以,一切运行正常,但主要问题是容器在服务器上本地分配了 IP 地址,这些 IP 地址只能在服务器本身上访问。虽然我可以到处设置 ssh 端口转发以访问 192.168.1.0/24 范围内的 10.x IP 地址,但这似乎过于复杂且不必要。我想要通过我的 LAN 公开的容器。

pop*_*pey 11

好的,解决了!

在 /etc/network/interfaces 中设置桥接网络 br0。

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
Run Code Online (Sandbox Code Playgroud)

编辑 /etc/lxc/lxc.conf 并设置 lxc.network.link=br0

lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
Run Code Online (Sandbox Code Playgroud)

编辑 /etc/default/lxc 并为我的 LAN(192.168.1.0/24 类型设置)适当地设置 LXC_BRIDGE、LXC_ADDR、LXC_NETMASK、LXC_NETWORK、LXC_DHCP_RANGE 和 LXC_DHCP_MAX,现在 juju 状态显示 192.168.1 的 192.168.1 地址和可以访问的地址。他们通过局域网从另一台机器

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"
Run Code Online (Sandbox Code Playgroud)


Lui*_*ado 5

据我所知,您已经安装并运行了 Juju,但您想向网络上的其他计算机公开一项服务。我将假设您网络上的所有计算机都可以看到彼此并且它们的 IP 地址是正确的。

我也猜测您正在谈论的教程是其中之一:

那么我想如果您想让该服务可用于其他计算机,您可以这样做:

juju expose SERVICE
Run Code Online (Sandbox Code Playgroud)

使用如何安装 Hadoop?作为例子,我会:

juju expose hadoop-master
Run Code Online (Sandbox Code Playgroud)

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

juju status SERVICE 还有助于弄清楚服务是如何工作的。

当然,我需要了解一些有关网络和服务器的信息,例如:

  • 服务器是否有防火墙设置(iptables、ufw...)
  • 网络是否配置了路由器以执行与阻塞、转发等相关的操作,从而在尝试访问服务器时出现问题?
  • LAN 上的计算机是否看到服务器?
  • 是否有任何不常见的特殊连接(无线或有线)或使用的安全性可能会导致客户端和服务器出现问题?
  • 是否正确完成了设置 Juju 的所有步骤(如所提到的教程所提供的,特别是environments.yaml我容易忘记或出错的部分)。
  • 是否juju status让您对可能出现的问题有所了解?
  • 您是否在environments.yaml文件中设置了多个环境?

如果服务因为 LXC 而没有显示在外面,请执行以下操作(由 popey 给出的答案和大量研究提供):

  • 在 /etc/network/interfaces 中设置桥接网络 br0

  • 编辑/etc/lxc/lxc.conf和设置lxc.network.link=br0

  • 编辑/etc/default/lxc并适当地将 LXC_BRIDGE、LXC_ADDR、LXC_NETMASK、LXC_NETWORK、LXC_DHCP_RANGE 和 LXC_DHCP_MAX 设置为 LAN(192.168.1.0/24 类型设置)

    现在juju status应该为我的设备显示 192.168.1.0/24 地址,并且可以从另一台机器通过 LAN 访问。