企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Windows用户: NFS文件夹在Windows主机上不起作用 1、先决条件: * 宿主机上安装nfs,但是Mac OS X 默认是集成了的,可以省略 我这边是centos7.3 [root@vagrant ubuntu]# yum -y install nfs-utils rpcbind [root@vagrant ubuntu]# systemctl start nfs * 虚拟机上安装nfs 首先要把虚拟机的网络设置成 :private_network 模式,不能用public——network模式 vagrant@ubuntu-xenial:~$ sudo apt-get install nfs-common * 暂停虚拟机 2、配置Vagrantfile文件,添加如下 config.vm.synced_folder "website/" "/opt/website", type: "nfs" 3、宿主机上创建目录 [root@vagrant ubuntu]# mkdir website 4、当我启动虚拟机(或者重启载入虚拟机的时候) 使用命令 vagrant reload 重启虚拟机后才会生效,期间会修改宿主计算机的 /etc/exports 文件 然后查看exports发现多了如下(默认是anonuid为root) [root@vagrant website]# vim /etc/exports # VAGRANT-BEGIN: 0 c7e6bcff-6e7d-4551-8fcb-e5cabda96273 "/vagrant/ubuntu/website" 192.168.30.100(rw,no_subtree_check,all_squash,anonuid=0,anongid=0,fsid=1307718439) # VAGRANT-END: 0 c7e6bcff-6e7d-4551-8fcb-e5cabda96273 选项: 1、map_uid和map_gid(int) - 分别映射所有读/写请求的UID / GID config.vm.synced_folder "website/","/opt/website", type: "nfs",map_uid: "1002",map_gid: "1002" 注意: * 主机上的用户和虚拟机上的用户,必须使用同一个uid和gid * 宿主机和虚拟机上都要有该用户 宿主机上创建如下: [root@vagrant website]# useradd -u 1002 www 重新载入虚拟机 [root@vagrant ubuntu]# vagrant reload 登录虚拟机上查看 [root@vagrant ubuntu]# vagrant ssh vagrant@ubuntu-xenial:/opt/website$ ll total 4 drwxr-xr-x 2 www www 33 Jan 31 10:25 ./ drwxr-xr-x 3 root root 4096 Jan 31 10:05 ../ -rw-r--r-- 1 www www 0 Jan 31 10:06 a -rw-r--r-- 1 www www 0 Jan 31 10:25 b -rw-r--r-- 1 www www 0 Jan 31 10:25 c 注意: 如果vagrant宿主机是普通用户运行,那么就需要根据系统类型,配置visudoer,摘入官网如下: 对于OS X,sudoers应该有这个条目: Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports %admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE 对于Ubuntu Linux,sudoers应该是这样的: Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/* Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar %sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY 对于Fedora Linux,sudoers可能看起来像这样(因为你的用户属于流浪者组): Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/* Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports Cmnd_Alias VAGRANT_NFSD_CHECK = /usr/bin/systemctl status --no-pager nfs-server.service Cmnd_Alias VAGRANT_NFSD_START = /usr/bin/systemctl start nfs-server.service Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar %vagrant ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START