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

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

我想在家里的服务器上使用 juju 来了解 juju 并使用它。我有多台计算机,想从其中任何一台计算机访问服务器上的内容。当我按照教程操作时,它设置了 juju,但只向本地计算机公开了服务。我想将它们公开给整个网络。我该怎么做?

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

编辑:-

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

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

答案1

好的,解决了!

在 /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

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

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

编辑 /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.0/24,我可以从另一台机器通过 LAN 访问它们

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"

答案2

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

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

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

juju expose SERVICE

使用如何安装 Hadoop?作为示例,我将:

juju expose hadoop-master

巫术揭露-https://jujucharms.com/docs/stable/charms-exposing

juju status SERVICE还有助于了解服务的运行方式。

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

  • 服务器是否设置了防火墙(iptables、ufw......)
  • 网络上是否有配置路由器来执行与阻止、转发等相关的操作,从而导致尝试访问服务器时出现问题?
  • 局域网上的计算机能看到服务器吗?
  • 是否存在不常见的特殊连接(无线或有线)或安全性问题,从而可能导致客户端和服务器出现问题?
  • 设置 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 进行访问。

相关内容