通过rsync共享

我们希望多台虚拟机使用相同的文件夹, 多个虚拟机里面的站点内容必须一致, 或者web服务器的配置文件要一致,,这个时候我们就会在宿主机上建立一个目录,然后同步到虚拟机里。

先决条件:

一、宿主机和虚拟机上需要安装rsync软件

缺点:

单向同步,只能把宿主机上的某个目录或文件,同步到虚拟机里,不能把虚拟机里目录或文件,同步到宿主机

二、实施案例:

  • 把宿主机上/website目录同步到虚拟机/opt/web目录下

    前提条件:

    在宿主机上安装rsync

    1. [root@vagrant ubuntu]# yum -y install rsync

1、创建目录,并授权

  1. [root@vagrant ubuntu]# mkdir /website
  2. [root@vagrant ubuntu]# chown -R www.www /website

2、编辑Vagrantfile文件

  1. [root@vagrant ubuntu]# vim Vagrantfile
  2. config.vm.synced_folder "/website/","/opt/web",type: "rsync"

说明:把本地/website目录同步到虚拟机/opt/web目录

3、启动虚拟机

  1. [root@vagrant ubuntu]#vagrant reload(重载)

4、测试查看

第三节:通过rsync共享 - 图1

总结:

  • 默认情况,不管宿主机上这个共享的目录属主和属组是谁,在虚拟机上查看到的,这个目录的属主和属组都会变成登录虚拟机的用户 比如: 宿主机上,/website目录的属主为www,属组为www,登录虚拟机的用户为vagrant,那么通过vagrant ssh登录虚拟机,发现/opt/web的目录属主为vagrant,属组也为vagrant

  • 切记不能再虚拟机/opt/web目录下创建文件或目录,不然同步,就会丢失

  • 如果不想每次手工运行,vargrant rsync来同步文件或目录,可以运行 vagrant rsync-auto

    1. [root@vagrant ubuntu]# nohup vagrant rsync-auto &

三、其他参数

1、设置rsync同步目录的属主和属组

  1. config.vm.synced_folder "/website","/opt/web",owner: "www",group: "www",type: "rsync"

截图: 第三节:通过rsync共享 - 图2