CI&CD落地實踐3-Jenkins版本升級與踩坑實踐
背景
當前環境:
- 操作系統: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版本要求。