我们希望多台虚拟机使用相同的文件夹, 多个虚拟机里面的站点内容必须一致, 或者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、测试查看
![](https://box.kancloud.cn/25697ca757b3a542607841dca9291275_888x392.png)
总结:
* 默认情况,不管宿主机上这个共享的目录属主和属组是谁,在虚拟机上查看到的,这个目录的属主和属组都会变成登录虚拟机的用户
比如:
宿主机上,/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"
截图:
![](https://box.kancloud.cn/69c6cccfd87eac38207652a84257cf6b_1270x575.png)
- 第一章:Vagrant基础介绍
- 第二章:Vagrant的安装部署
- 第一节:在centos7.3的系统上安装部署vagrant
- 第二节:在windows server 2008 R2的系统上安装部署vagrant
- 第三章:vagrant常见命令
- 第一节:box
- 第二节:虚拟机相关的命令
- 第四章:vagrant管理虚拟机
- 第一节:初始化centos6的系统
- 第二节:初始化ubuntu16.04的系统
- 第三节:打包自己的box
- 第五章:Vagrant之网络配置
- 第一节:通过Forwarded Ports(转发端口)
- 第二节:Private Networks(私有网络)
- 第三节:Public Networks(公有网络)
- 第六章:常见错误
- 第七章:Vagrant之文件同步方式
- 第一节:synced_folder(把物理机的目录同步到虚拟机里某个目录)
- 第二节:通过NFS共享
- 第三节:通过rsync共享
- 第八章:Vagrantfile配置文件