文章目錄
- 一、前言
- 二、背景
- 三、介紹
- 四、過程
- 1、文件下載
- 2、下載和安裝Tomcat
- 3、部署Jenkins並啓動
- 4、插件安裝
- 5、漢化
- 6、配置環境變量
- 7、安裝Maven
- 8、安裝Ant
- 9、配置jkd、ant等系統插件
- 10、項目配置(構建)
- 五,一些問題與鏈接分享
- 1、gitee分享
- 2、Ant和jdk版本對不上時?
- 3、崩盤修復過程中遇到的問題
- 六,結束
一、前言
本次過程將分享Linux完整離線部署Jenkins 2.346.1的過程,以及Ant的安裝、插件的安裝、項目的配置~
一台Linux系統(裝有jdk1.7或jdk1.8)+能訪問網絡的電腦
二、背景
最近在開發一個新項目,需要新建一個項目來構建,一系列配置後,構建發現報錯了,貌似是找不到什麼路徑。
由於當時不太瞭解Jenkins,也沒有啥防備心理,看到有個Local module directory配置是點(就是.),然後就改成了…/…/,也算是腦子發熱了,就保存構建了,結果整個.jenkins目錄都被刪除/重置乾淨了~(此應該是Jenkins使用SVN時,會先清除目錄,再更新數據)
這下好了,Jenkins徹底崩盤了~
頁面亂了不説,視圖、項目也不見了,新建一個時,由於沒插件了,編輯頁都是殘缺的…
三、介紹
Jenkins是一個開源的自動化部署工具,它能夠持續地自動化構建、測試和部署軟件項目。Jenkins通常用於構建、測試和部署Web應用程序,但也可以用於構建和測試其他類型的軟件。
Jenkins提供了一個可擴展的插件系統,使得它可以輕鬆地與其他工具和技術集成。它支持各種版本控制系統(如Git、SVN等)、構建工具(如Maven、Gradle等)以及測試框架(如JUnit、Selenium等)。通過使用這些插件,Jenkins能夠自動執行構建、測試和部署操作,並提供詳細的報告和日誌信息,方便開發人員跟蹤和分析項目的狀態和問題。
Jenkins還具有強大的可配置性和靈活性,使得它能夠滿足各種不同的需求和工作流程。它可以在本地計算機、服務器、Docker容器等各種環境中運行,也可以在雲端進行部署和管理。
四、過程
經翻閲各種資料,詢問各個AI,有説找個國內平替,有説安裝個最新版。由於環境限制,查看了官網介紹,最終選擇了安裝對現有環境要求兼容性最好的Jenkins 2.346.1。
-(如果您安裝不受支持的 Java 版本,您的 Jenkins 控制器將無法運行。)
由此,可以看到,Jenkins 2.346.1是Jenkins LTS(長期支持版)的一個版本,發佈於2022年6月28日,是支持Java 8的最後一個版本。後續版本(如2.346.3及更高)已移除對Java 8的支持 。
選擇LTS版是因為官網説基礎版更新比較頻繁,而LTS更新頻率低、穩定性高,適合需要長期穩定運行的場景。
官網下載頁:https://www.jenkins.io/download/ --選擇Stable (LTS) ,Past Releases。
1、文件下載
LTS更多版本:https://get.jenkins.io/war-stable/ --Ctrl+F查找並選擇2.346.1。
LTS的2.346.1版本:https://get.jenkins.io/war-stable/2.346.1/LTS的2.346.1版本:https://mirror.twds.com.tw/jenkins/war-stable/2.346.1/jenkins.war
附:網盤下載:https://pan.baidu.com/s/5eVfiR3O0aDU43mVE72rYkA
附:華為鏡像下載:https://mirrors.huaweicloud.com/jenkins/war-stable/2.346.1/jenkins.war --注意是war-stable
2、下載和安裝Tomcat
運行Jenkins主要有三種常見方式:WAR包啓動、Docker啓動和Tomcat啓動。
以下是做簡單説明:
- WAR包啓動
下載Jenkins的WAR包,執行命令:java -jar jenkins.war(需提前安裝Java環境)
訪問http://localhost:8080 查看管理頁面 - Docker啓動
拉取Jenkins鏡像:docker pull jenkins/jenkins
運行容器:docker run -p 8080:8080 jenkins/jenkins
通過http://localhost:8080訪問 - Tomcat啓動
將WAR包複製到Tomcat的webapps目錄
修改server.xml配置端口號(默認8080)
啓動Tomcat後訪問http://localhost:8080/jenkins
可參考 Jenkins的三種啓動方式
個人是建議用容器啓動的,因為有容器可控制其端口號,啓動參數,以及運行日誌,還有方便啓停。所以這裏使用Tomcat配置Jenkins。
Tomcat官網:https://tomcat.apache.org/ 官網推薦下載Tomcat9.x+,其zip下載:https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.112/bin/apache-tomcat-9.0.112.zip
將其移動並解壓到Linux服務器,例如:/data/tomcat_jenkins/
修改tomcat_jenkins/conf/server.xml文件,其中:
<Server port="8007" shutdown="SHUTDOWN">
<!--...-->
<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="60000"
redirectPort="7443"
URIEncoding="UTF-8"/>
<!--...-->
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--...-->
3、部署Jenkins並啓動
將對應版本的 jenkins.jar 複製到 tomcat_jenkins/webapps/ 下面,然後進入bin目錄執行start.sh啓動Tomcat。
cd tomcat_jenkins/webapps/
cp xx/jenkins.jar ./
cd ../bin/
chmod +x *.sh
sh start.sh # sh restart.sh
使用restart.sh的,請訪問 快捷重啓Tomcat的部署命令sh文件restart.sh-超好用超實用
啓動後,在瀏覽器訪問 ip:8081/jenkins,例如:http://192.168.10.111:8081/jenkins
這裏可能會觸發初次加載token校驗,以及插件選擇。token校驗按文字做即可,插件選擇建議跳過。
4、插件安裝
我這裏是經過AI提醒,可以選擇離線安裝:
- 離線/內網場景
在有外網的同版本環境中先下載所需插件(或導出已安裝插件目錄),再拷貝到內網 Jenkins 的 JENKINS_HOME/plugins,重啓即可使用;
或準備離線包(war/plugins/憑證配置等),在內網直接恢復,避免外網請求
由於外網限制,版本兼容性,失效鏡像,還有插件校驗…
在此我已試過官方安裝,鏡像安裝,本地安裝,都未成功~
而且插件依賴插件,一手拉一手,已經近百個插件需要安裝…
使用“離線插件包集合”(別人整理好的兼容包,一鍵上傳)
有人已經為 Jenkins 2.346.1 或類似老版本整理好了一整套“兼容的插件包”(.hpi 文件集合),你只需要下載並上傳這些包,就能讓大部分常用插件正常工作,無需自己一個個找版本
故使用上述離線安裝方法,搜索“Jenkins2.346.1兼容插件包”,發現網絡上果然有相關plugins下載,哈哈哈~
在這提供幾個下載,實測有效,僅限 Jenkins 2.346.1~
將plugins解壓到Jenkins默認工作空間,一般是$user/.jenkins/,放在其plugins目錄下:
cd $user/.jenkins/plugins/
cp xxx/plugins.zip ./
unzip plugins.zip
重啓Jenkins所在Tomcat即可。
- 一般情況下,是
$user/.jenkins/,例如Windows系統是C:/.jenkins; - 可以進入管理頁面http://xxxx:8081/jenkins/configure查看工作空間路徑。
插件安裝理念:瞭解Jenkins發佈年限(例如2022年),安裝兼容插件時選擇該年限以前的最新版(例如2021年12月)發佈的插件。
插件安裝理念:瞭解Jenkins發佈年限(例如2022年),安裝兼容插件時選擇該年限以前的最新版(例如2021年12月)發佈的插件。
插件安裝理念:瞭解Jenkins發佈年限(例如2022年),安裝兼容插件時選擇該年限以前的最新版(例如2021年12月)發佈的插件。
5、漢化
漢化主要是指Jenkins的HTML頁面進行漢化處理。該功能主要通過插件來實現,由localization-support和localization-zh-cn,已包含在插件包中。
6、配置環境變量
vim /etc/profile
# Java 環境變量(如果尚未配置)
export JAVA_HOME=/data/jvm/jdk1.8.222 # 請根據你的 JDK 路徑修改
# Maven 環境變量
export MAVEN_HOME=/data/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH
# Ant 環境變量
export ANT_HOME=/data/apache-ant-1.10.12
export PATH=$ANT_HOME/bin:$PATH
# (可選)Jenkins 數據目錄(通常不需要加入 PATH)
export JENKINS_HOME=/var/lib/jenkins # 默認路徑,根據你的實際 Jenkins 數據目錄修改
source /etc/profile
$PATH=$MAVEN_HOME/bin:$ANT_HOME/bin:$PATH的作用是將 Maven 和 Ant 的可執行文件目錄加入到系統的 PATH 中,這樣你就可以在任意目錄下直接運行 mvn和 ant命令。- JENKINS_HOME通常只是告訴 Jenkins 或系統“數據存放在哪裏”,它本身不是一個可執行程序,所以一般不需要加到 PATH 中。
7、安裝Maven
使用Jenkins構建Maven項目時,需要依賴Maven系統插件,故需要在系統中安裝Maven,步驟和ant很類似,這裏略過~
官網:https://maven.apache.org/官網下載地址:https://maven.apache.org/download.cgi
8、安裝Ant
使用Jenkins構建一般java項目時,比如copy了jsp文件,將.java通過javac編譯成.class文件,zip到升級包等,需要安裝ant系統插件。
官網:https://ant.apache.org/官網下載地址:https://ant.apache.org/bindownload.cgi
網盤下載:https://pan.baidu.com/s/5rXvGRnFSZblakC9MMvI39w
華為鏡像 Ant1.9下載 apache-ant-1.9.16-bin.tar.gz
Apache Ant 是一個用 Java 編寫的命令行構建工具與庫,以構建文件中的 target 與 task 組織流程,常用於 Java 應用的編譯、測試、打包與部署,也可驅動非 Java 任務(如 C/C++)。Ant 不強制項目目錄規範,可通過編寫自定義任務或引入 antlibs 擴展能力;與 Apache Ivy 搭配可實現依賴管理。Ant 是 Apache 軟件基金會項目
值得注意的是,由於Apache Ant 本身就是用 Java 編寫的,所以如果你要構建jdk1.7的項目,或者説你的線上運行環境是jdk1.7的,需要下載ant1.9.x版本才行,否則會報錯,這裏下載的是apache-ant-1.9.16-bin.tar.gz版本~
- 版本線對比(運行時 JDK 要求):
1.10.x:要求 Java 8 及以上,支持到當前最新的 Java 22;且 1.9.x 系列已 EOL,官方建議使用 1.10.x。
1.9.x:要求 Java 5 及以上(已 EOL)。
1.8.x:要求 Java 1.4 及以上。
1.7.x:要求 Java 1.3 及以上。
還有,Linux一般不支持直接解壓.gz,所以本地環境解壓並壓縮為.zip再上傳~
下載後移動解壓到服務器目錄,例如:
cd /data/
mkdir ant
cd ant
unzip -oq xxx/apache-ant-1.xxx-bin.zip
chmod +x /ant/bin/ant # 這步不可少,賦予可執行權限~
看上文,配置ANT_HOME環境變量,執行ant -version命令進行校驗,maven同理。
9、配置jkd、ant等系統插件
要為Jenkins指定構建中有哪些jdk,ant,maven等,所以需要做一些配置。
瀏覽器web訪問http://xxx:8081/jenkins/configureTools/
自行本地安裝的,所以不要勾選Install automatically哦!
包括【Maven 配置】、【JDK】、【Git】、【Gradle】、【Ant】、【Maven】等。
這裏安裝的SVN賬號會在創建項目時添加~
10、項目配置(構建)
以上步驟都準備好後,重啓一下Tomcat_jenkins,並刷新web端,然後新建【Freestyle project】,
示例圖:
https://gitee.com/lvbee/jenkins-2.346.1
五,一些問題與鏈接分享
1、gitee分享
https://gitee.com/lvbee/jenkins-2.346.1/
2、Ant和jdk版本對不上時?
Ant和jdk版本對不上時,會報:
Error occurred during initialization of VM
java.lang.UnsupportedClassVersionError: allow : Unsupported major.minor version 52.0
AI點醒你:你使用的 Ant 二進制版本(/home/howang/ant/bin/ant)本身是使用 Java 8 編譯的!
即:你當前調用的 /data/ant/bin/ant,這個 Ant 本身可能是用 Java 8 或更高版本編譯出來的,因此當你在 Java 7 上運行它時,JVM 啓動過程中要加載 Ant 內部的某些類(比如 allow或其他核心類),但這些類是 Java 8 編譯的(版本號 52.0),Java 7 不認識,於是崩潰。
由於Apache Ant 本身就是用 Java 編寫的,所以如果你要構建jdk1.7的項目,或者説你的線上運行環境是jdk1.7的,需要下載ant1.9.x版本。
3、崩盤修復過程中遇到的問題
- jenkins中,對svn的配置,Ignore externals 和 Cancel process on externals fail是什麼意思?有什麼作用?
忽略外部引用 和 外部引用失敗時取消構建過程 - 如何設置同時構建的項目數量?
- 插件檢查簽名怎麼辦?如何關閉?
在Tomcat_jenkins的catalina.sh文件中,添加JAVA_OPTS=' -Dhudson.model.DownloadService.noSignatureCheck=true',其中空格和橫槓是分割符,這段代碼稱為Tomcat 的啓動環境變量配置。
該功能禁用插件下載時的簽名檢查。⚠️ 注意安全風險:這意味着 Jenkins/Hudson 將允許安裝未經簽名的插件,可能存在安全漏洞。僅建議在測試或信任的環境中使用。 - linux配置JENKINS_HOME的推薦配置
- 如何將 GC(垃圾回收)的日誌輸出到指定文件?
在Tomcat_jenkins的catalina.sh文件中,添加JAVA_OPTS='-Xloggc:/data/tomcat_xxx/gc.log' - 安裝了插件後報錯了,如何通過linux後台刪除該插件?
你 無法通過 Jenkins 的 Web 界面(GUI)管理插件(比如頁面打不開或插件管理頁報錯);
進入JENKINS_HOME/plugins/ 直接刪除指定插件,然後重啓tomcat - admin賬號的密碼在哪裏改?
請移步博文: - 插件不兼容會怎麼提示?
SCM API Plugin (696.v778d637b_a_762) Jenkins (2.426.3) or higher required
插件之間有依賴鏈,逐個挑版本容易漏、容易衝突,希望有“批量適配”或“整體兼容”的方案
使用“離線插件包集合”(別人整理好的兼容包,一鍵上傳)
- Jenkins構建項目時,如何指定jdk版本?
最直接的辦法是,使用java -version查看,並修改對應JAVA_HOME
查看當前 $JAVA_HOME的值:echo $JAVA_HOME
六,結束
.
文章目錄
- 一、前言
- 二、背景
- 三、介紹
- 四、過程
- 1、文件下載
- 2、下載和安裝Tomcat
- 3、部署Jenkins並啓動
- 4、插件安裝
- 5、漢化
- 6、配置環境變量
- 7、安裝Maven
- 8、安裝Ant
- 9、配置jkd、ant等系統插件
- 10、項目配置(構建)
- 五,一些問題與鏈接分享
- 1、gitee分享
- 2、Ant和jdk版本對不上時?
- 3、崩盤修復過程中遇到的問題
- 六,結束