Vagrant VMware实用程序驱动程序

7

首先,如果有人已经问过这个问题,我很抱歉,请在此处粘贴链接,因为我没有找到任何内容。 我正在学习vagrant,在使用虚拟机软件virtualbox时,我没有运行VM的问题,但是如果我想使用VMware作为提供者,我会遇到这个消息,而且我找不到解决方法。 我认为一切都配置得很好,但显然出了些问题。

当我执行vagrant up --provider=vmware_desktop时,我会看到这个错误消息:

Vagrant encountered an unexpected communications error with the
Vagrant VMware Utility driver. Please try to run the command
again. If this error persists, please contact support@hashicorp.com

我目前正在使用 Fedora 35 操作系统。

Operating System: Fedora Linux 35 (Workstation Edition)
          Kernel: Linux 5.17.5-200.fc35.x86_64
    Architecture: x86-64

你下载了VMWare实用程序驱动程序吗?https://www.vagrantup.com/docs/providers/vmware/vagrant-vmware-utility - Frederic Henri
所有事情都完成了,即使现在我再做一遍以确保一切都没有问题,在这个阶段我也不会遇到任何问题。 - Francesco
我确认我也正确地应用了证书和许可。 - Francesco
1
你能否在问题中添加Vagrantfile,检查service.log(在Mac上为/Library/Application Support/vagrant-vmware-utility/service.log)以确保服务正在运行? - Frederic Henri
我在 Mac M1 上遇到了相同的问题。 - Amirsalar
2个回答

3

我已经关注了这个讨论串:

https://github.com/hashicorp/vagrant-vmware-desktop/issues/22

有人准备了一个很好的gist--如果gist链接不再可用,我复制到下面。

我的问题主要是Vagrant 2.2.19与VMWare不兼容。2.2.18可以正常使用。只需确保您按照上述gist逐步操作即可。

https://gist.github.com/sbailliez/f22db6434ac84eccb6d3c8833c85ad92

我的问题主要是Vagrant 2.2.19与VMWare不兼容。2.2.18可以正常使用。只需确保您按照上述gist逐步操作即可。

在苹果M1 Pro上使用Vagrant和VMWare Tech Preview

本文总结了在苹果M1 Pro上使VMWare Tech预览版可用所做的笔记,源自https://github.com/hashicorp/vagrant-vmware-desktop/issues/22中的讨论。

安装Rosetta

首先安装Rosetta(如果尚未安装),这是运行x86代码所需的:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

安装Vagrant

通过brew安装Vagrant或手动安装。请注意我使用的是2.2.18版本,因为2.2.19对我来说不可用。(YMMV)

brew install vagrant@2.2.18

安装VMWare Fusion技术预览版

您需要在vmware上创建一个账户,因为它需要用户和密钥信息,这些信息是用户特定的。注册过程有些复杂,请注意密码需要少于20个字符,且没有错误消息。

您可以通过下载页面下载技术预览版。

一旦安装完成,您将必须创建符号链接,因为vagrant vmware工具等假设vmware安装在特定目录中,而技术预览版安装在另一个目录中。

ln -s /Applications/VMWare\ Fusion\ Tech\ Preview.app /Applications/VMWare\ Fusion.app

安装Vagrant VMWare提供程序

此过程需要两个步骤,具体请参见文档,但请按照以下步骤进行:

首先访问Vagrant vmware实用工具,下载并安装二进制文件。它显示为x86_64,但没有问题。

直接链接如下:

https://releases.hashicorp.com/vagrant-vmware-utility/1.0.21/vagrant-vmware-utility_1.0.21_x86_64.dmg

需要版本号为1.0.21。

接下来安装提供程序:

vagrant plugin install vagrant-vmware-desktop

创建一个Vagrant文件

创建一个名为Vagrantfile的文件。

Vagrant.configure("2") do |config|
  config.vm.box = "spox/ubuntu-arm"
  config.vm.box_version = "1.0.0"
end

运行 Vagrant

vagrant up

然后

vagrant ssh

希望这会起作用,你会发现几乎所有内容都在工作。

故障排除

我观察到各种问题会导致整个体验不稳定或者创建冲突。

vagrant 2.2.19版本有问题

我尝试使用vagrant 2.2.19时遇到了问题。使用2.2.18版本。

vagrant-vmware提供程序转发的端口被绑定

如果你在你的盒子上声明了转发端口,由于某些原因,提供程序会将它们保留并保持在LISTEN状态,即使你执行了vagrant halt

你可以使用类似下面的命令检查:

sudo lsof -i -P | grep LISTEN | grep 'vagrant-v'

您可以看到端口存储在:

cat /opt/vagrant-vmware-desktop/settings/portforwarding.json

停止提供者使用以下命令:
sudo launchctl unload -w /Library/LaunchDaemons/com.vagrant.vagrant-vmware-utility.plist

重新启动它,请使用load而不是unload

nfs导出冲突

如果您的vagrant box使用nfs,则似乎会随着时间的推移在/etc/exports文件中污染重复或过时的条目,这将导致vagrant在某些时候对您发脾气。您可能需要修剪这些条目。这似乎与vagrant#11418有关。


Amir jan,我已经尝试了这个答案中写的所有方法,但是在M2上没有一个能正常工作。 - Mostafa Ghadimi
1
很遗憾,我还没有在 M2 上尝试过上述任何操作,只在 M1 Pro 上进行了测试。据我所知,最近 Virtual Box 发布了一款开发者预览版(https://www.virtualbox.org/wiki/Downloads),可以与 Mac M1 和 M2 兼容。这可能是一个更可靠的解决方案,因为使用虚拟机,您可以创建自己的虚拟机。因此,您可能希望将 Virtual Box 作为提供程序来使用。再次强调,我自己也没有尝试过这个建议。 - Amirsalar

0

我在尝试在我的 Mac M1 上设置虚拟机时,遇到了与架构兼容性相同的问题。在这个 GitHub 线程 中找到了解决方案。

我只是在 Vagrantfile 中添加了这些行:

config.vm.provider :vmware_desktop do |v|
        v.vmx["ethernet0.pcislotnumber"] = "160"
end 

嗨,如果有人能指出Vagrantfile的位置,那将非常有帮助。 - Fact

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接