这里所说的自动化部署系统,其实是一种半自动的代码部署,不同于jenkins的持续集成,也不同于puppet,ansible的自动部署。根据公司实际情况,而定制的一种自动化部署方案:
背景介绍
公司项目发布过程如下:
开发人员上传war包至svn目录,并发邮件告知运维其svn目录;
运维人员从svn地址下载war包至本地;
运维人员ssh2登陆远程服务器:
- 备份服务war包
- 停止服务
- 上传新war至相应的目录
- 启动服务
- 查看log
方案设计
为了解决线下的手动部署,主要提供如下功能:
开发人员部署申请
关于svn文件的上传,暂时仍沿用,后期可以更换成web上传功能进行替换。
服务部署管理
运维人员管理每个服务部署的情况,即哪个服务部署在哪台服务器的哪个目录上;
服务器管理
服务器的管理,即每台服务的ip地址,及ssh登陆所需用户名、密码;
部署申请审核
运维人员审核开发人员的部署申请,是否允许上线。自动化部署
如何进行自动化部署,这是个难点?采用什么技术,也是因人而异.比如ansible就采用python,而java web提代的自动化部署也有ant,tomcat deploy等。在这里选择通过ssh2登陆远程服务器,执行服务脚本完成自动部署的操作。
自动部署功能通过监听部署申请审核通过的消息ÿ