如何在“vagrant up”命令期间指定提供程序



我有两台机器(linux,Mac(,需要使用vagrant来管理VM。VirtualBox用于Liux,而parallels用于Mac。 所以我在vagrant配置文件中配置了这两个提供程序,如下所示:

Vagrant.configure('2') do |config|
    config.ssh.forward_agent = true
    config.ssh.password = 'crunch'
    config.vm.box = 'ubuntu/xenial64'
    config.vm.provider 'virtualbox' do |vb|
        vb.gui = true
        vb.memory = '8192'
        vb.name = 'ubuntu'
    end
    config.vm.provider 'parallels' do |vb|
        vb.gui = true
        vb.memory = '8192'
        vb.name = 'ubuntu'
        config.vm.box = 'parallels/ubuntu-14.04'
    end

在我的Mac系统上,当我运行以下命令但出现错误时:

$ vagrant up --provider parallels
An active machine was found with a different provider. Vagrant
currently allows each machine to be brought up with only a single
provider at a time. A future version will remove this limitation.
Until then, please destroy the existing machine to up with a new
provider.
Machine name: default
Active provider: virtualbox
Requested provider: parallels

我已经安装了所需的提供程序:

$ vagrant plugin list
docker (0.4.0)
vagrant-parallels (1.7.8)
vagrant-share (1.1.9, system)
vagrant-vbguest (0.15.0)

那么为什么vagrant不选取--provider参数呢?

这是流浪汉的当前限制

您不能同时使用VirtualBox和VMware备份同一台计算机 融合。这是一个限制,将在将来的版本中删除 的流浪者。

我不确定它是否会被流浪者解决。 但是,您已经使用VirtualBox创建了一次计算机,因此现在应该使用此VM,而不是使用另一台计算机。

解决此问题的一种方法是使用现有 VM 的引用(如 .vagrant.vbox (备份 .vagrant 文件夹,然后重新运行 vagrant up --provider parallels 以让它创建并行 VM。

如果要切换回 virtualbox VM,可以备份新创建的 .vagrant 文件夹并将.vagrant.vbox重命名为 .vagrant

简答

删除项目中的.vagrant文件夹。

rm -r .vagrant

(我留下这个重复的答案,因为我个人懒得阅读上一个,错过了解决方案(

最新更新