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


16

我想在家里的服务器上使用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地址,但这似乎过于复杂和不必要。我想要通过局域网暴露的容器。


pastebin链接指向C ++程序...
13年

1
好奇怪!
popey 2013年

Answers:


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

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

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

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

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"

您还需要在environment.yaml中更改本地提供程序的“网络桥”设置,否则juju将继续尝试使用默认的“ lxcbr0”。
dimitern 2014年

5

据我了解,您已经安装并正在运行Juju,但您想将服务公开给网络上的其他计算机。我假设您网络上的所有计算机都可以互相查看并且其IP地址正确。

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

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

juju expose SERVICE

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

juju expose hadoop-master

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

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/lxcLXC_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进行访问。


1
但是,如果我通过SSH进入服务器并运行“ lynx 10.0.3.234”,则会显示wordpress页面。因此,lxc容器已启动并正在运行,并且wordpress均已成功安装并在10.0.3.234的端口80上可用,但这仅在服务器内部可见。我的想法是juju本地部署是针对在笔记本电脑上携带这些东西的开发人员量身定制的,而不是针对单独的计算机。
popey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.