1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

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

1987web2023-10-06WEB开发114
背景当前环境:

背景

当前环境:

  • 操作系统: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 -yinstalljava-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版本要求。