7

我是 Vagrant 的新手,目前正在尝试从单个 Vagrantfile 配置一个 VirtualBox 和 AWS 盒子(使用 vagrant-aws 插件)。

我的 Vagrantfile 如下图所示:

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

    config.vm.define :web do |web_config|
        web_config.vm.box = "dummy"
        web_config.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"

        web_config.vm.provider :aws do |aws|
            aws.access_key_id = "ACCESS KEY"
            aws.secret_access_key = "SECRET KEY"
        end
    end

    config.vm.define :db do |db_config|
        db_config.vm.box = "precise32"
        db_config.vm.box_url = "http://files.vagrantup.com/precise32.box"

        db_config.vm.provider :virtualbox  do |vb|

        end     
    end
end

所以基本上我试图让 AWS 用于 web 和一个网络盒用于数据库。是否可以从单个 Vagrantfile 执行此操作?下面的 vagrant up 命令会创建和配置两个虚拟机吗?

vagrant up --provider=aws
4

1 回答 1

5

Basic Provider Usage来看

限制

Vagrant 目前限制您为每台机器提供一个提供程序。例如,如果您有一个多机环境,您可以启动一台由 VirtualBox 支持的计算机和另一台由 VMware Fusion 支持的计算机,但您不能同时使用 VirtualBox 和 VMware Fusion 支持同一台计算机。

这是一个将在未来版本的 Vagrant 中删除的限制。

这确实是可能的!但是您必须记住,公共网络和专用网络之类的功能不能(通常,请参阅专用网络)跨提供商边界使用。

关于你问题的第二部分,我想你需要发出两个命令,一个用于你的多虚拟机环境中的每个提供者,但这只是一个猜测——关于提供者和多虚拟机环境的官方文档很少。

于 2013-04-02T17:15:55.413 回答