设置多个虚拟机,可以互相通信,也可以与其他物理主机通信

时间:2017-06-29 03:32:54

标签: vagrant virtualbox

我正在尝试按如下方式设置服务器环境:

  • 物理主机:(192.168.0.106)
  • 实体笔记本电脑:(192.168.0.130)

在主机上,我正在尝试使用vagrant来设置2个虚拟机

  • 虚拟机1(VM_IP_1)。 Vagrant设置为前锋5555:8080。这台机器将在端口8080上运行某种网络服务器
  • 虚拟机2(VM_IP_2)。

我正在努力完成以下任务:

  1. 从Physical Host Machine,我希望能够打开Web浏览器,导航到VM_IP_1:5555,并连接到Web服务器,显示一些网页
  2. 从Laptop Machine,我希望能够打开Web浏览器,导航到VM_IP_1:5555,并连接到Web服务器,显示一些网页(与1相同)
  3. 从虚拟机2,我希望能够打开Web浏览器,导航到VM_IP_1:5555,并连接到Web服务器,显示一些网页(与1相同)。
  4. 这甚至可能吗?我花了最近2天,修修补补,尝试自动化,但没有运气。

    基本上,我想模拟由网络服务器,负载平衡器,数据库等组成的非平凡的网络架构。我希望能够测试好像我的单个强大的服务器是模拟网络(即它会运行4个虚拟机)但也具有我的流浪自动化的灵活性和可用性,能够部署到生产类似(2​​个功能强大的服务器,每个运行2个VMS,总共4个)

    每个人都应该能够与所有人沟通(假设我已正确转发端口 - 路由表也是如此)

    以下是我一直在玩的VagrantFiles。尝试使用private_network,但我不认为这是正确的。有Host Only但我不认为这是正确的我想我可能需要从VM 2进行某种反向port_forwarding。但这听起来不对。

    VagrantFile VM 1
       config.vm.network 'public_network', ip: '192.168.0.140'
       config.vm.network 'forwarded_port', guest: 8080, host: 5555
    
    VagrantFile VM 2
       config.vm.network 'public_network', ip: '192.168.0.150'
    

    编辑:正如我发现的那样,forwarded_port似乎在使用'public_network'时似乎毫无用处。我不确定我100%理解为什么,但如果我从5555端口更改为8080,我可以完成上面所述的所有操作

1 个答案:

答案 0 :(得分:0)

我通常与private network合作来实现这一点,我不确定你为什么说它的权利。

This是带有负载均衡器和2个应用服务器(运行节点)的3 VM设置的快速示例,因此您可以了解这一想法。

专用网络只是virtualbox internal network,比桥接网络(即流浪公共网络)更安全

无论如何使用静态IP是你的方法,我很高兴你认为在使用静态IP时不需要前向端口(我已saying this {{3} } too many等等)