我是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命令是否会创建和配置两个VM?
vagrant up --provider=aws
答案 0 :(得分:5)
这确实是可能的!但您必须记住,公共和私人网络等功能不能(通常,请参阅Private Networks)在提供商边界使用。限制
Vagrant目前限制您为每台计算机提供一个提供商。如果您拥有多机环境,则可以启动一台由VirtualBox支持的计算机和另一台由VMware Fusion支持的计算机,但您无法使用VirtualBox和VMware Fusion支持同一台计算机。
这是一个限制,将在Vagrant的未来版本中删除。
关于问题的第二部分,我想你需要发出两个命令,一个用于多vm环境中的每个提供者,但这只是一个猜测 - 关于提供者和多虚拟机环境的官方文档很少。 / p>