在Vagrantfile中声明的多台机器必须基于相同的基本盒吗?

时间:2014-08-06 10:01:01

标签: vagrant vagrantfile

从文档中,您可以解决运行多个环境以重现生产的需要(例如一台数据库计算机,一台网络计算机等):

Vagrant.configure("2") do |config|

  config.vm.define "web" do |web|
    web.vm.box = "apache"
  end

  config.vm.define "db" do |db|
    db.vm.box = "mysql"
  end
end

这是很好解释但我也理解它们都将基于同一个盒子:例如例如ubuntu-1404。

如果您需要将数据库框放在oracle linux上,例如ubuntu上的网络框,会发生什么? 使用两个Vagrantfile创建两个目录的公寓我没有看到任何其他选项。

有没有人这样做过以及怎么做?

2 个答案:

答案 0 :(得分:3)

不,这些盒子肯定会有所不同。你展示的例子(来自Multi-Machine doc page是一个很大的混乱,因为不清楚“apache”和“mysql”指的是什么。

您可以将*.vm.box设置为实际的箱子名称。例如,从Vagrant cloud中找到几个框可能会将您的示例Vagrantfile更改为:

Vagrant.configure("2") do |config|
  config.vm.define "web" do |web|
    web.vm.box = "hashicorp/precise64"
  end

  config.vm.define "db" do |db|
    db.vm.box = "box-cutter/oel65"
  end
end

答案 1 :(得分:0)

不,您可以自由覆盖每个设置 - 您已经完成了。你没有测试过吗?