不重新加载的 Vagrant 同步文件夹?

6
我在我的主机上有一个文件,位于~/ansible/provisioning/playbook.yml,对应着客户端上的/vagrant/provisioning/playbook.yml。每次我更改主机上的文件时,除非我运行vagrant reload完全重新启动VirtualBox VM,否则更改不会显示在客户端中。是否有另一种方法可以使用其他文件系统类型(例如NFS)实时同步文件?我的主机是MacOS,客户端是CentOS 7。我正在使用vagrant版本2.0.0。
编辑:
我已经在pastebin上包含了我的Vagrantfile。 是的,看起来我正在使用rsync
$ cat .vagrant/machines/default/virtualbox/synced_folders 
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/timothy/Desktop/code/ansible","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}}

除了在我的Vagrantfile中添加config.vm.synced_folder ".", "/vagrant", type: "virtualbox"之外,我还需要运行 $ vagrant plugin install vagrant-vbguest

共享文件夹可能是使用rsync输入的,你能提供你的Vagrantfile供审查吗? - Frederic Henri
我已经提供了Vagrantfile。抱歉让你等这么久,我在睡觉。 - Timothy Pulliam
2个回答

7

据了解,该系统已启用rsync功能,centos/7默认具备rsync功能。此前已经有过相关讨论(参考链接)。

使用rsync时,您可以使用rsync-auto命令,自动将主机上的任何新更改推送到虚拟机中。

如果您想使用默认的virtual box共享文件夹功能,则可以在Vagrantfile中添加以下内容:

config.vm.synced_folder ".", "/vagrant", type: "virtualbox"

2
这个方法可行,但我随后还需要运行 vagrant plugin install vagrant-vbguest 命令来安装缺失的内核模块和虚拟机驱动程序。谢谢。 - Timothy Pulliam

2
根据Github上的这个问题,最快的解决方案是使用geerlingguy/centos7虚拟机。

这个虚拟机将会构建客户端附加组件。

已测试——运行顺畅!


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