两个vagrantfiles - 虚拟机通信

时间:2016-11-08 17:52:55

标签: ubuntu vagrant virtualbox

我有一个很老的虚拟机通过Vagrant实例化。我有我所有的开发堆栈。配置是这样的:

  config.vm.box = "ubuntu/trusty64"
  config.vm.network :forwarded_port, guest: 3389, host: 33389, id: "rdp", auto_correct: true
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.hostname = "labs"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "4096"
    vb.name = "labs"
  end

我已经通过Vagrant生成了一个新的VM进行测试,但是使用了另一个Vagrantfile。配置是这样的:

s2.vm.box = "ubuntu/trusty64"
s2.vm.hostname = 'backend'
s2.vm.box_url = "ubuntu/precise64"

s2.vm.network :private_network, ip: "192.168.56.102"
s2.vm.network :forwarded_port, guest: 22, host: 10222, id: "ssh"

s2.vm.provider :virtualbox do |v|
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  v.customize ["modifyvm", :id, "--memory", 1024]
  v.customize ["modifyvm", :id, "--name", "backend"]
end

在这台服务器上,我有一个mongodb,我想连接到我的第一个VM。

我可以为第二个VagrantFile带来什么改变,让VM可以访问第一个?

或者,是否有另一个更明显和更简单的解决方案

1 个答案:

答案 0 :(得分:3)

您可以将第二个Vagrantfile的IP地址更改为第一个VM网络中的其他某个IP。 您可以在第二个Vagrantfile中更改以下行:

s2.vm.network :private_network, ip: "192.168.56.102"

s2.vm.network :private_network, ip: "192.168.33.11"

您可以在此网络中分配任何免费的IP,这样您就可以互相ping vm。

注意: 无需为多个vm创建多个Vagrantfile。你可以为所有人创建一个Vagrantfile。您可以参考我的另一个答案here来创建单个Vagrantfile