【Jenkins】jenkins的配置以及使用

项目中用到了jenkins来做CI/CD,系统是别的同事搭建的,最近刚好不太忙就自己也搭一个玩玩,下面主要来记录配置的过程以及遇到的问题。

1、插件的安装

jenkins使用各个模块的功能时,需要安装对应的插件,一般需要下载的plugin包括以下几个,使用时根据需要安装就行。
在这里插入图片描述
插件下载安装的方式主要有两种:
第一种:在jenkins的插件管理中直接搜索需要的插件,进行安装即可,将升级站点地址改为:http://mirror.esuni.jp/jenkins/updates/update-center.json,(替换成国内的镜像提高下载速度)点击提交,然后在"可选插件"项下选择插件进行安装。
在这里插入图片描述
第二种:在官网搜索插件,然后下载,最后通过上传插件的形式来进行插件的安装,如下图:
在这里插入图片描述
在这里插入图片描述
选择需要的版本进行下载即可。
在这里插入图片描述

2、基础配置

安装完成需要的插件以后,对jenkins进行相应的配置,在主页选择"系统管理";
在这里插入图片描述
然后选择"全局工具配置",
在这里插入图片描述
配置JDK,GIt,Maven,在配置之前要进行JDK,GIt,Maven,关于安装的过程这里不介绍,需要了解的自己在网上查就好,网上有很多博文。
(1) 配置git
在这里插入图片描述
"Path to Git executable"中配置git的位置,如果不知道的话输入以下shell命令即可查询:

which git

在这里插入图片描述
(2) 配置JDK,找到jdk的位置进行配置即可;
在这里插入图片描述
(3)配置maven,填写maven的安装路径
在这里插入图片描述
(3)Publish over SSH,配置完ssh以后就可以实现自动部署项目到指定的服务器,选择"系统管理"——》“系统配置”,然后进行如下配置,配置完成以后,点击"Test Configuration"如果返回success则表示配置成功:
在这里插入图片描述

这里的 Remote Directory ,就是部署到服务器的目标地址,在项目自动部署中,配置post steps时需要配置的Remote Directory 为这里配置的路径(root/code)的子目录。

3、项目自动部署

点击"新建任务",选择构建一个maven项目,
在这里插入图片描述
在这里插入图片描述
源码管理
在这里插入图片描述
在这里插入图片描述

构建触发器,在这里需要将下图中的webhook URL配置到gitlab上
在这里插入图片描述

在gitlab上配置webhook,输入连接,然后点击"Add webHook",即可
在这里插入图片描述

在这个过程中可能会出现的问题,Requests to the local network are not allowed
解决办法:
首先用管理员登录gitlab,然后执行以下三步:
在这里插入图片描述

扫描二维码关注公众号,回复: 9592250 查看本文章

构建环境,让jenkins配置时打印日志;然后配置build
在这里插入图片描述
部署文件到指定的服务器
在这里插入图片描述

这里需要注意,在配置Source files时应该用相对位置,不能用绝对位置,如我生成的jar包的位置在/root/.jenkins/workspace/springboot/target/.jar,这里只能配target/.jar

#!/bin/bash
export JAVA_HOME=/root/JDK/jdk1.8.0_211/
echo ${JAVA_HOME}
pp=$(ps aux|grep springboot_test-0.0.1-SNAPSHOT|grep -v grep|awk '{print $2}')
echo "$pp"
if [ -n "$pid"]
then
	kill -9 $pp
fi
cd ..
cd code
${JAVA_HOME}/bin/java -jar springboot_test-0.0.1-SNAPSHOT.jar
echo "execute success"

构建配置,构建完成以后发送邮件到指定邮箱,如果有多个用英文逗号隔开
在这里插入图片描述

4、配置邮箱系统

进入到主面板,选择"系统管理"——》“系统配置”,首先配置如下内容:
在这里插入图片描述
然后进行smtp协议的配置,这里的密码应该使用授权码,而不是邮箱密码:
在这里插入图片描述
这样配置完以后就可以正常的进行发邮件的功能了。

这里需要注意,系统管理员的邮箱要与smtp协议配置过程中使用的邮箱一致才行。

完成以上的内容,就可以实现工程的自动打包部署了。

4.1 自定义格式邮件配置

需要首先安装插件Email Extension Plugin,
在这里插入图片描述
然后在系统管理中进行如下配置:
在这里插入图片描述
在这里插入图片描述
上图的默认收件人邮箱可以添加多人,中间用英文半角逗号隔开即可。

在这里插入图片描述
在这里插入图片描述
参考博文:环境部署(八):jenkins配置邮件通知

5、遇到的问题

(1) ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after XXX ms

解决办法:将系统的超时时间设长一点(系统默认超时时间为120000ms),如下图:
在这里插入图片描述
(2)执行shell脚本时,当执行到java -jar ***这一句时,提示java not found。

解决办法: 在shell脚本文件中,加入以下内容:

export JAVA_HOME=/root/JDK/jdk1.8.0_211/ #JDK安装的位置
echo ${JAVA_HOME}  #可省略
${JAVA_HOME}/bin/java -jar springboot_test-0.0.1-SNAPSHOT.jar

(3)执行shell脚本,出现Syntax Error “elif” unexpected (expecting then)

解决办法: 在每一次编辑完shell文件以后,最好执行一次以下命令,解决文件存在的编码问题,:

sed -i 's/\r//' filename   # eg: sed -i 's/\r//' auto_deploy.sh

(4) 在shell脚本中使用java -jar ** .jar命令来启动程序时,jenkins执行完脚本不退出,一直在执行最后会出现超时提示,构建的结果为UBTABLE

解决办法:在shell脚本中,使用nohup java -jar **.jar&的形式来启动,同时在jenkins的配置中也要使用nohup sh xx.sh的形式来启动脚本,以及勾选Exec in pty,如下图:
在这里插入图片描述
在这里插入图片描述

参考文章:
gitlab+jenkins使用构建打包
执行shell脚本,出现Syntax Error “elif” unexpected (expecting then)
SSH: Transferred 0 file(s) 解决

发布了66 篇原创文章 · 获赞 6 · 访问量 9395

猜你喜欢

转载自blog.csdn.net/qgnczmnmn/article/details/103989556