Jenkins自动部署后端
前几天写了一个发布前端得一篇文章,其实在配的时候感觉有很多方式啊,shell脚本里有很多方式可以写,今天给大家分享一下部署后端的,同样希望能帮到大家!
1.前端部署地址-》请点击
直接言归正传:
前言
如下图所示:
这是后端的配置顺序图,和前端大差不差,前四个就不说了,要是各位大佬还不知道的请到上一篇 前端篇看一下
第一
咱们就直接从Pre Steps这个开始,如下图:也是和前端一样 写个回滚的脚本
第二步
如下图:那Root POM 这里呢写的就是pom.xml ,那第二行呢 就是写clean install -Dmaven.test.skip=true 我这个没太细查,但看着像是 idea中的clean
第三步
如图:到Post Steps这一步
代码中 1. web_server:这个就代表 发布到那台服务器。
2. multi_module 这个就代表父子工程项目才写的。
代码呢大家自行理解,认真看一看 都可以看懂 写的不是很复杂我就不一一讲解了。
第三步代码
#!/bin/bash
#判断重复构建
if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
echo "该版本已经构建过了,当前操作属于重复构建!"
fi
#发布到服务器,空格分隔多个IP
web_server=""
#子模块,没有就空着
multi_module=
#发布到该文件夹
jar_root=/root/meteorological-disaster
#进入到jenkins工作目录
cd ${WORKSPACE}$multi_module
echo "当前jenkins工作目录:"`pwd`
#传输shell脚本文件到远程服务器
for host in $web_server
do
echo "-------------↓$host↓---------------"
echo "远程工作目录:$jar_root"
ssh root@$host "mkdir -p ${jar_root} && mkdir -p ${jar_root}/package && mkdir -p ${jar_root}/backup"
scp -r /deploy/deploy20201228.tar root@${host}:${jar_root}
echo "传输脚本文件完成:$jar_root"
echo "-------------↑$host↑---------------"
done
第四步
如果是父子工程那如下图;一定加上项目名称
如图:
Remote directory : 这个写的就是你发布项目,在服务器路径里面有一个package
第四步代码
#!/bin/bash
#进入远程服务器的目录
cd /home/insurance/insurance-server-export
echo `pwd`
#解压脚本文件
tar -xvf deploy20201228.tar
#替换skywalking-agent
#sed -i "s|agent.service_name=service_name|agent.service_name=insurance-server-export|" skywalking-agent/config/agent.config
#进入shell命令目录
cd shell
echo `pwd`
#执行发布命令
sh deploy.sh "" "--spring.profiles.active=test --spring.cloud.inetutils.preferred-networks=192.168.1"
后端发布就结束了这个还是比较简单的整体逻辑!
在这给大家说一下我的这个jenkins,不管是前端和这篇后端,我的jenkins 不是和项目一台服务器(你们可以根据情况而定),然后我在下面会把 jenkins目录 常在jenkins看到的给个图,给大家简单讲一下。过几天我会再发一个三台服务器 发后端的(什么意思呢,就是项目先到jenkins然后–》导到一台中转站服务器–》然后再到最终的服务器),这个中转战服务器其实就是因为上传包快,然后使用wget到最终的服务器比较快。
Jenkins目录
这是整个Jenkins,图中的jobs目录呢里面存的就是我们在jenkins的存的项目然后我们在从jenkins发到各个服务器对吧( jobs 是图2)
图1:
图2
我们随便进个项目,项目里面就会有workspace
所以我们的 shell脚本里会有一句这个