通过rsync共享
我们希望多台虚拟机使用相同的文件夹, 多个虚拟机里面的站点内容必须一致, 或者web服务器的配置文件要一致,,这个时候我们就会在宿主机上建立一个目录,然后同步到虚拟机里。
先决条件:
一、宿主机和虚拟机上需要安装rsync软件
缺点:
单向同步,只能把宿主机上的某个目录或文件,同步到虚拟机里,不能把虚拟机里目录或文件,同步到宿主机
二、实施案例:
把宿主机上/website目录同步到虚拟机/opt/web目录下
前提条件:
在宿主机上安装rsync
[root@vagrant ubuntu]# yum -y install rsync
1、创建目录,并授权
[root@vagrant ubuntu]# mkdir /website
[root@vagrant ubuntu]# chown -R www.www /website
2、编辑Vagrantfile文件
[root@vagrant ubuntu]# vim Vagrantfile
config.vm.synced_folder "/website/","/opt/web",type: "rsync"
说明:把本地/website目录同步到虚拟机/opt/web目录
3、启动虚拟机
[root@vagrant ubuntu]#vagrant reload(重载)
4、测试查看
总结:
默认情况,不管宿主机上这个共享的目录属主和属组是谁,在虚拟机上查看到的,这个目录的属主和属组都会变成登录虚拟机的用户 比如: 宿主机上,/website目录的属主为www,属组为www,登录虚拟机的用户为vagrant,那么通过vagrant ssh登录虚拟机,发现/opt/web的目录属主为vagrant,属组也为vagrant
切记不能再虚拟机/opt/web目录下创建文件或目录,不然同步,就会丢失
如果不想每次手工运行,vargrant rsync来同步文件或目录,可以运行 vagrant rsync-auto
[root@vagrant ubuntu]# nohup vagrant rsync-auto &
三、其他参数
1、设置rsync同步目录的属主和属组
config.vm.synced_folder "/website","/opt/web",owner: "www",group: "www",type: "rsync"
截图: