1、安装包
官网地址:Jenkins下载地址
备注:2.3463版本基础要求:Jdk11或者17
2、安装过程
(67条消息) Windows 10 安装Jenkins 图文教程_技术宅星云的博客-CSDN博客_win10安装jenkins
3、简单的配置
3.1、配置本地的Git
3.2、创建一个访问仓库的凭证
3.3、配置本地的Maven
4、将jar包发布到远程服务器,并自动启动jar包
4.1、安装Publish Over SSH插件
4.2、配置远程服务器凭证
找到SSH Server点击新增
点击下面的高级,出现如下,然后勾选Use password authentication, or use a different key
就会出现Passphrase / Password,输入密码就好,然后点击应用和保存
4.3、配置远程服务
SHH Serve Name就是上一步自己配置的远程服务器凭证名称
配置发布jar包的参数
Transfers Set Source files配置,根据工作空间的jar包路径来配置
Remove prefix参数的作用,如果不配置这个参数,jar就会发布到/root/usr/local/jenkinswork/demo-jenkins/target目录下面。
Remote directory参数就是jar发布到远程服务器的地址(而且是在/root目录下)
Exec command参数就是发布成功后执行的命令,需要在执行的命令前面加上source /etc/profile,要不然命令不会执行。
5、配置杀死之前运行的进程
5.1、配置Pre step,表示项目Build之前执行的操作
5.2、脚本
#!/bin/bash
source /etc/profile
BUILD_ID=dontKillMe
#删除jar包
#获取输入参数
appname=$1
if [ -z $1 ];
then
echo "Please input jar name"
else
#获取运行jar的pid
pid=`ps -ef|grep $1 |grep 'java -jar' |awk '{print $2}'`
if [ -z $pid ];
then
echo "$appname not start"
else
kill -9 $pid
echo "$appname pid:$pid stoping"
check=`ps -ef|grep -w $pid |grep 'java -jar'`
if [ -z $check ];
then
rm -rf /root/usr
echo "$appname is stop"
else
echo "$appname stop failed"
fi
fi
fi
6、构建触发器
6.1、安装Build Authorization Token Root Plugin插件
解决访问权限的问题
6.2创建触发器
自定义一个token
6.3触发链接地址
baseUrl+buildByToken/build?job=任务名称&token=上图中自定义token
http://127.0.0.1:909/buildByToken/build?job=first&token=123
7、定时构建
Jenkins cron表达式
标准cron
Jenkins cron不是标准的cron表达式
第一个 * 表示每个小时的第几分钟,取值0~59
H * * * *
H:每小时执行一次
第二颗 * 表示小时,取值0~23
* 15 * * * 表示每天下午3点
* 1 * * * 表示每天凌晨1点
第三颗 * 表示一个月的第几天,取值1~31
* 1 5 * * 表示每月5日凌晨1点
第四颗 * 表示第几月,取值1~12
* 15 5 1 * 表示每年几月执行
第五颗 * 表示一周中的第几天,取值0~7,其中0和7代表的都是周日
“/”
表示每隔多长时间,比如 */10 * * * * 表示 每隔10分钟
“H”
hash散列值,以job名取值,获取到以job名为入参的唯一值,相同名称值也相同,这个偏移量会和实际时间相加,获得一个真实的运行时间
意义在于:不同的项目在不同的时间运行,即使配置的值是一样的,比如 都是15 * * * * ,表示每个小时的第15分钟开始执行任务,那么会造成同一时间内在Jenkins中启动很多job,换成H/15 * * * *,那么在首次启动任务时,会有随机值参与进来,有的会在17分钟启动 有的会在19分钟启动,随后的启动时间也是这个值。这样就能错开相同cron值的任务执行了。
H的值也可以设置范围
H * * * *表示一小时内的任意时间
*/10 * * * *每10分钟
H/10 * * * *每10分钟,可能是7,17,27,起始时间hash,步长不变
45 3 * * 1-6 每个周一至周六,凌晨3点45 执行1次
45 3-5 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨4点45,凌晨5点45 各执行1次
H(40-48) 3-5 * * 1-6 在40~48之间取值 其他同上
45 3-5/2 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨5点45 各执行1次
45 0-6/2 * * 1-6 * * 1-6 0点开始,每间隔2小时执行一次 0:45、2:45、4:45
8、邮件服务
8.1、配置系统管理员邮箱
8.2、配置Extended E-mail Notification
如没有没有凭据则需要创建一个,并且密码是认证码,不是邮箱登录密码
配置邮件内容
9、将jar包打包成镜像
9.1、编写Dockerfile
- EXPOSE:表示镜像端口
- WORKDIR:表示工作目录
- ADD:表示将jar包(目标jar的位置是相对于WORKDIR)复制到哪里
- ENTRYOPINT:执行的命令
FROM openjdk:11
EXPOSE 8080
WORKDIR /root/dockerwork
ADD jarfile/demo*.jar /root/dockerwork/app.jar
ENTRYPOINT ["java","-jar","/root/dockerwork/app.jar"]
9.2、打包镜像
该命令在Dockerfile所在目录执行
docker build -t demo .
9.3、运行镜像
docker run -d --name demo -p 8080:8080 demo