您的位置:首页 > 其它

使用gitlab+jenkins+saltstack+rsync自动部署Web应用

2015-06-16 18:07 1071 查看
本文描述了集群服务器下部署web应用的一种方式及其架构,其讨论的背景基于以下服务架构,如图所示:





本地服务器用于编辑和测试代码,编辑测试完成后将源码传到源码服务器上,再从源码服务器上同步到先上服务器。

GitLab是一个开源的源码管理应用,提供类似Github的代码管理服务,使用代GitLab管理线上代码,可以在服务器更新出错时回滚到旧版本,便于管理和维护。GitLab的安装可参照官方文档,源码安装方式比较复杂且容易出错,建议使用官方提供的rpm安装方式安装。GitLab的使用非常简单,和Git完全一样。使用Git命令创建本地库后,可以使用Github提供的客户端提交修改或check源码等。

jenkins是一个开源持续集成服务器,可用于管理软件的构建、发布和外部调用监控,尤其是Java开发的线上应用。详细可查看

saltstack是一个开源的类似puppet的服务器管理软件,可以同步文件、远程执行脚本等。

rsync是类Unix服务器提供的用于同步文件或数据的工具。

本文使用上述四个开源软件用于管理源码和自动部署Web应用。其架构如图所示:





基本原理是:

1)本地服务器用于编辑和测试源码;

2)测试完成后通过Git将源码push到Git服务器,通过Git的Service或Hook功能,将push事件通知到jenkins;

3)jenkins收到push事件后,执行构建脚本;对于PHP编写的程序,通常是git更新程序,然后将文件拷贝到发布目录;

4)构建完成后,通过saltstack发送通知到线上服务器,线上服务器通过rsync从构建服务器同步构建后的程序或源码;

此方法的好处在于:

1)可通过Git方便管理服务器程序的发布或回滚;

2)实时构建和部署服务。

Git的安装配置请参考官方文档:https://about.gitlab.com/downloads/

saltstack的安装和配置请参考中文文档:http://docs.saltstack.cn/zh_CN/latest/contents.html

jenkins的安装可参考官方安装说明:http://pkg.jenkins-ci.org/redhat-stable/

rsync可参考文档:http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: