这次我把rsync服务使用在了web前端网站的提测、测试和更新方面。先介绍流程和配置。
1. 前提
网站上线流程太过原始:前端研发提测,邮件将提测文件打包给测试--->测试手动上传文件到测试环境,测试通过后把提测包邮件发送给运维--->运维进行线上更新,也需要手动更新文件
这个过程太繁琐,太漫长,即使把上线操作自动化,但是对于前段研发和测试来说,也是可以把人逼疯的流程。尤其是在测试任务大的情况下。
2. 解决方案
2.1 给前端研发提供提测专用FTP。FTP服务的部署就不在这里说了。
2.2 在提测专用FTP所在的系统上部署rsync服务,让测试环境自动同步提测专用FTP上的文件。
2.3 在测试环境同样部署rsync服务,让生产环境手动同步测试环境的文件。
2.4 然后再进行线上跟踪测试。
3. 环境说明
提测专用FTP:CentOS6.2 192.168.1.167
网站测试服务器:CentOS6.2 192.168.1.6
生产环境网站服务器:CentOS5.8 192.168.64.82
4. rsync服务的部署以及自动同步设置
4.1 rsync服务的部署
可以以单独进程方式开启,也可以配置到xinetd守护进程,让其自动开启。
4.1.1 安装
非常简单,yum安装即可
yum install -y rsync
4.1.2 配置
创建配置文件,和密码文件
touch /etc/rsyncd.conf
touch /etc/rsyncd.pwd
chmod 600 /etc/rsyncd.pwd #必须改成属主读写权限,否则不能进行密码校验
下面是本例中/etc/rsyncd.conf文件和/etc/rsyncd.pwd文件的内容:
提测专用FTP服务器:192.168.1.167上的rsyncd.conf配置:
port=873
uid = root
gid = root
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[web_update] #实例名
uid=root #使用root用户权限,可自行制定使用的系统用户
gid=root #使用root用户组权限
path=/home/data01/website/ #实例根目录所在位置
host allow=192.168.1.6 # 允许连接此服务的主机 ,指定只允许测试服务器来同步
read only=true # ture只读权限,false读写权限
auth users = rsync # 允许传送文件的用户
secrets file = /etc/rsyncd.pwd # 指定密码验证文件的位置
提测专用FTP服务器:192.168.1.167上的rsyncd.pwd的配置:
rsync:yourpassword167 # 冒号前面是auth users 指定的用户rysnc,后面是自定义的密码。
# 密码必须是可读的,就是说密码中不能有特殊字符