CI&CD落地实践3-Jenkins版本升级与踩坑实践

开发 前端
Jenkins从 6 月 28 日发布的 Jenkins 2.357 和9 月 LTS 版本开始,Jenkins 最低需要 Java 11,所以jdk最低要安装到11。

背景

当前环境:

  • 操作系统:Linux(CentOS-7.9);
  • Java版本:Java8;
  • Jenkins版本:2.328;

升级原因:很多插件都不兼容,无法使用,提示要升级版本。

一、升级Jenkins过程

1.遇到的坑1-Java版本过低

确切地说,之前是有过升级成功的经验的,步骤如下:

① 下载最新的jenkins.war包并放到
/home/apache-tomcat-9.0.43/webapps目录下;

② 重启apache-tomcat;

③ 访问Jenkins;

但是我在重启后,再次访问Jenkins遇到了如下报错:

在网上查阅后得知,Jenkins从 6 月 28 日发布的 Jenkins 2.357 和9 月 LTS 版本开始,Jenkins 最低需要 Java 11,所以jdk最低要安装到11。

2.安装JDK11

① 在liunx上可以通过如下命令安装:

yum -y install java-11-openjdk*

以上会直接自动安装jdk并配置好环境变量:

② 测试java版本,已经升级到java11:

已安装的java11在/usr/lib/jvm目录下:

3.遇到的坑2-未切换到新安装的Java

重启apache-tomcat,再次刷新Jenkins页面,还是出现前面的404报错:

通过查看Tomcat启动日志发现,Tomcat使用的java版本仍然是java8,说明新安装的java11并没有对apache-tomcat生效,因此还需要特地为apache-tomcat指定java版本。

4.指定apache-tomcat的Java版本

具体修改哪个文件,起初我也不确定,后来在这篇帖子中找到了答案:《启动 Tomcat 遇到 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 问题,已解决》

整个调用链路如下:

  • Windows:启动文件startup.sh → catalina.sh → setclasspath.sh,setclasspath.sh 里读取系统的环境变量。
  • Linux:启动文件startup.sh → catalina.sh → setclasspath.sh,setclasspath.sh 里读取系统的环境变量。

① 修改Tomcat的bin目录下的setclasspath文件

我的是Linux系统,所以只需要在Tomcat的bin目录下的setclasspath.sh文件中将java版本指定为新安装的java11就可以了

在setclasspath.sh文件最开始位置设置java相关的环境变量:

② 再次重启apache-tomcat,使用的是最新的java11

③ 重新访问Jenkins

此时再次访问Jenkins,就不会出现开头的404报错了,访问正常:

更新成功,Jenkins访问正常,界面焕然一新,版本为升级后的2.387.1版本:

后续如有新版本更新,只需替换jenkins.war包即可,除非有明确的java版本要求。

责任编辑:武晓燕 来源: 今日头条
相关推荐

2023-05-09 08:15:00

Linux节点Windows

2020-10-21 14:10:28

工具测试开发

2021-09-07 08:23:45

GitOpsCICD

2021-02-10 08:24:47

微服务CICD

2021-05-18 08:00:00

Kubernetes容器进程

2022-09-05 15:12:34

数据库GitHub开发

2020-10-12 07:00:00

JenkinsDevOps测试工具

2021-01-18 09:35:17

Travis-CGithub ActiLinux

2021-07-28 13:23:32

CICD管道安全漏洞

2021-07-28 14:37:57

WKWebviewh5网络

2019-04-18 14:06:35

MySQL分库分表数据库

2022-12-21 11:37:34

开发云原生

2023-02-20 08:11:04

2019-11-07 09:00:39

Jenkins流水线开源

2022-08-31 22:25:53

微服务架构DevOPs

2023-03-13 14:46:32

CI/CD工具软件开发

2022-08-16 08:33:06

DevOps实践

2019-07-17 14:03:44

运维DevOps实践

2018-07-13 09:38:54

2020-05-22 09:12:46

HTTP3网络协议
点赞
收藏

51CTO技术栈公众号