Vagrant - 在低于 5.0 的 VirtualBox 版本上实现半虚拟化 "kvm"
Vagrant - paravirtualization "kvm" on VirtualBox version below 5.0
我在下面有这个 vagrant 设置:
12 config.vm.provider "virtualbox" do |v|
13 v.customize ["modifyvm", :id, "--memory", "256"]
14 v.customize ["modifyvm", :id, "--cpus", "1"]
15 v.customize ["modifyvm", :id, "--paravirtprovider", "kvm"] #this should only be applied to LINUX guests
16 end
在这个 上找到这个。
情况是,如果 VirtualBox 版本 >= 5.0,这肯定会起作用。
但是5.0以下的版本应该会报错
问题:如何检查 VirtualBox 版本是否启用了 --paravirtprovider
。如果可能的话,我希望这在 Vagrantfile 本身中完成。谢谢!
可能有更好的方法来做到这一点,但一种方法是:
# -*- mode: ruby -*-
# vi: set ft=ruby :
vbox_version = `VBoxManage --version`
Vagrant.configure(2) do |config|
config.vm.box = 'ubuntu/trusty64'
config.vm.provider 'virtualbox' do |v|
v.customize ['modifyvm', :id, '--memory', '256']
v.customize ['modifyvm', :id, '--cpus', '1']
if vbox_version.to_f >= 5.0
v.customize ['modifyvm', :id, '--paravirtprovider', 'kvm']
end
end
end
vbox_version =
`VBoxManage --version`
必须在配置块之外发生,因为它需要在主机系统上执行 运行 vagrant 和 VirtualBox。
我在下面有这个 vagrant 设置:
12 config.vm.provider "virtualbox" do |v|
13 v.customize ["modifyvm", :id, "--memory", "256"]
14 v.customize ["modifyvm", :id, "--cpus", "1"]
15 v.customize ["modifyvm", :id, "--paravirtprovider", "kvm"] #this should only be applied to LINUX guests
16 end
在这个
情况是,如果 VirtualBox 版本 >= 5.0,这肯定会起作用。 但是5.0以下的版本应该会报错
问题:如何检查 VirtualBox 版本是否启用了 --paravirtprovider
。如果可能的话,我希望这在 Vagrantfile 本身中完成。谢谢!
可能有更好的方法来做到这一点,但一种方法是:
# -*- mode: ruby -*-
# vi: set ft=ruby :
vbox_version = `VBoxManage --version`
Vagrant.configure(2) do |config|
config.vm.box = 'ubuntu/trusty64'
config.vm.provider 'virtualbox' do |v|
v.customize ['modifyvm', :id, '--memory', '256']
v.customize ['modifyvm', :id, '--cpus', '1']
if vbox_version.to_f >= 5.0
v.customize ['modifyvm', :id, '--paravirtprovider', 'kvm']
end
end
end
vbox_version =
`VBoxManage --version`
必须在配置块之外发生,因为它需要在主机系统上执行 运行 vagrant 和 VirtualBox。