升級Jenkins從2.263.3到2.440.2

升級Jenkins從2.263.3到2.440.2

###任何一次升級前,先做整體備份,同時最好對plugins目錄和config.xml單獨備份。
###對于任何一次插件安裝,務必安裝前先備份當前的plugins目錄,這是血的教訓。

升級過程

1、 升級2.263.3到2.263.4:

這個過程主要解決role-strategy 插件的兼容性問題;
你會遇到問題:
SEVERE jenkins.model.Jenkins#save: An attempt to save Jenkins’’ global configuration before it has been loaded has been made during milestone Configuration for all jobs updated. This is indicative of a bug in the caller and may lead to full or partial loss of configuration. java.lang.IllegalStateException: call trace at jenkins.model.Jenkins.save(Jenkins.java:3356) at jenkins.model.Jenkins.saveQuietly(Jenkins.java:3384) at jenkins.model.Jenkins.setSecurityRealm(Jenkins.java:2636) at jenkins.model.Jenkins 16. r u n ( J e n k i n s . j a v a : 3328 ) a t o r g . j v n e t . h u d s o n . r e a c t o r . T a s k G r a p h B u i l d e r 16.run(Jenkins.java:3328) at org.jvnet.hudson.reactor.TaskGraphBuilder 16.run(Jenkins.java:3328)atorg.jvnet.hudson.reactor.TaskGraphBuilderTaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1128) at org.jvnet.hudson.reactor.Reactor 2. r u n ( R e a c t o r . j a v a : 214 ) a t o r g . j v n e t . h u d s o n . r e a c t o r . R e a c t o r 2.run(Reactor.java:214) at org.jvnet.hudson.reactor.Reactor 2.run(Reactor.java:214)atorg.jvnet.hudson.reactor.ReactorNode.run(Reactor.java:117) at jenkins.security.ImpersonatingExecutorService 1. r u n ( I m p e r s o n a t i n g E x e c u t o r S e r v i c e . j a v a : 68 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( T h r e a d P o o l E x e c u t o r . j a v a : 1149 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r 1.run(ImpersonatingExecutorService.java:68) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor 1.run(ImpersonatingExecutorService.java:68)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

解決方法:
Update to https://github.com/jenkinsci/role-strategy-plugin/releases/tag/role-strategy-3.1 and you should be OK.

2、升級2.263.4到2.426.3:

首先,需要升級JDK8到JDK17;
其次,跨了這么多版本,主要是因為plugins,如果不直接一步到位最新的LTS版本,需要一個個的去驗證出問題的各個plugin,工作量太大了。
升級到最新的LTS版本,可以一鍵使用最新的plugins,然后再通過控制臺啟動日志,找到不兼容的部分插件,然后逐個去適配。
plugins地址為:https://plugins.jenkins.io/ui/search/
因為即便升級到了最新的LTS版本,仍然有部分插件不適配,就需要到plugins庫中找到相應的版本才可以。
再次,如果jenkins配置了slave,所有的slave機器都需要安裝JDK17,并刪除remoting.jar,然后重新建立連接。
最后,最大的問題在于,如果java代碼仍然使用JDK8,如果job中是使用maven插件來編譯項目,則這些job將不可用,原因在于jenkins服務使用了最新的JDK17來啟動,插件也都應該是JDK17的,所以只能將maven插件job換成freestyle的項目,使用shell命令行來構建java項目。
同理,對于與JDK 版本相關的插件,都存在類似的不兼容問題,比如fortify。

3、升級2.426.3到2.440.2.

這個基本直接升級就可以了。

4、升級2.440.2到2.440.3

這里又涉及了gradle的兼容問題,如果項目代碼使用早期版本的gradle,未升級gradle,則原來gradle插件配置將不可用。

升級總結

Jenkins升級,有幾個問題要注意:
1、升級版本問題:
要考慮項目實際使用的JDK版本,如果你也是JDK8的項目,升級到最新的LTS版本,就會面臨我提到的上面的問題。

不升級到最新版本,就會面臨所有不兼容插件的適配問題,比如升級到指定版本,通過控制臺啟動日志 ,找到不兼容插件,然后逐個找到適合當前版本,每個插件可能需要適配很多次。
2、備份:
jenkins最重要的就是插件,插件更新和升級前,務必做好備份。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20753.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

15-通過JS代碼處理窗口滾動條

selenium并不是萬能的,頁面上有些操作無法實現時,就需要借助JS代碼來完成了。selenium提供了一個方法:execute_script(),可以執行JS腳本代碼。 比如:當頁面上的元素超過一屏后,想操作屏幕下方的元素&#x…

MyBatis查詢功能

MyBatis的各種查詢功能 1、若查詢出的數據只有一條 (1)可以通過實體類對象或者集合接收 (2)可以通過List集合接收 (3)可以通過map集合接收 結果:{password123456, sex女, id8, age22, email1234qq.com, usernameadmin4} 2、若查詢出來的數據有…

[leetcode hot 150]第一百零八題,將有序數組轉換為二叉搜索樹

題目:給你一個整數數組 nums ,其中元素已經按 升序 排列,請你將其轉換為一棵 平衡二叉搜索樹。 給定一個有序的整數數組,我們需要構建一棵平衡的二叉搜索樹。平衡二叉樹是指任意一個節點的左右子樹的高度差不超過1。 由于給定的數組是有序的…

阿里云計算學習筆記(一)

運維管理 運維管理(Operation and Maintenance Management, 簡稱O&M管理)是指通過科學的管理方法和技術手段,對IT系統和基礎設施進行監控、維護、優化和保障,以確保系統的高可用性、穩定性、安全性和性能。運維管理涵蓋了硬件…

