前言
Jenkins 是一個開源的自動化服務器,主要用于持續集成(CI)和持續交付(CD)。它為軟件開發團隊提供了一個易于使用的平臺來自動化構建、測試和部署應用程序的過程。
Jenkins 主要功能
1.?持續集成 (CI)
- 自動構建:每次代碼提交后,Jenkins 可以自動觸發構建過程,確保最新的代碼可以成功編譯。
- 測試執行:在構建完成后,Jenkins 可以運行單元測試、集成測試等,確保代碼質量。
- 靜態代碼分析:通過插件,Jenkins 可以執行靜態代碼分析工具(如 SonarQube),檢查代碼中的潛在問題。
2.?持續交付 (CD)
- 自動化部署:Jenkins 支持從構建到部署的整個流水線自動化,包括將應用程序部署到不同環境(如開發、測試、生產)。
- 版本控制集成:與各種版本控制系統(如 Git、SVN)無縫集成,能夠自動檢測代碼變更并觸發相應的構建任務。
3.?Pipeline as Code
- 定義 CI/CD 流水線:使用 Jenkins Pipeline 功能,可以將 CI/CD 流程定義為代碼的一部分,并將其存儲在項目的源代碼倉庫中。這不僅便于版本控制,還促進了團隊協作和審查。
- Declarative 和 Scripted Pipelines:提供兩種編寫 Pipeline 的方式,滿足不同的需求。Declarative Pipeline 更加結構化,適合新手;Scripted Pipeline 提供更大的靈活性,適合復雜場景。
4.?分布式構建
- 主從架構:Jenkins 支持主從架構,允許將構建任務分發到多個節點上執行,提高構建效率,特別適用于大型項目或需要跨平臺構建的情況。
- 多平臺支持:可以在不同的操作系統(如 Linux、Windows、macOS)上設置 Jenkins Agent,以適應多樣化的構建需求。
5.?插件生態系統
- 豐富的插件庫:擁有超過 1,500 個插件,涵蓋從構建工具、測試框架到通知服務等各種工具和技術,極大地擴展了 Jenkins 的功能。
- 自定義擴展:用戶還可以根據自己的需求開發和安裝自定義插件,進一步增強 Jenkins 的能力。
6.?安全性和權限管理
- 用戶認證:支持多種認證機制(如 LDAP、Active Directory),確保只有授權人員才能訪問和操作 Jenkins。
- 權限控制:提供了細粒度的權限管理,可以根據角色分配不同的權限,保護敏感信息和操作。
7.?監控和報告
- 構建狀態可視化:通過 Web 界面直觀地展示每個 Job 的構建狀態,幫助團隊快速了解項目健康狀況。
- 歷史記錄和趨勢分析:保存所有構建的歷史記錄,提供趨勢分析圖表,有助于發現和解決長期存在的問題。
8.?通知和集成
- 通知機制:可以通過電子郵件、Slack、HipChat 等多種渠道發送構建結果通知,確保團隊成員及時獲得反饋。
- 第三方服務集成:與 Docker、Kubernetes、AWS 等云服務和其他 DevOps 工具鏈集成,提升整體工作效率。
9.?易用性
- Web 界面:提供了友好的 Web 用戶界面,簡化了 Jenkins 的配置和管理。
- 文檔和支持:擁有詳盡的官方文檔和活躍的社區支持,方便用戶學習和解決問題
Jenkins 工作流
代碼提交:
? ? ? ? 1. ?????開發人員將代碼提交到版本控制系統(如 Git)。
? ? ? ? 2. 提交代碼后,版本控制系統會記錄此次提交。
觸發構建:
? ? ? ? 1.?Jenkins 監控版本控制系統的變化,當檢測到代碼提交時,會自動觸發構建。
? ? ? ? 2.?Jenkins 會根據配置的觸發規則(如代碼提交、定時任務等)啟動構建任務。
構建和測試:
????????1.?Jenkins 根據配置的構建腳本,編譯代碼并運行自動化測試。
? ? ? ? 2.?測試結果會被記錄并分析,以確保代碼的質量。
????????3. ???如果測試失敗,構建過程會中斷,并報告失敗原因。
生成構建結果:
????????1.?Jenkins 將構建結果(成功或失敗)報告給開發人員,并生成構建工件(如可執行文件、Docker 鏡像等)。
????????2.?構建工件會被存儲在 Jenkins 的工作空間中,以便后續使用。
????????3.????????Jenkins 還可以生成詳細的構建日志和報告,方便開發人員查看和調試。
部署:
???????????????1.?Jenkins 可以自動將構建好的工件部署到測試環境或生產環境。
????????2.?部署過程可以配置為手動或自動,具體取決于團隊的需求和流程。
???????????????3.?Jenkins 支持多種部署方式,如直接部署到服務器、通過 Docker 部署等。
Jenkins 安裝
1. 基礎環境準備
????????1.1節點規劃
IP | 主機名 | 節點 |
192.168.200.70 | jenkins | Jenkins |
????????上傳jdk-17.0.10_linux-x64_bin.tar.gz ?jenkins-2.489-1.1.noarch.rpm軟件包到虛擬機/root目錄下。
2. 安裝 Jenkins
2.1 基礎環境配置
(1)修改主機名
[root@localhost ~]# hostnamectl set-hostname jenkins
[root@localhost ~]#bash
(2)關閉防火墻
[root@jenkins ~]# systemctl stop firewalld
[root@jenkins ~]# setenforce 0
2.2 安裝 jdk
????????Jenkins是基于java8編寫的軟件,所以在安裝之前需要在主機上安裝Java8的運行環境,及安裝jdk 17.0.10。
[root@jenkins ~]# mkdir /usr/lib/jdk17/
[root@jenkins ~]# tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/lib/jdk17/
[root@jenkins ~]# ls /usr/lib/jdk17/
jdk-17.0.10
配置環境變量
[root@jenkins ~]# vi /etc/profile
export JAVA_HOME=/usr/lib/jdk17/jdk-17.0.10
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=.:$JAVA_HOME/bin:$PATH
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
2.3 安裝 Jenkins
????????Jenkins是一個獨立的開源軟件項目,是基于Java開發的一種可擴展的持續集成(CI)工具,用于監控持續重復的工作,自動的構建和測試軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。
????????解壓jenkins-2.489-1.1.noarch.rpm包。
[root@jenkins ~]# rpm -ivh jenkins-2.489-1.1.noarch.rpm
配置 Jenkins
[root@jenkins ~]# vi /usr/lib/systemd/system/jenkins.service
修改下圖標注內容
啟動 Jenkins
[root@jenkins ~]# yum install -y fontconfig
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl start jenkins
[root@jenkins ~]# systemctl status jenkins
[root@jenkins ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::8088 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323 :::*
登錄網站 http://ip:8088(默認端口為8080)
查看安裝日志,查詢密碼,并輸入管理員密碼。
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
c4245c993980486495d104caa4366d60
3. 自定義 Jenkins
(1)安裝插件
????????登陸后,會出現如下頁面,這里涉及到jenkins的插件安裝,建議選擇“安裝推薦的插件”,點擊“安裝推薦的插件”后,進入“新手入門”頁面,等待全部插件安裝成功即可。
(2)創建第一個管理員用戶
????????插件安裝完成后,會出現“創建第一個管理員用戶”頁面,填寫正確信息后,點擊“保存并完成”,這樣第一個管理員用戶就創建完畢了,如下圖:
至此,Jenkins安裝結束。你可以開始使用自己的Jenkins了。