在我的Vagrantfile中,我配置了Virtualbox和VMware。由于Windows / Linux和Mac的VMware提供商有不同的名称(vmware_workstation,vmware_fusion),但使用相同的下载框,我发现自己两次配置相同的配置。
config.vm.provider "vmware_fusion" do |v, override|
v.vmx["memsize"] = "1024"
v.vmx["numvcpus"] = "1"
end
config.vm.provider "vmware_workstation" do |v, override|
v.vmx["memsize"] = "1024"
v.vmx["numvcpus"] = "1"
end
允许我将这两者组合成一个块的语法是什么,如:
config.vm.provider in ["vmware_fusion", "vmware_workstation"] do |v, override|
v.vmx["memsize"] = "1024"
v.vmx["numvcpus"] = "1"
end
非常感谢。
答案 0 :(得分:1)
这应该有效:
["vmware_fusion", "vmware_workstation"].each do |vmware_provider|
config.vm.provider vmware_provider do |v, override|
v.vmx["memsize"] = "1024"
v.vmx["numvcpus"] = "1"
end
end
答案 1 :(得分:0)
看起来像are restricted to one provider per machine (bottom of the page),但在多机环境中,您可以为每台计算机指定一个提供程序
所以也许你可以做类似
的事情Vagrant.configure("2") do |config|
machines = [
{ name: "machine1_fusion", provider: "vmware_fusion" },
{ name: "machine1_workstation", provider: "vmware_workstation" }
]
machines.each do |machine|
config.vm.define machine[:name] do |m|
... #box config etc
m.vm.provider machine[:provider] do |p|
p.vmx["memsize"] = "1024"
p.vmx["numvcpus"] = "1"
end
end
end
end