为什么我的 Vagrant 文件中有三个提供程序?

为什么我的 Vagrant 文件中有三个提供程序?

我正在学习 Vagrant

 config.vm.synced_folder ".", "/vagrant", type: "sshfs"
  config.vm.box_version = '1611.01'
  config.vm.box = "centos/7"

  config.vm.provider "virtualbox" do |v|
    v.memory = 1024
  end

  config.vm.provider "vmware_fusion" do |v|
    v.vmx["memsize"] = "1024"
  end

  config.vm.provider "libvirt" do |libvirt|
    libvirt.memory = 1024
  end

  config.vm.define "vm1", primary: true do |pupdev|
    pupdev.vm.hostname = 'puppet-vm1'

为什么我要拥有这三个?为什么 Vitual Box 还不够用?

答案1

这些提供程序允许您和其他人引导 vagrant 在不同的虚拟化环境中进行相同的行为。如果 Vagrantfile 仅支持 Virtual Box,那么您只需要需要唯一的那个。

另外,你可以在顶部将内存大小定义为变量。在此示例中,你可以在一个地方更改该值:

memToAllocate = 2048

config.vm.synced_folder ".", "/vagrant", type: "sshfs"
config.vm.box_version = '1611.01'
config.vm.box = "centos/7"

config.vm.provider "virtualbox" do |v|
  v.memory = memToAllocate
end

config.vm.provider "vmware_fusion" do |v|
  v.vmx["memsize"] = memToAllocate.to_s
end

config.vm.provider "libvirt" do |libvirt|
  libvirt.memory = memToAllocate
end
...

相关内容