vagrant 同步文件夹不能在 virtualbox 上实时工作
vagrant synced folders not working real-time on virtualbox
我的同步文件夹工作不正常,它们在开始时同步了一次,但是当我在主机上进行更改时,vagrant 没有实时同步它。
首先是我系统的一些细节:
- OS: Linux 薄荷 18 莎拉
- 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
失败。
我的流浪文件:
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"
列表项
- vagrant ssh
- sudo yum upgrade
- 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
我的同步文件夹工作不正常,它们在开始时同步了一次,但是当我在主机上进行更改时,vagrant 没有实时同步它。
首先是我系统的一些细节:
- OS: Linux 薄荷 18 莎拉
- 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
失败。
我的流浪文件:
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 提供者下)你会看到一个带有内容
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" 列表项
- vagrant ssh
- sudo yum upgrade
- 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