20、Jenkins使用教程
1、准备工作
(1)检查服务器环境
jdk
,git
,maven
这三个要全部安装上。并且,版本与开发环境保持统一。
jdk安装:17、Linux下安装jdk(CentOS7)
git安装:19、Linux安装Git(CentOS7,在线/离线)
2、配置jdk,git,maven
点击: Manage Jenkins
点击: Global Tool Configuration
配置jdk
配置git
配置maven
点击 应用,保存 。
3、下载相应插件
(1)公共部分
点击: Manage Jenkins
点击: Manage Plugins
(2)下载Maven插件
新建任务的时候,需要构建 Maven
项目。此时这里没有能构建 maven
项目的插件,所以需要下载 Maven
插件
点击: Available plugins
搜索: maven
下载: Maven Integration
前面打 √ ,点击下面的 Install without restart
,安装不重启。即可出现安装界面。
等待安装…
安装完后,点击 新建Item ,就会出现 构建Maven项目
(3)下载publish over ssh插件
Publish Over SSH: 插件是通过 SSH 连接其他 Linux 机器,远程传输文件及执行 Shell 命令。后期用于 jenkins
打完包后,将代码包放在 server
服务器上并且启动。
等待安装…
4、新建任务
(1)General
根据实际情况填写
(2)源码管理
a)选择 Git
b)Repository URL 填写项目 git
下载地址
会发现出现如图错误。该错误出现的原因是没有添加 凭据 ,简单来说就是需要在 Jenkins
里面添加个可以拉取 gitlab
上代码的账户。
其他的可以不用填写,然后点击 添加 即可。
在 Credentials 选择刚才添加的账户即可。报错会消失。
分支的选择,视实际情况而定。
(3)构建触发器
默认即可
(4)构建环境
暂时不选
(5)Pre Steps
构建前配置。通常用来检查原来是否启动的 jar
包。如果有启动,则备份原 jar
包,并且停掉。
springboot: 脚本参数,服务名称
脚本存放的路径,根据实际情况自行选择。
sh /root/jar/target/stopServer.sh springboot >/root/jar/target/log/stoplog.log 2>&1
点击 应用,保存 即可。
附 stopServer.sh
脚本
脚本内容根据实际情况可修改
############################################################
# 系统名称:系统名称1
# 脚本名称:stopServer.sh
# 脚本作用:停止server应用
# 脚本参数:serverName:应用名称
# serverPath:应用路径(jar保存放的路径)
# pid:应用进程id
############################################################
#!/bin/bash
# 时间戳
timestamp=`date +%Y%m%d%H%M%S`
echo "时间戳:$timestamp"
# 参数获取
serverName=$1
# 定义:应用路径(jar保存放的路径)根据实际情况修改此处修改
serverPath=/root/jar/target
# 参数空值判断
if [ -z $serverName ];
then
echo "错误:[serverName] is null! please check it..."
exit -1 # 状态码不为0(成功)时,Jenkins构建时,会报不稳定。可以忽略。
fi
# 历史数据处理(备份)
if [ ! -e "$serverPath/backup/" ];
then
mkdir $serverPath/backup
echo "提示:[$serverPath/backup] Folder created successfully..."
fi
# serverName文件个数
serverSum=`ls -l $serverPath|grep "$serverName"|wc -l`
if [ $serverSum -gt 0 ];
then
mv $serverPath/$serverName*.jar $serverPath/backup/
echo "提示:[$serverName] The historical data is backed up successfully..."
fi
# 获取正在运行的serverName应用jar包pid
pid=`ps -ef | grep $serverName | grep 'java -jar' | awk '{printf $2}'`
# serverName应用进程pid空值判断,为空则一直处于停止状态,不为空则停止。
if [ -z "$pid" ]; # 加上“”,不然为null时回报‘参数太多’的错误
then
echo "提示:[$serverName] The application is currently stopped..."
exit 0
else
echo "提示:[$serverName]:进程id为 $pid"
kill -9 $pid
echo "提示:[$serverName] The application stopped successfully..."
fi
# serverName应用进程pid停止后,检查是否停止成功。(-w:精确匹配)
check=`ps -ef | grep -w $pid | grep java`
if [ -z "$check" ]; # 加上“”,不然为null时回报‘参数太多’的错误
then
echo "提示:[$serverName进程id:$pid] The application process is stopped successfully...."
exit 0
else
echo "提示:[$serverName进程id:$pid] The application process is failed ..."
fi
(6)Build
(7)Post Steps
注意:
SSH Server
里面是空的,所以我们先提前配置个目标服务器。
点击: Manage Jenkins --> Configure System
找到: Publish over SSH --> SSH Servers
点击: 新增
其他不用修改,移动的最下方,测试是否连接成功。连接成功后,点击 应用 , 保存 即可。
此时此刻,回到 Post Steps 出,SSH Server ,不再是空。
springboot: 脚本参数,服务名称
脚本存放的路径,根据实际情况自行选择。
sh /root/jar/target/startServer.sh springboot >/root/jar/target/log/startlog.log 2>&1
点击 应用,保存 即可。
附 stopServer.sh
脚本
脚本内容根据实际情况可修改
############################################################
# 系统名称:系统名称1
# 脚本名称:startServer.sh
# 脚本作用:启动server应用
# 脚本参数:serverName:应用名称
# serverPath:应用路径(jar保存放的路径)
# jdkPath:jdk安装路径
# pid:应用进程id
############################################################
#!/bin/bash
# 时间戳
timestamp=`date +%Y%m%d%H%M%S`
echo "时间戳:$timestamp"
# 参数获取
serverName=$1
# jdk安装路径(根据实际情况修改此处修改)
jdkPath=/opt/jdk/jdk-17.0.6/bin
# 定义:应用路径(jar保存放的路径,根据实际情况修改此处修改)
serverPath=/root/jar/target
# 启动server应用
nohup $jdkPath/java -jar $serverPath/$serverName*.jar >$serverPath/log/$serverName-startlog.log 2>&1 &
# 获取正在运行的serverName应用jar包pid
pid=`ps -ef | grep $serverName | grep 'java -jar' | awk '{printf $2}'`
# serverName应用进程pid空值判断,为空则启动失败,不为空则启动成功。
if [ -z "$pid" ];
then
echo "提示:[$serverName] The application failed to start..."
exit -1
else
echo "提示:[$serverName]:进程id为 $pid"
echo "提示:[$serverName] The application starts successfully..."
fi
点击 应用,保存
4、构建项目
此时会自动跳转的该页面
回到主页面,点击 开始构建
点击左下角的 项目名称 ,即可进入如下界面。进入 控制台输出 ,可以查看构建日志。
此时显示构建成功,此时这个路径下会生成我们构建的项目jar包。
检查一下,该路径下是否生成该jar包,检查生成了。
同时,目标服务器的jar包也传输过来了。
检查是否启动成功:
显示 springboot-0.0.1-SNAPSHOT.jar
包的进程信息
页面访问
到此Jenkins配置完成。如上步骤只是基础使用教程。足够平时开发使用。
此刻,即可实现 idea
提交代码到 gitlab
上, Jenkins
拉去 gitlab
最新代码,部署到应用服务器上并启动的操作。