vagrant synced文件夹在virtualbox上不能实时工作

Jan*_*ter 5 linux virtualbox vagrant vagrantfile synced-folder

我的同步文件夹无法正常工作,它们在启动时会同步一次,但是当我在主机上进行更改时,vagrant不会实时同步它.

首先是我系统的一些细节:

  • 操作系统:Linux Mint 18 Sarah
  • Virtualbox版本:5.0.24-dfsg-0ubuntu1.16.04.1
  • Vagrant版本:1.9.0
  • vagrant-hostmanager(1.8.5)
  • 流浪汉分享(1.1.6)
  • vagrant-vbguest(0.13.0)

在我们开始讨论之前,我没有使用最新版本的Virtualbox,因为它不在存储库中而且很简单vagrant up.

我的Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "private_network", ip: "192.168.88.88"
  config.vm.hostname = "my.centos.dev"
end
Run Code Online (Sandbox Code Playgroud)

vagrant up给了我这个.

现在,当我在主机上创建一个文件时:

falnyr@mint:~/centos-vagrant $ ls
ansible  Vagrantfile
falnyr@mint:~/centos-vagrant $ touch file.txt
falnyr@mint:~/centos-vagrant $ ls
ansible  file.txt  Vagrantfile
Run Code Online (Sandbox Code Playgroud)

和客机上的ssh:

falnyr@mint:~/centos-vagrant $ vagrant ssh
[vagrant@my ~]$ ls /vagrant/
ansible  Vagrantfile
Run Code Online (Sandbox Code Playgroud)

如您所见,未创建该文件.当我执行vagrant reload同步时,在机器启动期间再次执行.

注意:我不能使用NFS同步,因为我需要跨平台就绪环境.

有关如何启用实时同步的任何想法?

Fré*_*nri 9

rsync默认情况下,该框的所有者已启用同步类型.如果你查看你的盒子的Vagrantfile(在我的情况下~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/0/vmware_fusion,你的可能在你的虚拟机提供商下),你会看到一个包含内容的Vagrant文​​件

Vagrant.configure("2") do |config|
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
Run Code Online (Sandbox Code Playgroud)

只需从box目录中删除此文件即可.

请注意,如果您打算使用nfs,则可以更改Vagrantfile中的同步类型

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "private_network", ip: "192.168.88.88"
  config.vm.hostname = "my.centos.dev"
  config.vm.synced_folder ".", "/vagrant", type: "nfs"
end
Run Code Online (Sandbox Code Playgroud)


Ibr*_*tov 5

您可以使用rsync-auto命令:

vagrant rsync-auto
Run Code Online (Sandbox Code Playgroud)

实际上,当我遇到同步问题时,添加对type: nfs我有帮助:

config.vm.synced_folder ".", "/home/ubuntu/qb-online", type: "nfs"
Run Code Online (Sandbox Code Playgroud)

您可以从文档中阅读更多信息: https://www.vagrantup.com/docs/synced-folders/rsync.html