概述
主要是有点烦发版,而这边的环境比较复杂,所以最近简单构建了个自动化发布体系,流程图如下,后面再做具体完善。
执行步骤
1、jenkins打包
这部分由测试人员来把控,因为很多时候测试人员需要几天后才能测试完,打包的版本并不是最新的代码,所以建议测试人员来控制打包的版本,jenkins会将版本打成war包到节点服务器,此时不自动部署。
2、节点服务器
节点服务器负责存放各个项目的war包,并部署rsync远程服务,相关配置如下:
[root@localhost classes]# cat /usr/local/rsync/rsyncd.conf uid = root gid = root use chroot = no max connections = 5 strict modes = yes port = 8888 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [ams_prod] path = /root/jenkins_workplace/workspace/AMS_prod_package/target comment = ANS_prod_package ignore errors read only = false list = no hosts allow = 172.16.5.60 auth users = rsync secrets file =/usr/local/rsync/rsyncd.secrets ....
3、本机电脑
本地电脑负责以下工作:
1)从节点服务器下载war包到对应目录
2)将war包上传到正式环境服务器
3)远程执行正式环境部署脚本
注:因本地电脑为win7系统,所以部署cygwin来模拟linux环境并部署ssh服务。
建议针对每个项目环境规划不同的目录和脚本,相关脚本由运维或DBA人员确认并执行。
核心脚本如下:
@echo off echo "打包服务器-->本机-->联友云-->自动发布pas_prod" c: cd C:\Program Files\cwRsync\bin\ echo ################开始下载war包############################# rsync --port=8888 -vzrtopg --progress --timeout 600 --password-file=/cygdrive/d/rsync/rsyncd.txt --delete rsync@172.16.5.215::pas_prod/*.war /cygdrive/d/rsync/pas/prod echo ################开始上传war包############################# rsync --port=8888 -vzrtopg --progress --timeout 600 --password-file=/cygdrive/d/rsync/rsyncd.txt --delete /cygdrive/d/rsync/pas/prod rsync@172.26.150.139::pas_prod echo ################开始自动部署############################# C: chdir C:\cygwin64\bin bash --login -i -c "ssh root@172.26.150.139 '/bin/sh /home/scripts/pas_prod.sh'"
执行过程如下:
4、生产环境端
生产环境服务器部署rsync远程服务和部署脚本,供本地电脑调用。
# cat /usr/local/rsync/rsyncd.conf #全局参数 uid = root gid = root use chroot = no max connections = 5 strict modes = yes port = 8888 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log #模块 [pas_prod] path = /opt/rsync comment = auto deploy ignore errors read only = false list = no #hosts allow = 0.0.0.0 auth users = rsync secrets file =/usr/local/rsync/rsyncd.secrets
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
本文暂时没有评论,来添加一个吧(●'◡'●)