Jenkins入门

目录

1.下载安装

2.更改配置

3.启动Jenkins 

3.1 重启jenkins服务 

4.访问jenkins

5.添加全局凭证

5.1 新建项目

5.2 配置构建信息

5.2.1 配置git仓库和凭证

5.2.2 配置凭证

6 Maven项目构建

6.1 创建任务名选择maven项目

6.2 添加maven插件

7. 项目构建

7.1 构建项目常见问题

7.1.1 解析pom文件失败

7.1.2 pom父项目路径错误

7.1.3 重新拉取时清除包失败

7.1.4 权限不足

7.1.5 无法解析镜像仓库的pom文件

8.项目部署

8.1 添加执行shell

8.2 编写可执行的shell脚本 

8.2.1 restart-service.sh

8.2.2 shutdown.sh

8.2.3 start.sh

8.3 项目部署

8.3.1 启动脚本无法后台运行

8.3.2 可后台运行脚本

8.4 访问测试

8.4.1 curl命令测试

9.服务节点管理

9.1 添加服务节点

10.创建流水线

10.1 Blue Ocean插件

11.忘记密码怎么办

11.1 查看配置文件


1.下载安装

通过官方文档下载好之后更改配置

这里完全可以参照官网

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum upgrade
yum install epel-release java-11-openjdk-devel
yum install jenkins
systemctl daemon-reload

2.更改配置

这里主要更改这个 /etc/sysconfig/jenkins文件

这里可以修改jenkins home 和端口号,修改jenkins home 路径后后方便日志查看

/etc/init.d/jenkins 添加jdk安装路径 (也可以不用更改)

3.启动Jenkins 

# systemctl daemon-reload

# systemctl start jenkins.service          //启动jenkins

# systemctl enable jenkins.service       //设置jenkins开机启动 

# systemctl stop jenkins.service           //关闭jenkins 

# systemctl status jenkins.service         //查看jenkins的状态

原文链接:https://blog.csdn.net/finghting321/article/details/108616750

3.1 重启jenkins服务 

在浏览器地址加restart

关闭jenkins 加exit

重新加载配置信息加 reload

4.访问jenkins

http:ip/端口号

 

 安装失败可以选择重试,一般多试几次就好了...

 

原文参考:Linux下Jenkins 安装与配置_Map的博客-CSDN博客_jenkins安装与配置 linux

Jenkins 持续集成综合实战_kefeng.wang 的博客-CSDN博客_jenkins持续集成

官方文档:Linuxhttps://www.jenkins.io/doc/book/installing/linux/#red-hat-centos

5.添加全局凭证

5.1 新建项目

5.2 配置构建信息

5.2.1 配置git仓库和凭证

注意:

1.在服务器需要安装 Git

2.此处如果没有配置凭证构建会失败,因为没有权限拉取项目

 不配置凭证无法拉取git仓库项目的错误输出

5.2.2 配置凭证

 

 

 

在这里配置好用户名和密码,添加描述

 这样在项目中添加git仓库时候就可以使用这个凭据,重新构建发现已经成功

 

 构建成功后可以看到项目已经被拉取到workspace目录

查看项目分支

6 Maven项目构建

6.1 创建任务名选择maven项目

注意: 如果没有红色方框的选项可以参考下文添加maven插件

6.2 添加maven插件

系统管理--> 插件管理-->可选插件

 

 搜索框输入maven将会出现下面插件点击选择安装

原文参考:Jenkins 中创建项目时没有Maven项目怎么办 - 支照 - 博客园

7. 项目构建

之前已经创建过项目,不再做过多的记录

我的视图-->点击视图名称

 

 构建了21次终于成功了,下面将记录出现的问题和解决方法

7.1 构建项目常见问题

7.1.1 解析pom文件失败

 这个问题的出现是因为 spring-boot-maven-plugin 没有指定对应的版本

指定最新的版本之后重新尝试问题解决

7.1.2 pom父项目路径错误

 

7.1.3 重新拉取时清除包失败

由于前面的步骤是我手动在服务器拉取最新包,而且使用的是root用户,导致拉取的jar文件也是root组的,导致jenkins用户无法执行清除操作

 这里可以手动在服务器删除相应文件然后重试

7.1.4 权限不足

jenkins会复制项目jar包到maven目录

但是maven本地仓库repo目录所属用户和用户组都是root,并且对其他用户的权限是不可写入

解决方法:编辑vim /etc/sysconfig/jenkins 更改 JENKINS_USER用户为root 

vim /etc/sysconfig/jenkins

7.1.5 无法解析镜像仓库的pom文件

 之前因为拉取速度较慢,配置了阿里镜像,后来删除配置的镜像重新拉取问题解决

8.项目部署

8.1 添加执行shell

8.2 编写可执行的shell脚本 

echo "start deploy."
TAR_FILE_PATHS=/data/jenkins/workspace/test-maven02/target/delivery-ocpx-0.0.1-SNAPSHOT.jar
SHELL_PATH=/data/jenkins
sh ${SHELL_PATH}/restart-service.sh ${TAR_FILE_PATHS}

其中用到了三个自己编写的脚本 readme.md

# restart-service.sh 重启服务脚本

 用法:sh restart-service.sh [path.file_name]
 示例:sh restart-service.sh /data/jenkins/workspace/test-maven02/target/delivery-ocpx-0.0.1-SNAPSHOT.jar


# shutdown.sh 关闭服务脚本

 用法:sh shutdown.sh [file_name]
 示例:sh shutdown.sh delivery-ocpx-0.0.1-SNAPSHOT.jar


