vagrant - 在 Vagrantfile 中声明的多台机器是否必须基于相同的基盒?

标签 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。

如果您需要 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/

相关文章:

nginx - 在 Nginx 代理后面的 Vagrant 上设置 Spring boot 应用程序

vagrant - 适用于 OS X 和 Windows 的单个 Vagrantfile

Vagrant 重新加载synced_folder

vagrant - 如何强制在 Vagrant 机器上运行 playbook?

linux - scp 无法从 vagrant box 中的 bash 脚本运行

vagrant - 如何删除 vagrant 快照

vagrant - 由于 sudo 需要 tty,Packer 构建失败

macos - Vagrant 在 Vagrantfile 中找不到主机操作系统上的文件

synchronization - Vagrant 中的符号链接(symbolic link)和同步文件夹

linux - 使 : g: No such file or directory make: *** No rule to make target `g' . 停止