gpt4 book ai didi

Vagrant 同步文件夹选项

转载 作者:行者123 更新时间:2023-12-04 10:00:21 25 4
gpt4 key购买 nike

在主机和 VM 之间实现 Vagrant NFS“同步文件夹”的最佳方法是什么?

总的来说,我终于能够让 NFS 正常工作,但这需要在 VM 中进行一些调整;而且我不确定如何自动执行这些更改以供其他人使用。

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

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

我已经阅读了我能找到的所有文档,包括 Vagrant 网站。

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

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

如果有什么不同,我正在使用以下方法:

  • 主机:OS X 10.9.2
  • Vagrant :1.5.4
  • 提供商:VMware Fusion
  • 邮箱:chef/centos-6.5
  • 开发应用程序:Magento 1.8
  • 最佳答案

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

     config.nfs.map_uid = Process.uid   
    config.nfs.map_gid = Process.gid

    使用 Puppet 作为供应商,您可以调整这些值:
     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,
    }

    我认为在厨师中自定义 json 选项相当于稍后在厨师食谱中使用它
    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

    关于Vagrant 同步文件夹选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798498/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com