# start.sh 启动服务脚本

 用法:sh start.sh [path.file_name]
 示例:sh start.sh /data/jenkins/workspace/test-maven02/target/delivery-ocpx-0.0.1-SNAPSHOT.jar

8.2.1 restart-service.sh

echo "########################### well restart service! ########################"

path=${1%/*}
file=${1##*/}

echo "path:" ${path}
echo "file:" ${file}

sh /data/jenkins/shutdown.sh ${file}

sh /data/jenkins/start.sh $1

echo "########################### restart service end! ########################"

8.2.2 shutdown.sh

# 停止服务

service_name=$1

echo "########################### well stop ${service_name} service! ########################"
echo "service_name:" ${service_name}

pcmd="ps -ef |grep ${service_name}|grep -v "grep" | head -n1 | awk '{printf("%d/n"), $2}' | awk -F/ '{printf("%d"), $1}'"
echo "pcmd:" ${pcmd}

port=${pcmd}
echo "port:" ${port}

kill -9 ${port}


echo "########################### ${service_name} service is shutdown! ########################"

8.2.3 start.sh

# 启动服务
echo "########################### well start service! ########################"

log_file=${1%.*}.log
file_name=${1##*/}

echo "log_file:" ${log_file}
echo "file_name:" ${file_name}

scmd="nohup java -jar ${1} > ${log_file}  2>&1 &"
echo "${scmd}"

${scmd}

echo "########################### start service end! ########################"

三个文件存放在jenkins根目录下,建议将权限更改为755 

8.3 项目部署

点击 立即构建

 

 此时项目已经正常启动了

8.3.1 启动脚本无法后台运行

虽然项目正常构建并且正常运行,但是项目一直处于正在构建的状态

问题原因:Jenkins执行shell是Jenkins来将你填写的shell脚本语句在部署的机器上执行,实际上就是Jenkins启动了子进程到部署的机器上执行命令行,所以当最后一行命令执行结束后,Jenkins会杀掉所有在此过程中创建的子进程,如果这里有需要后台运行的,或者挂起的任务时,在Jenkins执行结束后,这些挂起的或后台的任务都会被杀掉

解决方法:

        1.加入环境变量BUILD_ID=DONTKILLME

        2.启动参数加入 -Dhudson.util.ProcessTree.disable=true

8.3.2 可后台运行脚本

参考如下:可以拆分多个脚本放在服务器

#!/bin/bash
echo "start deploy."
BUILD_ID=DONTKILLME

TAR_FILE_PATHS=/data/jenkins/workspace/test-maven02/target/delivery-ocpx-0.0.1-SNAPSHOT.jar
OCPX_SERVICE_NAME=delivery-ocpx-0.0.1-SNAPSHOT.jar

pid=`ps x|grep ${OCPX_SERVICE_NAME}|grep java|grep -v grep |awk '{printf($1)}'`
echo "pid:${pid}"

if [ -z "${pid}" ]
then
 echo "service do not start!"
else
 echo "well kill service pid:${pid}"
 kill -9  ${pid}
fi


log_file=${TAR_FILE_PATHS/.jar/.log}
# source /etc/profile
nohup java -Dhudson.util.ProcessTree.disable=true -jar ${TAR_FILE_PATHS} > ${log_file} 2>&1 &

或者这样使用 

sh "BUILD_ID=DONTKILLME nohup java -jar ${TAR_FILE_PATHS} > ${log_file} 2>&1 &"

还可以这样

s_cmd="BUILD_ID=dontKillMe nohup java -jar ${TAR_FILE_PATHS} > ${log_file} 2>&1 &"
echo "${s_cmd}"
eval ${s_cmd}

 也可以使用JENKINS_NODE_COOKIE=dontKillMe (没试过)

原文参考:Jenkins踩坑之旅:nohup后台执行shell命令_qq_34412985的博客-CSDN博客_jenkins 执行nohup
Jenkins构建、发布后台Maven项目时无法后台执行或无法启动的问题(亲测好用)_Aubrey.J的博客-CSDN博客

8.4 访问测试

8.4.1 curl命令测试

curl localhost:9527/version

 返回正常的版本信息说明服务正常启动了

9.服务节点管理

9.1 添加服务节点

系统管理-->节点管理-->新建节点

 

 点击保存,启动代理就会自动连接上去,可以查看日志信息

日志中可以看到这样一段话 

在节点服务器中可以看到相应的文件 

 

 但是此时服务并没有启动

搜索资料发现大家都在用Publish Over SSH ,但是现在这个插件已经被禁了https://www.jenkins.io/security/advisory/2022-01-12

参考原文:jenkins插件Publish Over SSH因安全问题下架 - 爱码网

10.创建流水线

10.1 Blue Ocean插件

前面有安装插件记录这里不做过多展示

 打开Blue Ocean

 选择Git代码仓库,选择SSH方式连接

这里连接Git远程仓库有一个坑,选择HTTPS方式很难弄,应该不是我密码输错了

 在git远程仓库中将公钥添加进去,点击创建流水线

 

 官网参考:Blue Ocean

11.忘记密码怎么办

有时候太久没有登陆jenkins之后需要登陆,但是忘了密码

11.1 查看配置文件

找到jenkins目录,下面有个users目录

# 我的根目录是 /data/jenkins
less /data/jenkins/users/users.xml

可以看到用户信息,帮助唤醒部分记忆,但是需要对用户名密码记忆深刻,当然很多人是真的忘了,所以需要换种方法

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值