jenkins 遷移踩坑

洛晨随风發表於2024-06-25

由於業務需要,jenkins 要從一個伺服器遷移到另一個伺服器,新的伺服器沒有任何環境,所以操作如下:

1. 使用 rsync命令先轉移所有jenkins的檔案:rsync --progress --info=progress2 -avz /home/當前的jenkins檔案地址 目標伺服器登陸使用者名稱@目標伺服器IP:/var/lib/jenkins/

2.在新的環境上安裝jenkins,本著原封不動的念頭我打算安裝jenkins支援java8版本的程式,但後來安裝好後發現遷移過來的外掛很多都不能使用了,雖然java的環境和jenkins的版本都和以前一樣,如此之呢個被迫升級到jenkins支援java11的版本,到本文寫完為止,

java11的支援到2024.9月結束,但是考慮到我們是內網使用只是對專案進行打包編譯釋出,不支援也不會產生什麼影響,所以就繼續使用2.428作為jenkins的升級版本。升級失敗的話可以參考:https://www.cnblogs.com/mazhiyong/p/17785597.html

3. 升級後,對老系統的jobs、plugins、workspace、config.xml檔案全部複製到對應的目錄下,然後重啟jenkins

sudo systemctl restart jenkins

開始解決每個元件的衝突,在

Manage Jenkins -》Plugins-》Updates 中,對 有問題的元件嘗試升級,對當前系統已經不支援或者有警報風險的元件分別進行排除4. 對git、nodejs、maven 分別進行排查如果沒有的話,安裝並且設定為環境變數,這一點根據當前公司的專案需要進行設定

5. 對第四點提供的環境變數進入到jenkins的

Manage Jenkins -》Tools

中找到對應項進行設定,這裡以jdk舉例:

其中警告部分自己判斷,如果jdk的安裝路徑正確並且存在java_home的環境變數的話可以忽略

6. 執行編譯的專案後通常是ssh協議把打包後的程式碼傳到指定的伺服器的,這時候如哦出現

java.io.IOException: No installation null found. Please define one in manager Jenkins.
的錯誤,就去專案的配置下重新確認一下nodejs是否有選擇當前安裝的版本。然後重新儲存一下,問題消失

7.還有要注意的一點是需要判斷ssh配置的ip是否和jenkins的地址可以通,IP之間出入都可以互通的話再去執行下面步驟,如果出現了java報錯。ERROR: Failed to find configuration named [] check the global configuration,去檢查一下全域性的ssh配置和當前專案是否有配置ssh,如果遷移後發現有配置,那就重新儲存一下專案然後執行build,問題解決