Jenkins, SpringBoot, Linux, Gitee 自动部署

Jenkins, SpringBoot, Linux, Gitee自动部署

相关软件版本号:

Jenkins: 2.190.1
Java : openjdk version "1.8.0_232"
Linux: CentOS Linux release 7.7.1908 (Core)
Git: gitee.com (https://gitee.com/help/articles/4193)


作者的Jenkins就安装在测试服务器上,跟jar要部署的服务器是同一个服务器,所以没有使用 Build Environment-> Send files or execute commands over SSH功能
 

1. 创建一个JOB

配置的是Gitee Connection (https://gitee.com/help/articles/4193),其他参数默认

Jenkins, SpringBoot, Linux, Gitee 自动部署_第1张图片

2. 源码管理

2.1 配置Gitee.com上源码的地址,以及登录信息 ,具体可参考 https://gitee.com/help/articles/4193

2.2 Additional Behaviours: 选择Clean before checkout,每次获取源码前先清理一下,以免有缓存导致有些文件未更新

2.3 Branch,获取源代码时,具体从哪个分支获取,如: master, develop
 

Jenkins, SpringBoot, Linux, Gitee 自动部署_第2张图片

3. 触发构建

默认既可以,作者用来发布开发环境,或者直接用 Push Events 去触发 origin/dev-20191015分支

Jenkins, SpringBoot, Linux, Gitee 自动部署_第3张图片

4. 构建编译环境

其他参数默认,Add pre-build step->Execute shell

编译前停止SpringBoot 服务

Jenkins, SpringBoot, Linux, Gitee 自动部署_第4张图片

stop-pls-admin8087.sh内容如下,

stop-pls-admin8087.sh和pls-admin8087.jar文件都在目录 /mnt/diskb/mallplus-runnning下

4.1停止jar服务

4.2 删除jar文件

#!/bin/sh

echo "Stop pls-admin8085 0.0.1............"
echo ".............stopping.................."

NAME='pls-admin8087.jar'
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done

rm -rf pls-admin8087.jar

echo "...........stopped successfully............"

5. 编译

编译时先清除之前的缓存,Goals and options: clean package

Jenkins, SpringBoot, Linux, Gitee 自动部署_第5张图片

6. 编译后执行命令

Add post-build steps->Execute shell

启动SpringBoot jar文件

Jenkins, SpringBoot, Linux, Gitee 自动部署_第6张图片

start-pls-admin8087.sh文件内容

6.1 拷贝编译的Jar文件到执行目录下,并改名, /mnt/diskb/mallplus-runnning/pls-admin8087.jar

6.2 以后台进程模式启动pls-admin8087.jar文件,并记录日志信息到日志文件 pls-admin-run8087.log

6.3 如果jar服务启动后不工作,可能是jenkins杀掉了启动的服务,添加 BUILD_ID=dontKillMe 来避免被杀掉

6.4 如果执行shell时找不到一些环境变量,用 source /etc/profile 来主动载入环境变量

#!/bin/sh

echo "Start pls-admin8087 0.0.1............"
echo ".............starting.................."
source /etc/profile
BUILD_ID=dontKillMe
chmod +x /var/lib/jenkins/workspace/plsadmin/pls-admin/target/pls-admin-0.0.1-SNAPSHOT.jar
cp /var/lib/jenkins/workspace/plsadmin/pls-admin/target/pls-admin-0.0.1-SNAPSHOT.jar /mnt/diskb/mallplus-runnning/pls-admin8087.jar
chmod +x /mnt/diskb/mallplus-runnning/pls-admin8087.jar
nohup  java -jar /mnt/diskb/mallplus-runnning/pls-admin8087.jar > pls-admin-run8087.log 2>&1 &
echo "...........started successfully............"

7. 上述动作如果都执行成功,则通过url和端口进行访问测。

备注:Jenkins 环境配置

1. 配置java JDK , Linux下一般安装免费的 Open JDK

如果提示不是JDK,这需要安装open jdk devel版本,即开发版本

Jenkins, SpringBoot, Linux, Gitee 自动部署_第7张图片

 

2. 配置MAVEN

Jenkins, SpringBoot, Linux, Gitee 自动部署_第8张图片

3. 配置Node JS

Jenkins, SpringBoot, Linux, Gitee 自动部署_第9张图片

 

你可能感兴趣的:(DevOps,Jenkins,SpringBoot,Linux,Java,DevOps,Jenkins,SpringBoot)