当做一个“壳”规定vagrant up下载一些文件到同步文件夹。 这些文件也应该复制到主机同步的文件夹,以便项目可以从主机。 当使用NFS进行同步时,这是自动完成的,但不能与rsync同步。 有没有什么办法可以使用rsync与Vagrant来实现这一点? 这是已同步的文件夹configuration:
config.vm.synced_folder "./", "/vagrant", type: "rsync", owner: "www-data", rsync__exclude: [".git", "project1/app/cache", "project1/app/logs"], rsync__args: ["--no-owner", "--verbose", "--archive", "-z", "--copy-links"]
根据文档 ,rsync只是一个单向同步的stream浪者。 这意味着您必须使用不同的机制(如nfs)来从guest虚拟机到主机进行同步,否则您必须实现一些自己的后退同步机制,例如在主机上手动运行rsync命令。
有人可能会写一个rsync-back扩展(插件)来stream浪。 我不知道现有的插件来实现这一点。
如果您的guest虚拟机中安装了virtualbox guest虚拟机扩展,则可能还需要查看virtualbox共享文件夹mechansim vboxsf作为varant已同步文件夹的传输,而不是nfs和rsync。
如果你的客户和主机有ssh,你可以使用scp来双向传输数据。
这些是从客人到主机同步的命令,并且应该从你跑上vagrant up的文件夹中执行:
$ vagrant ssh-config > ssh_config $ rsync -avH -e "ssh -F ./ssh_config" default:/vagrant/ ./
另请参阅我在stackoverflow上写的这个答案 。