这次我把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安装即可
下面是本例中/etc/rsyncd.conf文件和/etc/rsyncd.pwd文件的内容:
提测专用FTP服务器:192.168.1.167上的rsyncd.conf配置:
提测专用FTP服务器:192.168.1.167上的rsyncd.pwd的配置:
网站测试服务器:192.168.1.6上的rsyncd.pwd的配置:
crontab定时执行:
手动执行上线操作,最好不要做定时执行,除非在可控的情况下。
5. 补充
这样的一个流程和配置只能用在非应用型的服务上面,比如网站页面文件、图片、flash资源等。不要用在应用型的服务上。因为应用型的服务比如java、php等等,这些程序的更新都涉及到在不同环境配置文件的变更,网站空间,傻瓜式同步绝对是不行的。针对应用型服务的自动部署和更新,我用的是Tomcat+Jenkins/hudson+ant+SVN这样的一个持续集成环境。
rsync命令详解:
本文出自 “运维之道” 博客,请务必保留此出处
,香港虚拟主机每一个成功者都有一个开始。勇于开始,才能找到成功的路。