编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

基于XX公司构建的自动化发布体系,值得借鉴

wxchong 2024-07-16 10:29:14 开源技术 11 ℃ 0 评论

概述

主要是有点烦发版,而这边的环境比较复杂,所以最近简单构建了个自动化发布体系,流程图如下,后面再做具体完善。


执行步骤

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方面的内容,感兴趣的朋友可以关注下~

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表