Vagrant同步文件夹选项

Vagrant同步文件夹选项,vagrant,nfs,vmware-fusion,vagrantfile,Vagrant,Nfs,Vmware Fusion,Vagrantfile,在主机和虚拟机之间实现漫游NFS“同步文件夹”的最佳方法是什么 总的来说,我最终能够让NFS正常工作,但它需要在VM中进行一些调整;我不知道如何将这些更改自动化以供其他人使用 具体来说,我必须修改/etc/passwd和/etc/group中的UID/GID,以匹配导出文件系统的用户/组的UID/GID。(例如,主机使用502:20,VM apache用户也必须设置为使用502:20) 如果没有此更改,我会遇到各种各样的权限/所有权问题,从而阻止web应用程序运行。通过UID/GID匹配,一切都

在主机和虚拟机之间实现漫游NFS“同步文件夹”的最佳方法是什么

总的来说,我最终能够让NFS正常工作,但它需要在VM中进行一些调整;我不知道如何将这些更改自动化以供其他人使用

具体来说,我必须修改/etc/passwd和/etc/group中的UID/GID,以匹配导出文件系统的用户/组的UID/GID。(例如,主机使用502:20,VM apache用户也必须设置为使用502:20)

如果没有此更改,我会遇到各种各样的权限/所有权问题,从而阻止web应用程序运行。通过UID/GID匹配,一切都很好

我已经阅读了所有我能找到的文件,包括流浪汉网站

附带说明:我还尝试了本机文件夹同步(速度非常慢)和rsync(100%CPU…无法使用)

NFS似乎是性能的赢家,但我的设置很粗略

如果有什么不同,我将与以下人员合作:

  • 主机:OS X 10.9.2
  • 流浪汉:1.5.4
  • 提供商:VMware Fusion
  • 包厢:厨师长/centos-6.5
  • 开发应用程序:Magento 1.8

    • bindfs

      GitLab在弃用Vagrant作为开发方法之前,使用的是
      bindfs

      甚至还有一个流浪者插件:

      相关文件行:


      在Vagrantfile中,可以将当前uid/gid分配给nfs映射。(请参见设置后的主机/etc/exports。)

      使用Puppet作为provisioner,您可以生成以下值:

       config.vm.provision :puppet, :facter => { 
           "host_uid" => config.nfs.map_uid, 
           "host_gid" => config.nfs.map_gid, 
       } do |puppet| ...
      
      因此,您可以在puppet作用域中使用它,例如

      user { "www-data":
          ensure => present,
          uid => $::host_uid,
          gid => $::host_gid,
      }
      
      我认为在chef中,自定义json选项相当于稍后在chef菜谱中使用它

      Vagrant.configure("2") do |config|
        config.vm.provision "chef_solo" do |chef|
              # ...
      
              chef.json = {
                "map" => {
                  "uid" => config.nfs.map_uid,
                  "gid" => config.nfs.map_gid
                }
              }
            end
          end
      

      谢谢,如果我能多投一次赞成票,我会的,这真的帮了我的忙。谢谢,我在NFS上也遇到了同样的问题,但我还没有达到你手动修复它的程度。在你的问题和Sschoon的答案之间,我现在已经把它们全部整理好了。注意bindfs性能惩罚:。这让我一直在寻找替代解决方案;)@萨姆特,那个链接死了。
      user { "www-data":
          ensure => present,
          uid => $::host_uid,
          gid => $::host_gid,
      }
      
      Vagrant.configure("2") do |config|
        config.vm.provision "chef_solo" do |chef|
              # ...
      
              chef.json = {
                "map" => {
                  "uid" => config.nfs.map_uid,
                  "gid" => config.nfs.map_gid
                }
              }
            end
          end