这里所说的自动化部署系统,其实是一种半自动的代码部署,不同于jenkins的持续集成,而是根据公司实际情况,编写的自动升级脚本,结合jobcenter任务平台和ansible批量执行任务而制定的自动化部署方案。
公司项目发布过程如下:
1、 开发人员上传war包至svn目录,并发邮件告知运维其svn目录及相应升级主要事项;
2、 运维人员从svn地址下载war包至本地;
3、 根据升级脚本升级包命名规则,修改war包命名;
4、 登录jobcenter客户端,执行创建放置升级包文件夹任务;
5、 利用ftp工具上次升级包到指定路径;
6、 执行jobcenter平台对应的升级任务,ansible结合升级脚本批量升级。
7、 根据脚本返回结果,判断升级是否成功。
升级脚本功能如下:
1、 判断升级包路径下是否存在升级包,如果存在继续,如果不存在异常结束。
2、 判断$HOME/backup/yyyymmdd目录下是否存在该应用备份文件,如果不存在则创建该目录,并备份原文件,如果存在,在创建$HOME/backup/yyyymmddhh24miss/,备份原文件。
3、 应用停进程。
4、 删除原文件。
5、 复制升级包文件到应用路径下并解压。
6、 根据备份的配置文件自动替换到应用对应路径下。
7、 判断升级包路径下是否存在配置文件,如果存在则把配置文件追加到应用路径下的配置文件。
8、 启动进程。
9、 循环60秒根据业务监控url去判断是否启动成功,检测到OK,则启动成功,正常退出。如果60秒内没检测到OK,则启动失败,异常退出。
配置的升级任务如下:

升级的脚本如下:

升级脚本是运用的ansible的批处理工具,先对应用分组,再运用ansible对该组批量执行脚本。
运用该升级流程大大节省了升级时间,有效避免了人工升级过程中的漏升,错升。




