根据文档,您可以解决运行多个环境以重现您的产品的需求(例如一台数据库机器、一台网络机器等):
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。
如果您需要 db box 在 oracle linux 上,例如 ubuntu 上的 web box,会发生什么? 除了用两个 Vagrantfile 创建两个目录之外,我看不到任何其他选项。
有人做过吗?怎么做的?
最佳答案
不,盒子绝对可以不同。您展示的示例(来自 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
关于vagrant - 在 Vagrantfile 中声明的多台机器是否必须基于相同的基盒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157441/