Jenkins 可以通過本機系統包、Docker 安裝,甚至可以由任何安裝了 Java 運行時環境 (JRE) 的機器獨立運行。
(一)Jenkins功能
Jenkins是一個開源的持續集成工具,它可以在自動化構建,測試和部署軟件的過程中發揮重要的作用。Jenkins允許軟件開發人員自動構建,測試和發布他們的代碼,而無需進行手動的操作。主要功能包括:
1、持續集成:可以在代碼修改后自動進行構建、測試和部署。
2、自動化部署:可以將軟件部署到指定的服務器上。
3、測試報告:可以生成測試報告,并將測試結果自動反饋給相關開發人員。
4、軟件包管理:可以管理版本控制系統和軟件包依賴性。
5、插件支持:可以通過插件擴展Jenkins的功能。
(二)Jenkins官網地址
Jenkins官網地址如下:
https://www.jenkins.io/
進入官網后,可以點擊https://www.jenkins.io/zh/doc/book/進入中文用戶文檔頁面查看相關幫助信息。
(三)Jenkins安裝條件
Jenkins可以運行在各種不同的操作系統上,包括Windows、Linux、MacOS等。只要環境配置正確,Jenkins就可以在各種操作系統上運行。系統對軟件和硬件的要求并不高,具體要求如下:
系統要求(最低推薦配置): 256MB可用內存/1GB可用磁盤空間(作為一個Docker容器運行jenkins的話推薦10GB) 如果是小團隊使用,則推薦的硬件配置:1GB+可用內存/50GB+ 可用磁盤空間
軟件配置: 軟件方面需要Java運行環境支持,Java運行時環境(JRE)或Java開發工具包(JDK)都可以。
(四)Jenkins的發行版本
Jenkins項目產生兩個發行線, 長期支持版本 (LTS) 和每周更新版本。
穩定版 (LTS) LTS (長期支持) 版本每12周從常規版本流中選擇,作為該時間段的穩定版本。每隔 4 周,我們會發布穩定版本,其中包括錯誤和安全修復反向移植。
定期發布 (每周) 每周都會發布一個新版本,為用戶和插件開發人員提供錯誤修復和功能。
(五)Jenkins演示項目部署環境拓撲
本文所有演示環境基于Centos7.6系統部署,以下為拓撲結構:
本實驗將針對如上拓撲,進行如下實驗,跑通Jenkins整個持續集成項目。
大概有如下步驟:
1、首先,開發人員角色進行代碼提交,提交到Git遠程倉庫。
2、然后,Jenkins作為持續集成工具,使用Git工具到Git倉庫拉取代碼到集成服務器,再配合JDK,Maven等軟件完成代碼編譯,打包等工作,在這個過程中每一步出錯,都重新再執行一次整個流程。
3、最后,Jenkins把生成的jar或war包分發到測試服務器或者生產服務器,測試人員或用戶就可以訪問應用。
二、GitLab安裝部署
以下操作在192.168.20.231服務器上完成。
(一)GitLab介紹
GitLab是一個開源的git倉庫管理軟件,并提供web界面,方便管理git倉庫。和github很相似,不過github暫時沒有開源版本,項目必須托管到github官方網站,不能本地部署。很多公司考慮到安全費用等因素,搭建自己的gitlab服務器。
1、GitLab官方地址為
https://about.gitlab.com/(二)GitLab安裝 1、安裝相關依賴軟件
yum install -y openssh-server openssh-clients postfix cronie policycoreutils-python
2、啟動sshd服務并且設置為開機自啟動
systemctl enable sshd && sudo systemctl start sshd3、啟動郵件服務并且設置為開機自啟動
systemctl enable post?x && systemctl start post?x
4、做好相關服務的防火墻策略,我這里直接將防火墻關閉
?rewall-cmd --add-service=ssh --permanent ?rewall-cmd --add-service=http --permanent ?rewall-cmd --reload5、下載gitlab的rpm包
1)可以從gtilab官方網站下載相應gitlab版本的rpm包,地址如下
https://packages.gitlab.com/gitlab/gitlab-ce2)也可以從國內鏡像站下載相應gitlab版本的rpm包,地址如下
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
選擇對應版本,復制下載鏈接即可
復制15.11.13版本下載鏈接如下:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.11.13-ce.0.el7.x86_64.rpm
通過wget命令進行下載
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.11.13-ce.0.el7.x86_64.rpm --no-check-certificate
6、通過rpm命令進行安裝即可
rpm -ivh gitlab-ce-15.11.13-ce.0.el7.x86_64.rpm
7、修改配置文件/etc/gitlab/gitlab.rb訪問地址及訪問端口,這里我改為85端口
external_url 'http://192.168.20.231:85'
nginx['listen_port'] = 85
8、重新加載配置文件
gitlab-ctl reconfigure
9、重啟GitLab服務
gitlab-ctl restart
10、登錄GitLab
通過瀏覽器訪問http://192.168.20.231:85 這里管理員用戶默認為root,密碼可以在文件/etc/gitlab/initial_root_password中查看,如下:
[root@master ruanjianfile]# cat /etc/gitlab/initial_root_password # WARNING: This value is valid only in the following conditions # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run). # 2. Password hasn't been changed manually, either via UI or via command line. # # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password. Password: vlrcciD02sCJheisy8cEZvoZ7CaehHIEfdUxzDEQRCM= # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
11、在管理頁面修改默認語言為簡體中文。
12、在管理頁面--用戶菜單,修改管理員root的密碼,我這里設置為haodao123
(三)GitLab添加組
使用管理員賬號root創建組,一個組里面可以有多個項目分支,可以將開發添加到組里面進行權限設置,不同的組就是公司不同的開發項目或者服務模塊,不同的組添加不同的開發即可實現對開發權限的管理。
1、root賬號登錄進入后臺
2、編寫組相關信息創建即可
3、選擇對應組,創建項目,如下:
(四)新建用戶
1、切換到管理菜單,選擇用戶選項;
2、填寫用戶相關信息,創建即可。
3、在新增用戶界面,選擇編輯,為新創建用戶添加密碼;
我這里密碼是hh123456
(五)將新建用戶添加到組里
1、找到對應組,成員信息
2、添加成員到組里
3、切換到huanghao賬號登錄,已經可以看到huanghao這個賬號在組里面了
(六)將源碼上傳到GitLab倉庫
IDEA中創建項目,大家可以先看后面章節再回過來操作。
1、IDEA編輯器中創建了一個簡單web項目
2、IDEA編輯器中找到VCS菜單,選擇如下子菜單
3、選擇Git類型
前提是本地安裝好Git環境
4、在對應項目中右鍵,找到Git,點擊Add將代碼放到緩存中去
5、同上一步,在對應項目中右鍵,找到Git,點擊Commit Directory將代碼提交本地倉庫;
6、同上一步,在對應項目中右鍵,找到Git,點擊Manage Remotes管理添加遠程倉庫;
從gitlab組中對應項目找到HTTP對應地址,編輯添加如下所示:
7、同上一步,在對應項目中右鍵,找到Git,點擊Push
8、此時push成功,gitlab項目中可以看到如下信息
四、Git客戶端安裝
以下操作在192.168.20.232服務器上完成。 以下通過源碼方式進行安裝,注意通過yum方式安裝默認安裝的是低版本!
(一)卸載yum安裝的低版本git
1、查看git版本
git --version2、卸載git
yum remove -y git(二)源碼安裝git
1、安裝相關依賴軟件
yum -y install libcurl-devel expat-devel curl-devel gettext-devel openssl-devel zlib-devel2、安裝編譯工具
yum -y install gcc perl-ExtUtils-MakeMaker3、下載Git對應版本源碼,網址如下:
https://mirrors.edge.kernel.org/pub/software/scm/git/4、找到對應版本下載鏈接,通過wget工具下載
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.3.tar.gz --no-check-certificate5、對應目錄下,解壓源碼包
tar -xzf git-2.39.3.tar.gz6、準備編譯安裝
cd git-2.39.3 make prefix=/usr/local/git all make prefix=/usr/local/git install7、添加git到環境變量,編輯/etc/profile文件,最后加入如下內容;
export PATH=/usr/local/git/bin:$PATH如下圖所示:
8、使環境變量生效
source /etc/profile
9、驗證git安裝是否成功
[root@node1 ~]# git --version git version 2.39.3 [root@node1 ~]# whereis git git: /usr/bin/git /usr/local/git /usr/local/git/bin/git /usr/share/man/man1/git.1.gz
五、JDK安裝部署
本套實驗中,總共有兩臺服務器需要安裝部署JDK環境,為了讓大家更好學習Linux環境下軟件安裝部署,我這里將給大家分別展示通過yum方式及官網下載二進制包安裝的方式。其中跑Jenkins服務的那一臺服務器將通過yum方式安裝JDK11版本,跑tomcat的那一臺服務器將手動安裝JDK8版本。
(一)yum方式安裝部署JDK11
以下操作在192.168.20.232服務器上執行安裝部署命令。前提是大家配置好yum環境。
yum -y install java-11-openjdk*安裝完畢執行如下命令驗證是否成功安裝配置好環境變量。
java -version執行上面命令后,看到如下信息,說明安裝JDK成功了。
通過yum方式安裝好JDK11后默認安裝目錄如下
/usr/lib/jvm(二)JDK8安裝部署
當然,大家如果嫌棄下載麻煩,也可以通過yum方式安裝即可,以下演示只是為讓大家掌握另外一種安裝方法。 以下操作在192.168.20.233服務器上進行。
1、JDK安裝包獲取
(1)進入甲骨文官網下載。
https://www.oracle.com/
(2)下載自己需要安裝的JDK版本,如下圖所示:
(3)找到JAVA 8對應的Linux版本下載即可,如下圖所示:
(4)點擊進行下載,需要登錄甲骨文賬號下載,自己注冊一個登錄
2、下載好JDK安裝包后,上傳安裝服務器
我這里如下所示:
3、我這里打算將JDK安裝在/usr/local目錄下,將JDK安裝包解壓縮到安裝目錄下即可,大家根據自己實際環境執行解壓命令。
tar -xzvf /ruanjianfile/jdk-8u381-linux-x64.tar.gz -C /usr/local/4、設置環境變量,通過修改/etc/profile文件進行設置。
vi/etc/profile通過編輯器打開編輯,文件最后加上如下內容保存。
export JAVA_HOME=/usr/local/jdk1.8.0_381 export PATH=$PATH:$JAVA_HOME/bin5、使環境變量生效,執行以下命令:
source/etc/profile6、驗證JDK是否安裝成功。
java-version執行以上命令,出現如圖所示,說明JDK成功安裝。
六、Jenkins安裝部署
以下操作在192.168.20.232服務器上完成。
(一)Jenkins下載
1、官方下載地址
http://jenkins-ci.org/ 或 https://mirrors.jenkins-ci.org/redhat/
2、清華官方鏡像站
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
3、我這里下載jenkins-2.414.1-1.1.noarch.rpm版本
高版本jenkins對JDK運行環境有要求,所以我安裝了JDK11,JDK8好像出錯。大家注意。
(二)Jenkins安裝部署
1、下載好后上傳192.168.20.232服務器目錄
[root@node1 ruanjianfile]# ll 總用量 254160 drwxr-xr-x. 3 root root 26 2月 24 2022 boost -rw-r--r--. 1 root root 139273048 7月 31 11:02 jdk-8u381-linux-x64.tar.gz -rw-r--r--. 1 root root 90991760 7月 31 14:21 jenkins-2.414.1-1.1.noarch.rpm -rw-r--r--. 1 root root 10368103 7月 19 17:21 node_exporter-1.6.1.linux-amd64.tar.gz drwxr-xr-x. 17 mysql mysql 4096 7月 27 16:44 Python-3.10.9 -rw-r--r--. 1 root root 19612112 12月 7 2022 Python-3.10.9.tar.xz
2、執行安裝命令
rpm -ivh jenkins-2.414.1-1.1.noarch.rpm
3、查看Jenkins的安裝信息
[root@node1 ruanjianfile]# rpm -ql jenkins /etc/init.d/jenkins /etc/logrotate.d/jenkins /etc/sysconfig/jenkins /usr/bin/jenkins /usr/lib/systemd/system/jenkins.service /usr/sbin/rcjenkins /usr/share/java/jenkins.war /usr/share/jenkins /usr/share/jenkins/migrate /var/cache/jenkins /var/lib/jenkins /var/log/jenkins [root@node1 ruanjianfile]#其中相關信息如下:
/etc/init.d/jenkins#啟動服務 /etc/logrotate.d/jenkins#日志滾動目錄 /etc/sysconfig/jenkins#配置文件 /usr/bin/jenkins#庫文件目錄(三)修改Jenkins的配置文件
1、先備份原配置文件/etc/sysconfig/jenkins
2、修改配置文件,修改后內容如下:
[root@node1 sysconfig]# cat /etc/sysconfig/jenkins 主要修改以下內容: JENKINS_HOME="/var/lib/jenkins"#jenkins工作目錄 #JENKINS_USER="jenkins" JENKINS_USER="root"#jenkins的啟動用戶 JENKINS_PORT="8080"#jenkins服務監聽端口
(四)修改Jenkins的啟動文件
1、先備份原啟動文件/etc/init.d/jenkins
2、修改配置文件
找到candidates=,在第一行加入jdk的路徑,我這里通過yum安裝的JDK11路徑如下:
/usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64
修改后內容如下:
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html candidates=" /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64 /etc/alternatives/java /usr/lib/jvm/java-1.8.0/bin/java /usr/lib/jvm/jre-1.8.0/bin/java /usr/lib/jvm/java-11.0/bin/java /usr/lib/jvm/jre-11.0/bin/java /usr/lib/jvm/java-11-openjdk-amd64 /usr/bin/java "(五)啟動Jenkins服務
1、啟動Jenkins服務并且加到開機啟動項
systemctl daemon-reload
systemctl start jenkins
[root@node1 bin]# systemctl status jenkins.service ● jenkins.service - Jenkins Continuous Integration Server Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled) Active: active (running) since 四 2023-09-14 1755 CST; 4min 9s ago Main PID: 10950 (java) CGroup: /system.slice/jenkins.service └─10950 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080 9月 14 1730 node1 jenkins[10950]: c47f2adc1add403d86b1c6e0bbc4d9e2 9月 14 1730 node1 jenkins[10950]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword 9月 14 1730 node1 jenkins[10950]: ************************************************************* 9月 14 1730 node1 jenkins[10950]: ************************************************************* 9月 14 1730 node1 jenkins[10950]: ************************************************************* 9月 14 1755 node1 jenkins[10950]: 2023-09-14 0955.702+0000 [id=31] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization 9月 14 1755 node1 jenkins[10950]: 2023-09-14 0955.733+0000 [id=23] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running 9月 14 1755 node1 systemd[1]: Started Jenkins Continuous Integration Server. 9月 14 1757 node1 jenkins[10950]: 2023-09-14 0957.039+0000 [id=51] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudso...venInstaller 9月 14 1757 node1 jenkins[10950]: 2023-09-14 0957.041+0000 [id=51] INFO hudson.util.Retrier#start: Performed the action check updates server successful...e attempt #1 Hint: Some lines were ellipsized, use -l to show in full. [root@node1 bin]#
如果出現啟動失敗情況,檢查各個配置文件信息是否一致。
(六)Jenkins登錄配置
1、打開瀏覽器,輸入http://服務器IP:8080網址,如我自己的:
http://192.168.20.232:8080/
正常可以看到如下頁面:
2、根據上一個步驟提示,查詢密碼,然后輸入,繼續
[root@node1 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 1322f32fe3e646f1b0d058fa05372f43 [root@node1 ~]#
3、安裝推薦插件
5、根據提示信息,創建管理員用戶:
我自己配置: 輸入用戶:haodaolinux,密碼:haodao123,郵箱:haodao@163.com等信息。 點擊保存并完成。
6、實例配置
Jenkins URL 用于給各種Jenkins資源提供絕對路徑鏈接的根地址。這意味著對于很多Jenkins特色是需要正確設置的,例如:郵件通知、PR狀態更新以及提供給構建步驟的 BUILD_URL環境變量。推薦的默認值顯示在尚未保存,如果可能的話這是根據當前請求生成的。最佳實踐是要設置這個值,用戶可能會需要用到。這將會避免在分享或者查看鏈接時的困惑。
點擊“保存并完成”
7、完成配置
8、至此, jenkins部署完成,點擊開始使用 jenkins,進入主界面。
(七)更改Jenkins插件地址為國內源地址
1、登錄Jenkins進行配置
進入 Manage Jenkins =>>>Plugin=>>>高級, 最下面有 升級站點,設置為如下國內源地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json或
http://mirror.xmission.com/jenkins/updates/update-center.json
按如上替換配置后,點擊提交進行修改。
2、修改Jenkins服務默認配置信息
進入 jenkins安裝目錄 下的/var/lib/jenkins/updates/default.json
將其中的updates.jenkins-ci.org/download替換為mirrors.tuna.tsinghua.edu.cn/jenkins
有些jenkins版本當中,
是將updates.jenkins.io/download替換為mirrors.tuna.tsinghua.edu.cn/jenkins
然后,把www.google.com修改為www.baidu.com
我這個版本通過如下命令進行替換:
sed -i 's/https://updates.jenkins.io/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json sed -i 's/https://www.google.com/https://www.baidu.com/g' default.json或
sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json && sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json
3、完成以上步驟后,重啟Jenkins服務,即可完成更新。
(八)卸載Jenkins操作
這里也附上Jenkins卸載相關操作,本實驗我們無需操作!!!
# rpm卸載 rpm -e jenkins # 檢查是否卸載成功 rpm -ql jenkins # 徹底刪除殘留文件 find / -iname jenkins | xargs -n 1000 rm -rf
刪除殘留文件
rm -rf /etc/sysconfig/jenkins.rpmsave rm -rf /var/cache/jenkins/ rm -rf /var/lib/jenkins/ rm -rf /var/log/jenkins rm -rf /usr/lib/jenkins七、Jenkins相關概念
想要學習Jenkins相關功能,必須先要了解其相關概念
(一)持續集成
持續集成(Continuous Integration):持續集成是一種軟件開發實踐,通過頻繁地將代碼集成到共享的代碼倉庫中,以及自動化構建和測試代碼,確保團隊的代碼始終保持可靠和可部署。
(二)構建
構建(Build):構建是指將源代碼轉化為可執行的軟件或可部署的包的過程。Jenkins提供了構建工具和插件,可以執行各種構建任務,如編譯代碼、運行測試、生成文檔等。
(三)任務
任務(Job):任務是Jenkins中的基本單元,用于定義和管理構建過程。每個任務都有一組配置,包括源代碼的位置、構建觸發器、構建腳本等。
(四)觸發器
觸發器(Trigger):觸發器是用于觸發構建過程的機制。Jenkins提供了多種觸發器,如定時觸發器(按照預定時間間隔觸發構建)、代碼提交觸發器(當代碼提交到版本控制系統時觸發構建)等。 (五)插件
插件(Plugin):Jenkins的功能可以通過插件進行擴展。插件可以用于添加新的構建工具、測試框架、通知方式等。Jenkins有大量的插件可供選擇,并且可以自定義開發插件以滿足特定需求。
(六)工作空間
workspace(工作空間):jenkins是通過文件形式來存儲和管理數據的。workspace即給jenkins指定一個專門的目錄用來存儲其所有的配置和數據。每個job的workspace當中是用來存放本任務涉及到的數據和文件,以及任務執行完成后生成的數據和文件。這就相當于每一個job開辟了一個獨立的文件夾。
(七)流水線
流水線(Pipeline):流水線是Jenkins的核心概念之一,用于定義和管理整個軟件交付過程。流水線可以通過編寫腳本來描述構建、測試和部署的各個階段,并且可以通過圖形化界面進行可視化和管理。
(八)構建代理
構建代理(Build Agent):構建代理是Jenkins用于執行構建任務的工作節點。可以在不同的操作系統、硬件環境上配置多個構建代理,以提高構建的并發性和性能。
(九)測試
測試(Testing):Jenkins提供了豐富的測試工具和插件,可以自動運行各種測試,如單元測試、集成測試、端到端測試等。測試結果可以通過Jenkins進行報告和分析。
(十)部署
部署(Deployment):Jenkins可以與各種部署工具和云平臺集成,實現自動化部署和發布軟件的能力。可以將構建好的軟件包或容器映像部署到目標環境中。
(十一)Jenkins用戶權限管理
利用Role-based Authorization Strategy 插件來管理Jenkins用戶權限。
1、安裝Role-based Authorization Strategy 插件
(1)開啟權限全局安全配置
(2)授權策略改為Role-Based Strategy
2、創建角色
(1)在Manage Jenkins管理界面找到 Manage and Assign Roles
(2)添加管理角色
Global roles:全局角色,主要用于配置用戶的功能權限;
Item roles:項目角色,主要管理項目的權限。 這里我添加如下4個角色:
Dev_Role和Test_Role:該角色為全局角色。這個角色需要綁定Overall下面的Read權限,是為了給所有用戶定最基本的Jenkins訪問權限。注意:如果不給后續用戶綁定這個角色,會報錯誤:用戶名 is missing the Overall/Read permission Role1:該角色為項目角色。使用正則表達式綁定"python.*",意思是只能操作python開頭的項目。 Role2:該角色也為項目角色。綁定"linux.*",意思是只能操作linux開頭的項目。
3、新建用戶
(1)在Manage Jenkins管理界面找到Users
這里創建3個賬號: huanghao hh123456 lipython hh123456 zhanglinux hh123456
(2)新建用戶綁定對應角色
4、創建測試項目
創建linux01和python01兩個項目;
通過登錄lipython賬號,只能看到python01項目信息; 通過登錄zhanglinux,只能看到linux01項目信息;
(十二)Jenkins憑證管理
憑證可以用來存儲需要密文保護的數據庫密碼、Gitlab密碼信息、Docker私有倉庫密碼等,以便Jenkins可以和這些第三方的應用進行交互。
1、安裝Credentials Binding插件
2、憑證類型(用戶密碼類型)
(1)創建憑證
選擇"Username with password",輸入Gitlab的用戶名和密碼,點擊"Create"。
(2)測試憑證是否生效
1)新建一個FreeStyle項目:新建Item->FreeStyle Project->確定
2)找到"源碼管理"->"Git",在Repository URL復制Gitlab中的項目URL
3)保存配置后,點擊構建”Build Now“ 開始構建項目
4)控制臺輸出可以看到構建成功
5)查看/var/lib/jenkins/workspace/目錄,發現已經從Gitlab成功拉取了代碼到Jenkins中。
3、憑證類型(SSH秘鑰類型)
(1)創建憑證
1)SSH免密登錄拓撲如下所示:
2)Jenkins對應服務器上登錄root,生成公鑰和私鑰
ssh-keygen -t rsa
執行上述命令后,然后敲(四個回車),對應/root/.ssh就會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰),如下圖所示:
其中
id_rsa:私鑰文件 id_rsa.pub:公鑰文件
3)將公鑰內容復制到gitlab,以root賬戶登錄->點擊頭像->Edit profile->SSH Keys,如下圖所示:
4)Jenkins中創建憑證,選擇SSH Username with private key
(2)測試憑證是否生效
1)新建"linux-web02"項目->源碼管理->Git,這次要使用Gitlab的SSH連接,并且選擇SSH憑證。
注意:如果出現類似stderr: No ECDSA host key is known for 192.168.20.231 and you have requested這樣的報錯信息。 但是在jenkins服務器上手動執行拉取命令又可以正常的,可以根據以下排查解決。 手動拉取測試正常,命令如下:
git clone git@192.168.20.231:haodaolinux_group/web_demo.git
針對以上報錯解決方法:
這是因為ssh連接陌生機器需要確認,將jenkins器上的known_hosts復制到運行jenkins服務賬號的~/.ssh目錄下即可。
[root@node1 .ssh]# ps aux | grep jenkins jenkins 6799 0.3 46.0 4376136 863264 ? Ssl 10月07 8:32 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080 root 8767 0.0 0.0 112824 988 pts/0 R+ 08:58 0:00 grep --color=auto jenkins [root@node1 .ssh]# cat /etc/passwd | grep jenkins jenkins997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
以上命令可以看到運行jenkins服務的賬號為jenkins,其home為/var/lib/jenkins
即執行以下命令復制相關文件
cp /root/.ssh/known_hosts /var/lib/jenkins/.ssh/3)保存配置后,點擊構建”Build Now“ 開始構建項目
4)控制臺輸出可以看到構建成功
5)查看/var/lib/jenkins/workspace/目錄,發現已經從Gitlab成功拉取了代碼到Jenkins中。
八、Maven安裝部署 以下操作在192.168.20.232服務器上完成。
(一)maven簡介
maven最主要體現在兩個詞上:項目和管理。maven給我們整個開發團隊找出了一種能夠更加科學的去管理我們項目的思想。maven通過使用配置文件的方式使得項目在管理和交接的過程中成本變得非常低。maven提出了一種叫做maven倉庫的概念,使得我們可以將第三方和我們需要引用的項目都放置在maven倉庫當中。如果其他人或項目組也需要使用,就可以直接通過maven進行配置就行。這樣就可以將人員成本、溝通成本等等都進行降低。
如果還不理解,我們舉個通俗例子:假如我們現在想做一道菜:廣西扣肉。如果我們想要做這道菜,那么我們首先要先去菜市場買豬肉、芋頭、醬料等、......,而且在做的時候還要注意使用豬肉的用量等等。此時如果有一個超市,該超市有賣豬肉、芋頭、醬料等食材,這是不是就能很大的節省我們做扣肉和買材料的時間開銷。其實maven就是這個賣食材的超市,當然賣的不是各種食材,而是一系列的jar包。這樣我們在寫代碼的時候就不需要去其他網站上下載一大堆的jar包。
(二)Maven下載地址
1、官網下載地址
https://maven.apache.org/download.cgi2、清華大學鏡像源地址
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3
(三)Maven安裝
我這里下載安裝3.9.5版本,通過wget命令下載到本地。
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz --no-check-certificate
1、創建安裝目錄
mkdir -p /opt/maven
2、將maven壓縮包解壓
tar -zxvf apache-maven-3.9.5-bin.tar.gz
3、將解壓后的相關maven文件移動到/opt/maven目錄下
mv apache-maven-3.9.5/* /opt/maven/
4、配置環境變量,編輯/etc/profile文件,添加如下配置;
export MAVEN_HOME=/opt/maven export PATH=$PATH:$MAVEN_HOME/bin
5、使配置文件生效
source /etc/profile
6、驗證maven是否安裝成功,看到如下信息說明安裝成功;
[root@node1 ~]# mvn -v Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546) Maven home: /opt/maven Java version: 1.8.0_381, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_381/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix" [root@node1 ~]#
(四)Jenkins中配置關聯JDK和Maven
1、打開Manage Jenkins---Tools,找到JDK,新增JDK。根據自己JDK實際環境配置添加即可,如下圖所示:
2、打開Manage Jenkins---Tools,找到Maven,新增Maven。根據自己Maven實際環境配置添加即可,如下圖所示:
3、按照上述配置,應用保存即可。
(五)添加Jenkins全局變量
1、打開Manage Jenkins---System Configuration,找到System,找到全局屬性,勾選Environment variables,點擊新增,添加JAVA_HOME、MAVEN_HOME、PATH+EXTRA三個全局變量,填寫相關鍵值,我添加如下所示:
(六)修改Maven的配置文件settings.xml
1、修改本地下載倉庫為/root/maven_repo,配置如下所示:
/root/maven_repo
2、注釋默認的鏡像地址,添加阿里云鏡像地址,配置如下所示:
alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central
3、驗證maven配置是否成功。
我這里新建一個web項目進行測試。
(1)項目配置如下:
(2)再次構建時,可以成功打包成war包,控制臺輸出如下:
注意事項1:有的構建時會出錯,那得看輸出日志信息進行排查,一般是IDEA建立WEB項目時,pom.xml語法有錯誤,我這里修改該文件主要是用于編譯成war包,大概如下,可以參考29-49行。
注意事項2:maven運行JDK與Jenkins運行的JDK環境版本保持一致。4.0.0 com.example test 1.0-SNAPSHOT test UTF-8 1.8 1.8 5.8.1 org.junit.jupiter junit-jupiter-api ${junit.version} test org.apache.maven.plugins maven-war-plugin 3.3.2 web/WEB-INF/web.xml package war
maven中settings.xml配置文件針對JDK版本指定
九、Tomcat安裝部署
以下操作在192.168.20.233服務器上完成。
(一)Tomcat安裝
tomcat運行需要JDK環境支持,所以以下步驟基于已經安裝好JDK基礎上進行。服務器相關防火墻已經關閉。
1、tomcat下載
可以直接通過tomcat官方網站下載對應版本地址,官方地址如下:
https://archive.apache.org
2、我這里下載的版本是apache-tomcat-9.0.58.tar.gz,可以通過以下鏈接進行下載。
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.58/bin/apache-tomcat-9.0.58.tar.gz
3、創建tomcat安裝目錄
mkdir /opt/tomcat
4、解壓源碼
tar -xzvf apache-tomcat-9.0.58.tar.gz
5、移動解壓后相關文件到安裝目錄下
mv /ruanjianfile/apache-tomcat-9.0.58/* /opt/tomcat/
6、啟動tomcat
/opt/tomcat/bin/startup.sh
7、通過瀏覽器訪問如下地址,可以正常打開如下界面,說明tomcat安裝成功。
http://192.168.20.233:8080/
8、配置tomcat用戶角色權限
因為Jenkins部署項目到Tomcat服務器,需要用到Tomcat的用戶,所以修改tomcat以下配置,添加用戶及權限。 編輯/opt/tomcat/conf/tomcat-users.xml文件,添加如下內容:
用戶和密碼都是:tomcat
9、修改配置文件,讓tomcat用戶可以登錄到tomcat服務器。
配置文件路徑如下:
/opt/tomcat/webapps/manager/META-INF/context.xml注釋如下內容即可。
10、重啟tomcat服務
/opt/tomcat/bin/shutdown.sh /opt/tomcat/bin/startup.sh
11、訪問以下地址進行測試,針對上述的配置是否已經生效。
http://192.168.20.233:8080/manager/html
提示需要登錄用戶名及密碼,填寫tomcat,tomcat
打開到如下界面說明配置成功。
十、IDEA中創建WEB項目
好多朋友不是做開發的,對IDEA使用比較陌生,在此也給大家演示如何在IDEA下創建WEB項目進行后面的實驗。這里主要是模擬開發角色進行往下的實驗。可以是你的物理主機上操作。
(一)IDEA安裝
大家可以自己網上找相關的安裝包進行安裝即可。我以下基于IntelliJ IDEA 2021.3.2 (Ultimate Edition)進行操作。
(二)IDEA中創建WEB項目
1、新建項目
(1)新建一個項目,如下圖所示:
(2)點擊Next,如下圖所示:
(3)點擊Finish完成項目建立,如下所示:
2、配置項目的tomcat環境
(1)選擇file—>>project structure
(2)選中project ,配置jdk和編譯輸入目錄,如下圖所示:
(3)選中libraries,配置依賴jar包,如下圖所示:
選擇自己環境的tomcat安裝包目錄,如下:
(4)選中modules,配置工程架構,點擊 + —Web
選中WEB,位于下方的Deployment Descriptors中,點擊“+”,選擇web工程中的web.xml文件。
下方的Web Resource Directories中,是配置資源文件的所在目錄的,點擊“鉛筆”,選擇到Web目錄。配置完成后點擊Apply
(5)選中artifacts配置 點擊 + — Web Application:Exploded — From Modules
此時建立了工程的部署WAR包
3、將工程部署在web容器中
(1)點擊Run — Edit Configurations菜單進入配置頁面
(2)點擊 + — Tomcat Server --> Local,進入Tomcat配置頁面
(3)選中Deployment配置 點擊 + — Artifact,選擇前面配置好的WAR包
(4)選中server配置 可配置tomcat容器的名稱,啟動后打開的瀏覽器,tomcat的端口,修改代碼后是否熱部署,以及配置虛擬機的啟動參數等等。
到此,一個Web工程創建及配置已完成,可啟動tomcat,啟動工程環境。
4、項目測試
(1)選擇項目中web,右鍵新建jsp。
填寫名字后按下回車鍵即可。
index.jsp創建如下代碼,用于測試頁面展示:
<%-- Created by IntelliJ IDEA. User: huanghao Date: 2023/10/11 Time: 19:08 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %>(2)右鍵,選擇Run index.jsp浩道jenkins主題 浩道的項目部署成功了!!!
出現如下界面說明項目跑成功。
如果跑不成功,說明URL配置不對,可以返回點擊Run — Edit Configurations菜單進入配置頁面重新配置,如下所示即可:
十一、Jenkins項目構建
Jenkins中自動構建項目的類型有很多,常用的有以下三種: 自由風格軟件項目(FreeStyle Project) Maven項目(Maven Project) 流水線項目(Pipeline Project) 每種類型的構建其實都可以完成一樣的構建過程與結果,只是在操作方式、靈活度等方面有所區別,在實際開發中可以根據自己的需求和習慣來選擇。
(一)Jenkins下構建自由風格軟件項目
以下演示的Jenkins構建自由風格軟件項目,實現項目代碼拉取,項目代碼編譯,項目打包,項目部署的集成化過程。
1、創建自由風格軟件項目
2、針對新建項目,配置源碼管理,用于從gitlab倉庫中拉取項目源碼,我這里配置如下:
3、添加構建步驟,用于編譯打包
echo "開始編譯和打包。。。" mvn clean packageecho "編譯和打包結束!!!"
4、項目部署
這里主要是將編譯打包好的war包部署到遠程服務器上的tomcat中,讓項目服務跑起來。
(1)安裝 Deploy to container插件 Jenkins提供Deploy to container插件,用于實現遠程部署到Tomcat的功能。
(2)添加tomcat用戶憑證,用戶名及密碼都是tomcat
(3)添加項目構建后操作內容
(4)開始構建,通過控制臺輸出日志,已經構建,編譯打包,部署成功。
打開部署后的tomcat,可以看到如下頁面,說明成功了!
(5)修改index.jsp代碼后,提交gitlab倉庫,再次構建,打開tomcat,如下所示:
注意,項目中的pom.xml文件,我這里大概內容如下:
4.0.0 com.example WebJenkinsDemo01 1.0-SNAPSHOT WebJenkinsDemo01 war UTF-8 1.8 1.8 5.8.1 org.junit.jupiter junit-jupiter-api ${junit.version} test org.junit.jupiter junit-jupiter-engine ${junit.version} test org.apache.maven.plugins maven-war-plugin 3.3.2 webWEB-INFweb.xml web
(二)Jenkins構建maven項目
構建maven項目需要相關安裝插件。
1、安裝Maven Integration插件
2、創建Maven項目
3、配置項目
(1)配置拉取代碼
(2)配置遠程部署
(3)配置構建
4、測試構建項目
(1)可以看到控制臺日志輸出顯示成功。
(2)打開tomcat,可以看到是我自己部署的項目頁面;
注意:這里可能會有不同版本jenkins,Maven等差異,需要的JDK環境不一樣導致構建失敗,可以通過日志看出,一開始我用JDK8構建失敗,改成JDK11后構建成功!!!
(三)Jenkins構建Pipeline流水線項目
1、Pipeline介紹
Pipeline,簡單來說,就是一套運行在 Jenkins 上的工作流框架,將原來獨立運行于單個或者多個節點的任務連接起來,實現單個任務難以完成的復雜流程編排和可視化的工作。
2、Pipeline構建項目好處
官方文檔是這樣列舉的: 代碼:Pipeline以代碼的形式實現,通常被檢入源代碼控制,使團隊能夠編輯,審查和迭代其傳送流程。 持久:無論是計劃內的還是計劃外的服務器重啟,Pipeline都是可恢復的。 可停止:Pipeline可接收交互式輸入,以確定是否繼續執行Pipeline。 多功能:Pipeline支持現實世界中復雜的持續交付要求。它支持fork/join、循環執行,并行執行任務的功能。 可擴展:Pipeline插件支持其DSL的自定義擴展 ,以及與其他插件集成的多個選項。
3、怎樣創建Pipeline項目
Pipeline 腳本是由 Groovy 語言實現的,但是我們沒必要單獨去學習 Groovy; Pipeline 支持兩種語法:Declarative(聲明式)和 Scripted Pipeline(腳本式)語法; Pipeline 也有兩種創建方法:可以直接在 Jenkins 的 Web UI 界面中輸入腳本;也可以通過創建一個 Jenkins?le 腳本文件放入項目源碼庫中(一般我們都推薦在 Jenkins 中直接從源代碼控制(SCM)中直接載入 Jenkins?le Pipeline 這種方法)。 需要安裝Pipeline插件;
4、Pipeline語法入門(聲明式)
(1)安裝pipeline插件
(2)創建Pipeline流水線項目
(3)找到---流水線---選擇Hello World模板
選擇Hello World模板后,生成腳本內容如下:
stages:代表整個流水線的所有執行階段。通常stages只有1個,里面包含多個stage
stage:代表流水線中的某個階段,可能出現n個。一般分為拉取代碼,編譯構建,部署等階段。
steps:代表一個階段內需要執行的邏輯。steps里面是shell腳本,git拉取代碼,ssh遠程發布等任意內容。
(4)如下我編寫一個簡單聲明式Pipeline:
pipeline { agent any stages { stage('項目代碼拉取') { steps { echo '項目代碼拉取中。。。' } } stage('項目代碼編譯構建') { steps { echo '項目代碼編譯構建中。。。' } } stage('項目代碼部署') { steps { echo '項目代碼部署中。。。' } } } }
(5)應用保存,點擊構建項目,控制臺日志輸出可以看到構建成功。
5、Pipeline語法入門(腳本式)
(1)創建Pipeline流水式項目
(2)找到---流水線---選擇Scripted Pipeline模板
生成如下腳本信息
Node:節點,一個 Node 就是一個 Jenkins 節點,Master 或者 Agent,是執行 Step 的具體運行 環境,后續講到Jenkins的Master-Slave架構的時候用到。
Stage:階段,一個 Pipeline 可以劃分為若干個 Stage,每個 Stage 代表一組操作,比如:Build、Test、Deploy,Stage 是一個邏輯分組的概念。
Step:步驟,Step 是最基本的操作單元,可以是打印一句話,也可以是構建一個 Docker 鏡像, 由各類 Jenkins 插件提供,比如命令:sh ‘make’,就相當于我們平時 shell 終端中執行 make 命令一樣。 如下編寫一個簡單的腳本式Pipeline:
node { def mvnHome stage('項目代碼拉取') { echo '項目代碼拉取中。。。' } stage('項目代碼編譯構建') { echo '項目代碼編譯構建中。。。' } stage('項目代碼部署') { echo '項目代碼部署中。。。' } }
(3)點擊應用保存,構建項目,可以看到構建成功。
6、Pipeline語法拉取代碼(聲明式)--腳本在UI中編輯
(1)構建Pipeline流水線項目linux-web-pipeline03
(2)找到---流水線---選擇Hello World模板,編輯腳本,這里主要編輯項目代碼拉取、編譯、構建這三個步驟對應操作代碼。通過下方的流水線語法自動完成代碼構建。
(3)生成代碼拉取腳本,找到代碼片段生成器,示例步驟中選擇checkout相關插件,填寫需要拉取的代碼Git倉庫地址,認證信息,下方點擊生成流水線腳本即可生成相關代碼,復制到上述腳本中對應拉取代碼步驟即可,如下圖所示:
(4)生成項目代碼編譯構建腳本,找到代碼片段生成器,示例步驟中選擇sh:Shell Script相關插件,填寫需要執行的shell命令腳本,下方點擊生成流水線腳本即可生成相關代碼,復制到上述腳本中對應項目代碼編譯構建步驟即可,如下圖所示:
(5)生成項目代碼部署腳本,找到代碼片段生成器,示例步驟中選擇deployt相關插件,填寫tomcat容器相關信息,下方點擊生成流水線腳本即可生成相關代碼,復制到上述腳本中對應項目代碼部署步驟即可,如下圖所示:
(6)生成對應步驟腳本后,完整腳本如下:
pipeline { agent any stages { stage('項目代碼拉取') { steps { checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'b3751cd7-e1eb-46c1-8939-dffda217db4d', url: 'git@192.168.20.231:haodaolinux_group/haodao_web.git']]) } } stage('項目代碼編譯構建') { steps { sh 'mvn clean package' } } stage('項目代碼部署') { steps { deploy adapters: [tomcat9(credentialsId: '3b209a0d-bf85-4d53-8096-a5c926b09377', path: '', url: 'http://192.168.20.233:8080/')], contextPath: null, war: 'target/*.war' } } } }
(7)點擊應用保存配置,構建,可以看到成功了
7、Pipeline語法拉取代碼(聲明式)--腳本在java項目中
(1)IDEA中對應項目根目錄創建HaodaoWebJenkinsFile文件,將UI中對應聲明式腳本復制粘貼過來
pipeline { agent any stages { stage('項目代碼拉取') { steps { checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'b3751cd7-e1eb-46c1-8939-dffda217db4d', url: 'git@192.168.20.231:haodaolinux_group/haodao_web.git']]) } } stage('項目代碼編譯構建') { steps { sh 'mvn clean package' } } stage('項目代碼部署') { steps { deploy adapters: [tomcat9(credentialsId: '3b209a0d-bf85-4d53-8096-a5c926b09377', path: '', url: 'http://192.168.20.233:8080/')], contextPath: null, war: 'target/*.war' } } } }
(2)創建Pipeline流水式項目,命名linux-web-pipeline04
(3)找到---流水線---選擇Pipeline script from SCM,編輯代碼遠程倉庫URL,選擇腳本路徑,如下圖所示:
(4)點擊應用保存配置,構建,可以看到成功了。
十二、Jenkins構建項目技巧
通過以上步驟,我們已經可以針對Jenkins項目進行整個構建流程的跑通。但是我們可以繼續利用構建項目的一些技巧,讓Jenkins構建項目變得更加高效,如通過觸發器構建項目。以下就針對這些構建技巧一一展開。
(一)Jenkins常見觸發器
Jenkins內置了4種構建觸發器:
觸發遠程構建 其他工程構建后觸發(Build after other projects are build) 定時構建(Build periodically) 輪詢SCM(Poll SCM) 以下針對這4鐘構建觸發器分別舉例實踐說明。
1、觸發遠程構建
(1)以下僅僅驗證觸發器功能,可以在原有已經創建項目的基礎是修改配置進行測試;
(2)對項目進行配置,找到“構建觸發器”,選擇“觸發遠程構建”,添加“身份驗證令牌”,描述下方有對應的觸發器鏈接,用瀏覽器打開對應格式的鏈接即可觸發遠程構建動作,如下圖所示:
(3)應用保存配置,現在該項目已經有了一次構建記錄,此時用瀏覽器打開如下鏈接,觸發遠程構建,看看會不會觸發項目進行第二次構建。
192.168.20.232:8080/job/linux-web-pipeline04/build?token=haodaolinux(4)當瀏覽器打開上述鏈接后,項目已經觸發第二次構建,即觸發遠程構建成功。
2、其它工程構建后觸發
其它工程構建后觸發,就說明涉及到另外一個工程,這里創建一個用于觸發的工程,名稱為linux-web-job
(1)創建一個名稱為linux-web-job的自由風格項目,對該項目進行簡單配置即可,如執行shell腳本操作,如下所示:
(3)對需要觸發構建的工程進行配置,這里主要是配置構建觸發器,找到“Build after other projects are built”,選擇對應的觸發工程linux-web-job,如下圖所示:
(4)對linux-web-job工程進行構建,另外配置好的觸發工程也會進行構建成功,如下所示:
3、定時構建觸發
定時構建,見名知意,就是通過設定觸發時間,讓工程自動構建,這里的定時機制跟Linux系統下的定時任務語法差不多。通過5個*空格開,從左往右表示分,時,日,月,周,5個時間段。(1)以下通過實例簡單講解這些時間段表示方法。
1)每10分鐘構建一次:H代表形參 H/10 * * * * ,這樣09:00,09:10,09:20,...,按10分鐘間隔有規律的構建;
2)每2個小時構建一次: H H/2 * * *
3)每天的9點,11點,20點,一天構建3次,(多個時間點中間用逗號隔開):0 9,11,20 * * *
4)每天中午12點定時構建一次: H 12 * * *
5)每天下午20點定時構建一次: H 20 * * *
6)在每個小時的前半個小時內的每10分鐘構建一次: H(0-29)/10 * * * *
7)每兩小時一次,每個工作日上午9點到下午5點(也許是上午10:36,下午12:36,下午2:36,下午4:36)構建一次: H H(9-16)/2 * * 1-5
(2)以下對原來項目修改配置,讓項目每隔2分鐘構建一次,如下圖所示:
(3)查看執行效果
4、輪詢SCM觸發
輪詢SCM,是指Jenkins定時掃描本地代碼倉庫的代碼是否有變更,如果代碼有變更就觸發項目構建。
但是這種方式有個弊端,那就是這個構建觸發器,Jenkins會定時掃描本地整個項目的代碼,增大了系統的開銷,實際項目中是不建議使用的。 以下也針對這種觸發方式做一個配置實驗。 輪詢SCM觸發原理示意圖如下:
(1)針對已有項目做輪詢SCM觸發配置。如下所示:
以上配置表示每分鐘去輪詢代碼是否有變更。
(2)修改代碼,提交遠程倉庫;
(3)待代碼提交倉庫后一會,項目會觸發構建,并且成功。
5、Webhook自動觸發
Webhook自動觸發構建就是針對輪詢SCM觸發中存在性能不佳而改進的一種優化方案。該方案就是利用Gitlab的webhook實現代碼push到倉庫,立即觸發項目自動構建。
Webhook自動觸發原理示意圖如下:
(1)Jenkins中安裝Generic Webhook Trigger和GitLab兩個插件。
(2)Jenkins中針對已有項目做Webhook觸發配置。如下所示:
等會需要把生成的webhook URL:http://192.168.20.232:8080/project/linux-web-pipeline04配置到Gitlab中。
(3)Gitlab配置webhook相關參數
1)啟用webhook功能 root賬戶登錄到Gitlab后臺,點擊Admin Area -> Settings -> Network
2)在對應項目添加webhook 點擊對應項目->Settings->Webhooks
(4)Jenkins中配置相關系統參數,Manage Jenkins->Con?gure System->System,修改配置如下:
(5)修改代碼,提交遠程倉庫;
(6)待代碼提交倉庫后一會,項目會觸發構建,并且成功。
十三、總結
到此,實驗已經結合環境跑通整個自動化持續集成流程了。但是Jenkins本身功能眾多,就不一一舉例演示給大家了,諸如后續的一些功能,如配置郵箱服務器發送構建結果、結合SonarQube進行代碼審查,以及基于Docker、K8S環境跑Jenkins持續集成,大家可以自行去研究,大體配置流程都差不多。
審核編輯:劉清
-
JAVA
+關注
關注
19文章
2960瀏覽量
104562 -
jenkins
+關注
關注
0文章
28瀏覽量
5146
原文標題:Centos7下搭建Jenkins+GitLab+Maven 實現代碼自動打包編譯發布
文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論