Jan*_*ter 5 linux virtualbox vagrant vagrantfile synced-folder
我的同步文件夹无法正常工作,它们在启动时会同步一次,但是当我在主机上进行更改时,vagrant不会实时同步它.
首先是我系统的一些细节:
在我们开始讨论之前,我没有使用最新版本的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同步,因为我需要跨平台就绪环境.
有关如何启用实时同步的任何想法?
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)
您可以使用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