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

vagrant synced folders not working real-time on virtualbox

我的同步文件夹工作不正常,它们在开始时同步了一次,但是当我在主机上进行更改时,vagrant 没有实时同步它。

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

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

我的流浪文件:

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

vagrant up 给我 this.

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

falnyr@mint:~/centos-vagrant $ ls
ansible  Vagrantfile
falnyr@mint:~/centos-vagrant $ touch file.txt
falnyr@mint:~/centos-vagrant $ ls
ansible  file.txt  Vagrantfile

并通过 ssh 连接到客户机:

falnyr@mint:~/centos-vagrant $ vagrant ssh
[vagrant@my ~]$ ls /vagrant/
ansible  Vagrantfile

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

注意:我无法使用 NFS 同步,因为我需要跨平台就绪环境。

关于如何启用实时同步有什么想法吗?

盒子的所有者在同步类型上默认启用了 rsync。如果你查看你的盒子的 Vagrantfile(在我的例子中它是 ~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/0/vmware_fusion 但你的可能在 virtualbox 提供者下)你会看到一个带有内容

的 Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end

只需从 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

您可以使用rsync-auto命令:

vagrant rsync-auto

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

config.vm.synced_folder ".", "/home/ubuntu/qb-online", type: "nfs"

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

如果有人遇到这个问题 vbox "Syncing/Mount" 只需输入 Vagrant ssh,其中没有 vagrant up 的 vagrant 文件和 运行 命令 "sudo yum upgrade" dat' ll 完成后花点时间退出 vagrant 并点击 vagrant up again.Issue 将解决。 ..:)

并确保如果您使用的是 Centos,请在您的 VagrantFile 中使用 "Bento/Centos" 列表项

  1. vagrant ssh
  2. sudo yum upgrade
  3. vagrant reload
Vagrant.configure("2") do |config|
  config.vm.synced_folder ".", "/vagrant", type: "nfs",
  rsync__exclude: ".git/"
end

只用里面的第2和第3行 Vagrant.configure("2") do |config| #place here end