jenkins遷移升級簡述

一、遷移背景
原有jenkins版本爲2.32.2,因爲須要安裝git parameter插件,插件安裝失敗,依賴暫時沒法解決,所以決定升級jenkins版本,升級版本爲2.121.2。
 
二、jenkins數據存儲文件列表:

config.xml:jenkins的全局權限配置以及其餘配置文件php

credentials.xml:jenkins的憑據配置文件,此處爲git服務用戶憑據配置文件;java

jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml:jenkins的publish over ssh服務器配置文件; git

jobs目錄:jenkins jobs配置目錄,包含job權限、git地址、打包方式等配置;web

users目錄:jenkins users用戶目錄,包含jenkins的用戶配置目錄。服務器

 
三、jenkins升級操做:
jenkins下載地址:https://jenkins.io
此處使用war包進行升級,部署目錄爲/usr/local/jenkins,啓動命令以下:
nohup java -Xms4096M -Xmx4096M -Dcom.sun.akuma.Daemon=daemonized -Djav.awt.headless=true -DJENKINS_HOME=/data/jenkins-2.121.2 -jar /usr/local/jenkins-2.121.2/jenkins.war \
--logfile=/usr/local/jenkins-2.121.2/jenkins.log --webroot=/usr/local/jenkins-2.121.2/war --daemon --httpPort=8081 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 &
將原jenkins數據存儲文件複製到升級以後的jenkins的家目錄下,此處新jenkins家目錄爲:/data/jenkins-2.121.2。
複製完成以後,須要重啓jenkins,相關配置才能生效。
 
四、jenkins經常使用插件列表:
在啓動jenkins時,安裝插件採用"推薦插件進行安裝",則會默認安裝一些經常使用插件,包含git、svn等相關插件。
須要額外安裝的插件列表以下:
git parameter插件:爲了方便開發參數化構建,指定分支進行構建。
phing插件:爲了實現php代碼打包。 publish over ssh插件:爲了實現ssh遠程分發代碼包,同時執行解壓等相關操做。 Extended Choice Parameter Plug
-In插件:能夠實現配置可選擇的參數,同時將該參數做爲全局變量進行使用。
Dynamic Extended Choice Parameter插件:設置動態參數

五、問題解決less

  安裝完成jdk、gradle以後,在命令行輸出$JAVA_HOME正確,可是在打包時候報錯以下:ssh

ERROR: JAVA_HOME is set to an invalid directory: /usr/local/jdk1.8.0_152
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

解決方案以下:
編輯gradle命令文件,在腳本的
#!/usr/bin/env sh行下邊新增一行:JAVA_HOME="/usr/local/java",指明JAVA_HOME目錄。
在將相關文件複製到新的jenkins服務器上,啓動完成以後,在打包項目的時候,發現控制檯輸出報如下錯誤:

ln builds/lastSuccessfulBuild /data/jenkins/jobs/javademo-v1/lastSuccessful failed java.nio.file.DirectoryNotEmptyException: /data/jenkins/jobs/javademo-v1/lastSuccessful at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) at java.nio.file.Files.deleteIfExists(Files.java:1165) at hudson.Util.createSymlink(Util.java:1351) at hudson.model.Run.createSymlink(Run.java:1954) at hudson.model.Run.updateSymlinks(Run.java:1935) at hudson.model.Run.execute(Run.java:1813) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) ln builds/lastStableBuild /data/jenkins/jobs/javademo-v1/lastStable failed java.nio.file.DirectoryNotEmptyException: /data/jenkins/jobs/javademo-v1/lastStable at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) at java.nio.file.Files.deleteIfExists(Files.java:1165) at hudson.Util.createSymlink(Util.java:1351) at hudson.model.Run.createSymlink(Run.java:1954) at hudson.model.Run.updateSymlinks(Run.java:1936) at hudson.model.Run.execute(Run.java:1813) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429)解決方案:  刪除相關jobs目錄下的lastStable、lastSuccessful文件夾,以後在構建時會從新建立軟鏈接。此處假設jenkins數據目錄爲:/data/jenkins。在/data/jenkins/jobs目錄下執行以下命令:    find ./ -maxdepth 2 -type d -name "lastSuccessful" -exec rm -rf {} \;     find ./ -maxdepth 2 -type d -name "lastStable" -exec rm -rf {} \;  刪除完成,再從新構建,發現報錯消失。
相關文章
相關標籤/搜索