Prime1 - 提權的另一種解法,徹底搞懂OpenSSL解密滲透提權,超強思路版。

提權枚舉 現在我們直接從低權限用戶開始;我們先按照提權步驟,簡單的系統枚舉 雖然我們知道可以利用系統版本低進行內核提權,內核提權雖然比較快比較方便,但也比較暴力,缺點非常明顯;很容易導致系統服務中…

【云原生】Kubernetes----POD控制器

目錄 引言 一、Pod控制器概述 二、Pod控制器的種類 (一)ReplicaSet (二)Deployment (三)StatefulSet (四)DaemonSet (五)Job 三、使用POD控制器 &a…

【Seafile】Seafile容器版文件刪除后存儲空間不釋放問題解決

Seafile是一款非常優秀的網盤系統,我們可以根據官方文檔,在本地虛擬機研究Seafile免費版的安裝和使用,安裝建議采用使用docker容器的方式。 不過在使用過程中,剛接觸的小伙伴可能會遇到這樣的問題: 刪除網盤里面的文…

數據賦能(106)——方法論:描述模式與AI——批量處理

在一系列相似的主題內容進行編寫時,可以采用批處理的方式。主要步驟如下: 1、確定主題內容模式。如:各個主題的概述中,包括如下內容模式項目:工作主要目的、工作重要性、工作核心內容、工作本質 2、確定模式的各項內…

C++設計模式-狀態模式

文章目錄 28. 狀態模式 運行在VS2022,x86,Debug下。 28. 狀態模式 狀態模式讓一個對象的行為隨著內部狀態的改變而改變,而該對象也像換了類一樣。應用:如在游戲開發中,游戲有不同場景,如主菜單、開始、戰斗…

在leafet上畫圓、多邊形、線、矩形

在leaflet上畫圓、多邊形、線、矩形 <template><div id"map" class"map"></div> </template><script> import L from leaflet; export default {data () {return {myGroup: ,};},mounted () {this.initMaps()this.huizhiro…

Houdini的PythonScript基本使用

前言 Houdini內置了Python腳本和相應的編輯器, 很多時候想靈活的制作各種Houdini工具, 基本是必須用到 Python。Houdini官方的python提供了非常完善的接口, 比如可以創建各種節點&#xff0c;連接各種節點&#xff0c;遍歷節點各種數據&#xff0c;遍歷節點參數等等。 Houdin…

Spring中Bean的生命周期詳解

目錄 Bean的定義和作用Bean的生命周期概述Bean實例化階段依賴注入階段初始化階段Bean的使用銷毀階段完整的Bean生命周期流程示例代碼總結 Bean的定義和作用 在Spring框架中&#xff0c;Bean是指由Spring IoC容器管理的Java對象。Bean是構建Spring應用程序的基本單元&#xf…

word避免畫質畫質模糊方法

問題描述&#xff1a; ??近期寫文檔時會高頻率貼圖&#xff0c;粘圖過程中發現Word會自動壓縮圖片畫質&#xff0c;而且壓縮得很嚴重&#xff0c;下面是一幅圖被壓縮前后的畫質對比 &#xff08;圖片壓縮前&#xff09; &#xff08;圖片壓縮后&#xff09; 解決方案&#x…

基于JSP的九宮格日志網站

你好呀&#xff0c;我是學長貓哥&#xff01;如果有需求可以文末加我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;JSP技術 工具&#xff1a;瀏覽器/服務器&#xff08;B/S&#xff09;結構 系統展示 首頁 管理員功能模塊 用戶功能模塊 摘要 本…

GPT-4o VS GPT-3.5 完勝

前言&#xff1a; 最近&#xff0c;GPT-4o已經限時免費開放了&#xff0c;試了一下&#xff0c;然后&#xff0c;說我的時間到了&#xff0c;然后&#xff0c;有給我轉到3.5&#xff0c;正好遇到一個問題做一下對吧&#xff0c;感覺4O完勝啊。3.5還是很好胡謅&#xff0c;也就…

[Algorithm][動態規劃][子序列問題][最長定差子序列][最長的斐波那契子序列的長度]詳細講解

目錄 1.最長定差子序列1.題目鏈接2.算法原理詳解3.代碼實現 2.最長的斐波那契子序列的長度1.題目鏈接2.算法原理詳解3.代碼實現 1.最長定差子序列 1.題目鏈接 最長定差子序列 2.算法原理詳解 思路&#xff1a; 確定狀態表示 -> dp[i]的含義 以i位置元素為結尾的所有子序列…

Python知識點3---條件判斷語句

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的條件判斷語句和其他的語言有些不一樣&#xff0c;它只有if語…

【從加載數據庫驅動包,理解java SPI】

SPI&#xff08;Service Provider Interface&#xff09; 從1.6引入&#xff0c;基于ClassLoader 來加載并發現服務的機制 對于msyql驅動 引入依賴 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><v…

11.2 選擇排序

目錄 11.2 選擇排序 11.2.1 算法特性 11.2 選擇排序 選擇排序&#xff08;selection sort&#xff09;的工作原理非常簡單&#xff1a;開啟一個循環&#xff0c;每輪從未排序區間選擇最小的元素&#xff0c;將其放到已排序區間的末尾。 設數組的長度為 &#x1d45b;…

華東師范大學研究團隊《Ecology Letters 》揭示植物如何改變其物候以響應全球變化

自工業革命以來&#xff0c;人類活動導致多種環境因子同時發生變化&#xff0c;包括氣候變暖、降水模式改變、氮沉降增加和大氣CO2升高。這些變化預計會影響植物生命周期事件的季節時序—植物物候&#xff08;Nature Reviews Earth & Environment | 傅伯杰院士團隊發文闡述…