女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文掌握J(rèn)enkins自動(dòng)化部署

馬哥Linux運(yùn)維 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 2025-04-23 10:50 ? 次閱讀

掌握J(rèn)enkins自動(dòng)化部署:從代碼提交到自動(dòng)上線的全流程揭秘

Jenkins自動(dòng)化部署是現(xiàn)代軟件開發(fā)中不可或缺的一部分,它不僅簡(jiǎn)化了代碼的發(fā)布過(guò)程,還為整個(gè)團(tuán)隊(duì)帶來(lái)了無(wú)與倫比的效率和協(xié)作力。想象一下,開發(fā)者們可以專注于編寫高質(zhì)量的代碼,而不是為繁瑣的手動(dòng)部署所煩惱;測(cè)試人員能在每次提交代碼后立即看到測(cè)試結(jié)果,確保軟件質(zhì)量;運(yùn)營(yíng)團(tuán)隊(duì)不再需要熬夜加班來(lái)手動(dòng)發(fā)布新版本,而是可以安心地看到系統(tǒng)自動(dòng)完成一切。

Jenkins自動(dòng)化部署的意義在于它賦予了開發(fā)團(tuán)隊(duì)一種近乎魔法般的力量,將復(fù)雜、易出錯(cuò)的手動(dòng)操作變?yōu)楹?jiǎn)單、高效的流水線流程。通過(guò)CI/CD(持續(xù)集成/持續(xù)部署),每一次代碼的提交都能觸發(fā)自動(dòng)化的構(gòu)建、測(cè)試和部署,確保每一個(gè)版本的上線都是經(jīng)過(guò)嚴(yán)格測(cè)試和驗(yàn)證的。這種無(wú)縫的工作流不僅提高了開發(fā)速度,還顯著降低了風(fēng)險(xiǎn),讓軟件的發(fā)布更為可靠。

可以說(shuō),Jenkins自動(dòng)化部署不僅是技術(shù)上的進(jìn)步,更是一種開發(fā)理念的革新。它讓軟件開發(fā)變得更高效、更可靠、更具創(chuàng)新力。只要你體驗(yàn)過(guò)Jenkins帶來(lái)的便利,你就再也不會(huì)回到手動(dòng)部署的時(shí)代,因?yàn)槟欠N“代碼一提交,系統(tǒng)自己搞定”的感覺,實(shí)在是太讓人欲罷不能了!

這就是Jenkins的力量,它不僅改變了開發(fā)的方式,也改變了我們對(duì)軟件開發(fā)的認(rèn)知。如果你還沒(méi)嘗試過(guò)Jenkins,現(xiàn)在就是最好的時(shí)機(jī),去體驗(yàn)一下現(xiàn)代開發(fā)的魅力吧!

1.Jenkins工作流程

當(dāng)你提交代碼后,Jenkins能夠自動(dòng)觸發(fā)部署的背后,是一整套自動(dòng)化構(gòu)建和交付的流水線(Pipeline)在起作用。這里我將詳細(xì)介紹Jenkins的工作流程和內(nèi)部原理,包括它如何監(jiān)控代碼庫(kù)的變化、觸發(fā)構(gòu)建、執(zhí)行測(cè)試、打包以及最終部署到服務(wù)器的過(guò)程。

1.源代碼管理(SCM)輪詢或Webhooks觸發(fā)

?SCM輪詢:Jenkins會(huì)定期檢查(輪詢)配置的源代碼管理系統(tǒng)(如Git、SVN等)的倉(cāng)庫(kù),看是否有新的提交或代碼更改。如果檢測(cè)到變化,就會(huì)觸發(fā)構(gòu)建任務(wù)。這種方法需要Jenkins定時(shí)訪問(wèn)代碼庫(kù),可能會(huì)有一定的延遲。

?Webhooks:相比之下,Webhooks是一種更為實(shí)時(shí)的觸發(fā)方式。開發(fā)者提交代碼后,源代碼管理系統(tǒng)會(huì)立即向Jenkins發(fā)送一個(gè)HTTP請(qǐng)求(Webhook),通知Jenkins有新提交。這使得Jenkins能夠更快響應(yīng)代碼變化,立即啟動(dòng)構(gòu)建過(guò)程。

2.觸發(fā)構(gòu)建任務(wù)

一旦Jenkins接收到代碼變更的通知,它會(huì)根據(jù)配置的Pipeline或Job來(lái)決定如何處理這次構(gòu)建。Jenkins中的Pipeline是基于Groovy腳本的,它定義了從代碼提交到最終部署的整個(gè)流程。

3.流水線(Pipeline)階段

Pipeline分為多個(gè)階段,每個(gè)階段都可以獨(dú)立執(zhí)行一組任務(wù)。這些階段通常包括:

?Checkout代碼:Jenkins從源代碼管理系統(tǒng)中將最新的代碼拉取到構(gòu)建節(jié)點(diǎn)上。這一步通常使用插件(如Git插件)來(lái)與代碼庫(kù)交互。

?構(gòu)建(Build):Jenkins根據(jù)配置的構(gòu)建工具(如Maven、Gradle)對(duì)代碼進(jìn)行編譯、打包。在這一步,代碼會(huì)被轉(zhuǎn)化為可執(zhí)行的應(yīng)用程序包(如JAR、WAR文件)或Docker鏡像。

?測(cè)試(Test):Jenkins會(huì)運(yùn)行自動(dòng)化測(cè)試腳本,包括單元測(cè)試、集成測(cè)試、功能測(cè)試等。這一步至關(guān)重要,因?yàn)樗_保代碼在引入新變更后仍然是穩(wěn)定和可靠的。

?代碼質(zhì)量分析(Optional):Jenkins可以執(zhí)行代碼質(zhì)量檢查,使用工具如SonarQube來(lái)分析代碼的復(fù)雜度、安全性和可維護(hù)性,并生成報(bào)告。

?部署(Deploy):當(dāng)所有前面的步驟都成功完成后,Jenkins會(huì)執(zhí)行部署階段。根據(jù)配置,它可以將構(gòu)建產(chǎn)物部署到不同的環(huán)境,如開發(fā)環(huán)境、測(cè)試環(huán)境或生產(chǎn)環(huán)境。這一步可以通過(guò)SSH、FTP、容器化部署(Docker、Kubernetes)或云服務(wù)API來(lái)實(shí)現(xiàn)。

4.工作節(jié)點(diǎn)(Agent)與主節(jié)點(diǎn)(Master)協(xié)作

Jenkins采用主從架構(gòu),其中主節(jié)點(diǎn)(Master)負(fù)責(zé)調(diào)度任務(wù)、管理工作隊(duì)列、監(jiān)控節(jié)點(diǎn)狀態(tài)等。工作節(jié)點(diǎn)(Agent)實(shí)際執(zhí)行構(gòu)建任務(wù),如代碼編譯、測(cè)試和部署等。

當(dāng)Pipeline被觸發(fā)時(shí),Jenkins主節(jié)點(diǎn)會(huì)分配一個(gè)或多個(gè)工作節(jié)點(diǎn)來(lái)執(zhí)行具體任務(wù)。工作節(jié)點(diǎn)從主節(jié)點(diǎn)獲取任務(wù)后,開始執(zhí)行相應(yīng)的步驟,完成后將結(jié)果返回給主節(jié)點(diǎn)。

5.Jenkinsfile(流水線腳本)

Jenkinsfile是定義Pipeline的腳本文件,通常存儲(chǔ)在代碼庫(kù)中。這使得整個(gè)構(gòu)建、測(cè)試和部署的流程代碼化,并與項(xiàng)目代碼一起版本控制。在Jenkinsfile中,你可以定義Pipeline的各個(gè)階段、條件邏輯、并行任務(wù)等。

6.通知與反饋

Jenkins在構(gòu)建和部署過(guò)程中會(huì)生成實(shí)時(shí)的日志,并在任務(wù)完成后發(fā)送通知(如通過(guò)電子郵件、Slack)。如果構(gòu)建失敗,Jenkins會(huì)立即通知相關(guān)人員,以便他們能夠快速響應(yīng)和修復(fù)問(wèn)題。

7.持續(xù)集成與持續(xù)交付/部署(CI/CD)

整個(gè)流程的核心思想是CI/CD,通過(guò)持續(xù)集成和交付,讓開發(fā)團(tuán)隊(duì)能夠頻繁地提交代碼,并自動(dòng)化測(cè)試、構(gòu)建和部署,減少人為錯(cuò)誤,提升軟件發(fā)布的效率和質(zhì)量。

可以通過(guò)一張圖來(lái)直觀展示Jenkins在整個(gè)流程中扮演的角色,具體如下所示:該圖主要對(duì)比了人工部署與Jenkins自動(dòng)化部署的過(guò)程。

beabbb40-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

Jenkins的工作流程是通過(guò)SCM輪詢或Webhooks來(lái)實(shí)時(shí)監(jiān)控代碼變化,使用Pipeline將構(gòu)建、測(cè)試、打包、部署等步驟串聯(lián)起來(lái),自動(dòng)化地將應(yīng)用程序從開發(fā)環(huán)境推送到生產(chǎn)環(huán)境。其主從架構(gòu)、可配置的Pipeline、廣泛的插件支持,使得Jenkins成為了自動(dòng)化部署的強(qiáng)大工具,讓整個(gè)軟件開發(fā)生命周期變得更加高效和可靠。

下面,讓我們一起踏入使用Jenkins自動(dòng)部署Spring Boot項(xiàng)目的奇妙之旅!

2.搭建Jenkins

1.創(chuàng)建一個(gè)數(shù)據(jù)目錄

# 創(chuàng)建 jenkins 目錄
mkdir/data/jenkins_home/
# 修改目錄的所有者,以便于 Jenkins 容器能夠操作該目錄
chown-R 1000:1000 /data/jenkins_home/





2.拉取jenkins鏡像

docker pull jenkins/jenkins:lts





3.啟動(dòng)jenkins容器

為了防止與 Spring Boot 默認(rèn)使用的 8080 端口發(fā)生沖突,我選擇將 Jenkins 服務(wù)器的訪問(wèn)端口配置為 8088。此外,在確保 Jenkins 可以從外部網(wǎng)絡(luò)訪問(wèn)的同時(shí),也需要在云服務(wù)器的安全組中配置防火墻規(guī)則來(lái)開放 8088 端口,這樣外部客戶端才能通過(guò)此端口訪問(wèn)到 Jenkins 服務(wù)器。

docker run -d --name jenkins -p 8088:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts





這樣的配置不僅能夠確保 Jenkins 服務(wù)與其他可能運(yùn)行在同一服務(wù)器上的服務(wù)(如 Spring Boot 應(yīng)用)之間不會(huì)產(chǎn)生端口沖突,還能通過(guò)精細(xì)控制防火墻規(guī)則來(lái)提高系統(tǒng)的安全性。
在云服務(wù)器的安全組設(shè)置中,你需要添加一條入站規(guī)則,允許來(lái)自特定 IP 地址或 IP 范圍的流量通過(guò) 8088 端口進(jìn)入服務(wù)器。這樣既能保證 Jenkins 的可用性,也能限制不必要的網(wǎng)絡(luò)訪問(wèn),從而提升整體安全性。

4.訪問(wèn)Jenkins

一旦Jenkins容器啟動(dòng),你可以通過(guò)訪問(wèn)http://localhost:8088來(lái)訪問(wèn)Jenkins界面。(注意:這里的localhost對(duì)應(yīng)的你的云服務(wù)器IP地址?。?/p>

首次訪問(wèn)時(shí),系統(tǒng)會(huì)要求你輸入初始管理員密碼。

bec95268-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

5.獲取管理員密碼

可以直接去宿主機(jī)的 /data/jenkins_home/secrets/initialAdminPassword 位置查看初始化密碼,具體如下所示:(這里的/data/jenkins_home/是前面你自己設(shè)置的Jenkins工作目錄)。

bee84b46-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述
獲取管理員密碼之后就可以直接使用admin賬戶進(jìn)行登錄,登錄之后的界面如下所示:

befd4640-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

3.安裝Maven

在Jenkins自動(dòng)化部署中,Maven被安裝在服務(wù)器上是為了執(zhí)行項(xiàng)目的構(gòu)建任務(wù),包括代碼編譯、依賴管理、測(cè)試執(zhí)行和打包操作。通過(guò)Maven,Jenkins能夠自動(dòng)化地將源代碼轉(zhuǎn)換為可部署的應(yīng)用程序包(如JAR或WAR文件),確保項(xiàng)目按需構(gòu)建并滿足所有依賴。

1.下載Maven
訪問(wèn)Maven官方下載頁(yè)面,選擇需要的版本,復(fù)制下載鏈接。使用wget命令下載Maven。例如下載Maven 3.8.8版本:

wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz





2.解壓文件
將下載的文件解壓到你想要安裝的位置,例如/opt目錄:

sudotar -zxvf apache-maven-3.8.8-bin.tar.gz -C /opt





3.配置環(huán)境變量
為了方便使用Maven,需要配置環(huán)境變量。編輯/etc/profile文件:

sudovi /etc/profile





在文件末尾添加以下內(nèi)容:
exportM2_HOME=/opt/apache-maven-3.8.8
exportPATH=$M2_HOME/bin:$PATH





4.使環(huán)境變量生效
保存文件并退出編輯器,然后使環(huán)境變量生效:

source/etc/profile





5.驗(yàn)證安裝
現(xiàn)在可以通過(guò)以下命令驗(yàn)證Maven是否安裝成功:

mvn -version





如果安裝成功,你將看到Maven的版本信息。

bf147432-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

4.安裝插件

在Jenkins啟動(dòng)成功后,安裝以下三個(gè)插件能夠增強(qiáng)其功能,滿足特定的項(xiàng)目需求:

1.Gitee

?功能:Gitee插件允許Jenkins與Gitee代碼倉(cāng)庫(kù)集成,支持從Gitee倉(cāng)庫(kù)中拉取代碼、觸發(fā)構(gòu)建任務(wù)。這對(duì)于使用Gitee進(jìn)行源代碼管理的團(tuán)隊(duì)非常有用,能簡(jiǎn)化CI/CD流程。

?安裝:在“插件管理”界面,搜索“Gitee”插件并安裝。安裝后,可以在Jenkins的項(xiàng)目配置中添加Gitee倉(cāng)庫(kù)的訪問(wèn)信息,配置Webhook以便代碼提交時(shí)自動(dòng)觸發(fā)構(gòu)建。

2.Maven Integration

?功能:Maven Integration插件允許Jenkins與Maven無(wú)縫集成,使得Jenkins可以直接調(diào)用Maven進(jìn)行項(xiàng)目的構(gòu)建、測(cè)試和打包。這對(duì)于Java項(xiàng)目尤其重要,因?yàn)镸aven能夠自動(dòng)管理項(xiàng)目依賴、編譯代碼,并生成可部署的包(如JAR、WAR)。

?安裝:在Jenkins管理界面中,導(dǎo)航到“插件管理” -> “可選插件”,搜索“Maven Integration”并點(diǎn)擊“安裝”。

3.Publish Over SSH

?功能:Publish Over SSH插件允許Jenkins通過(guò)SSH將構(gòu)建生成的文件(如JAR、WAR包)安全地傳輸?shù)竭h(yuǎn)程服務(wù)器上。這對(duì)于部署過(guò)程至關(guān)重要,尤其是當(dāng)需要將構(gòu)建產(chǎn)物自動(dòng)部署到生產(chǎn)或測(cè)試服務(wù)器時(shí)。

?安裝:同樣在“插件管理”界面,搜索“Publish Over SSH”并安裝。安裝后,你可以在“系統(tǒng)管理”中配置SSH服務(wù)器的連接信息。

通過(guò)安裝這些插件,Jenkins能夠更好地支持項(xiàng)目構(gòu)建、打包、部署和代碼管理,大大提高自動(dòng)化部署的效率和靈活性。

具體的安裝步驟如下所示:點(diǎn)擊左邊的系統(tǒng)管理,然后選擇右邊的插件管理,進(jìn)行配置。

bf2c5214-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述
之后在可選插件中,搜索 Maven Integration 和 Publish Over SSH 以及 Gitee 三個(gè)插件安裝即可:

bf446548-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

全部插件安裝完成之后,最好登錄服務(wù)器,重啟Jenkins容器以更新插件!具體命令如下:

docker restart jenkins





5.全局工具配置

在使用Jenkins進(jìn)行自動(dòng)化部署之前,進(jìn)行一些全局工具的配置是必要的,這樣可以確保Jenkins能夠正確調(diào)用這些工具來(lái)完成構(gòu)建、測(cè)試和部署任務(wù)。

bf60dd22-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

以下是Jenkins通常需要配置的全局工具:

1.JDK(Java Development Kit)

?為什么需要:Jenkins本身是基于Java的應(yīng)用,并且許多構(gòu)建工具(如Maven、Gradle)也依賴JDK。因此,配置JDK是必不可少的。

?配置方法:在Jenkins的“系統(tǒng)管理” -> “全局工具配置”中,找到JDK配置部分,點(diǎn)擊“添加JDK”,指定JDK的安裝路徑,或者選擇自動(dòng)安裝。

2.Maven

?為什么需要:Maven是Java項(xiàng)目構(gòu)建的標(biāo)準(zhǔn)工具,用于依賴管理、代碼編譯、測(cè)試和打包。通過(guò)配置Maven,Jenkins可以調(diào)用Maven進(jìn)行項(xiàng)目構(gòu)建。

?配置方法:在“全局工具配置”中找到Maven配置部分,點(diǎn)擊“添加Maven”,指定Maven的安裝路徑,或者選擇自動(dòng)安裝。

bf7ceda0-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

3.Git

?為什么需要:大多數(shù)項(xiàng)目都使用Git進(jìn)行源代碼管理。通過(guò)配置Git,Jenkins可以從Git倉(cāng)庫(kù)中拉取代碼并進(jìn)行構(gòu)建。

?配置方法:在“全局工具配置”中找到Git配置部分,添加Git安裝路徑,或者選擇自動(dòng)安裝。確保Jenkins可以訪問(wèn)正確版本的Git(由于 Jenkins 容器中已經(jīng)存在 git 了,所以這里不需要額外安裝 git,默認(rèn)即可)。

bf8e69a4-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

4.Gradle(可選)

?為什么需要:對(duì)于使用Gradle構(gòu)建的項(xiàng)目,配置Gradle工具是必要的。Gradle是另一個(gè)流行的構(gòu)建工具,尤其在Android開發(fā)中被廣泛使用。

?配置方法:在“全局工具配置”中,找到Gradle配置部分,點(diǎn)擊“添加Gradle”,指定Gradle的安裝路徑或選擇自動(dòng)安裝。

全局工具配置是確保Jenkins能夠順利執(zhí)行構(gòu)建、測(cè)試和部署任務(wù)的基礎(chǔ)。通過(guò)配置JDK、Maven、Git等工具,Jenkins可以與這些構(gòu)建工具無(wú)縫集成,自動(dòng)化地完成從代碼拉取到部署的整個(gè)流程。這些配置不僅提高了Jenkins的靈活性和適用性,還簡(jiǎn)化了每個(gè)項(xiàng)目的具體配置工作。

6.系統(tǒng)配置

在Jenkins中進(jìn)行系統(tǒng)配置時(shí),Publish Over SSH和Gitee的配置是實(shí)現(xiàn)代碼部署和與代碼倉(cāng)庫(kù)集成的關(guān)鍵步驟。以下是詳細(xì)的配置步驟介紹:

1.Publish Over SSH 配置

Publish Over SSH插件允許Jenkins通過(guò)SSH將構(gòu)建生成的文件(如JAR、WAR包)安全地傳輸?shù)竭h(yuǎn)程服務(wù)器上。以下是配置步驟:

步驟 1: 安裝 Publish Over SSH 插件

? 如果前面已經(jīng)安裝請(qǐng)忽略步驟1

? 登錄Jenkins的管理界面。

? 在Jenkins首頁(yè),點(diǎn)擊左側(cè)菜單中的“系統(tǒng)管理”或“Manage Jenkins”。

? 在管理頁(yè)面中,選擇“插件管理”或“Manage Plugins”。

? 在“可選插件”或“Available Plugins”選項(xiàng)卡中,搜索Publish Over SSH。

? 勾選插件并點(diǎn)擊“安裝”,等待插件安裝完成。

步驟 2: 配置 SSH 服務(wù)器

? 插件安裝完成后,返回“系統(tǒng)管理”頁(yè)面,選擇“系統(tǒng)配置”或“Configure System”。

? 向下滾動(dòng)頁(yè)面,找到Publish Over SSH部分。

? 點(diǎn)擊“添加”按鈕,配置一個(gè)新的SSH服務(wù)器:

?Name: 為服務(wù)器配置一個(gè)易記的名稱。

?Hostname: 輸入目標(biāo)服務(wù)器的IP地址或主機(jī)名。

?Username: 輸入用于登錄到目標(biāo)服務(wù)器的用戶名。

?Remote Directory: 指定在遠(yuǎn)程服務(wù)器上的默認(rèn)目錄,Jenkins將把構(gòu)建產(chǎn)物傳輸?shù)酱四夸洝?/p>

?Use password authentication, or use a different key: 選擇是使用密碼認(rèn)證,還是提供私鑰文件進(jìn)行認(rèn)證。

? 如果使用密鑰認(rèn)證,配置私鑰文件路徑或直接粘貼私鑰內(nèi)容。

? 點(diǎn)擊“測(cè)試配置”或“Test Configuration”按鈕,驗(yàn)證Jenkins是否能夠成功連接到目標(biāo)服務(wù)器。

bfa03b34-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

步驟 3: 保存配置

? 配置完成后,點(diǎn)擊頁(yè)面底部的“保存”或“應(yīng)用”按鈕,以確保你的設(shè)置被保存。

2.Gitee 配置

通過(guò)配置Gitee,Jenkins能夠與Gitee代碼倉(cāng)庫(kù)集成,實(shí)現(xiàn)代碼的自動(dòng)拉取和構(gòu)建。以下是配置步驟:

步驟 1: 安裝 Gitee 插件

? 同樣在Jenkins的插件管理中,搜索Gitee并安裝該插件。

步驟 2: 獲取 Gitee API Token

? 登錄到Gitee賬戶,點(diǎn)擊鏈接。

? 在“私人令牌”部分,點(diǎn)擊“生成新的令牌”。

? 根據(jù)需要選擇令牌的權(quán)限,例如“repo”(代碼倉(cāng)庫(kù)相關(guān)操作)和“user_info”(用戶信息查看)。

? 生成令牌后,復(fù)制并保存。

bfb37aa0-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

步驟 3: 添加 Gitee配置

? 在“系統(tǒng)配置”頁(yè)面,找到Gitee 配置。

? 配置你的Gitee倉(cāng)庫(kù)信息:

?鏈接名: 輸入你的Gitee倉(cāng)庫(kù)的URL(HTTPS)。

?Gitee域名URL: 輸入Gitee域名完整URL地址。

?證書令牌: 選擇Gitee API令牌。

bfc9049c-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

步驟 4: 添加憑據(jù)

? 在Gitee配置頁(yè)面 -> 點(diǎn)擊添加Jenkins。

? 在彈出的對(duì)話框中選擇“Gitee API令牌”,在“Gitee APIV5私人令牌”字段中粘貼你剛剛生成的API Token。

? 為該憑據(jù)提供一個(gè)名稱,并點(diǎn)擊“添加”保存。

bfe2b4dc-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述
通過(guò)上述步驟,就已經(jīng)在Jenkins中完成了Publish Over SSH和Gitee的配置。這些配置使得Jenkins能夠安全地將構(gòu)建產(chǎn)物部署到遠(yuǎn)程服務(wù)器,同時(shí)自動(dòng)拉取和構(gòu)建Gitee上的代碼,為CI/CD流程提供了基礎(chǔ)支持。

7.構(gòu)建項(xiàng)目

在Jenkins中新建一個(gè)Maven項(xiàng)目的步驟如下:

1.登錄Jenkins控制臺(tái)

首先,訪問(wèn)Jenkins的Web界面,使用你的管理員賬戶登錄。

2.新建項(xiàng)目

? 在Jenkins首頁(yè),點(diǎn)擊左側(cè)菜單中的“新建任務(wù)”或“New Item”。

? 在彈出的窗口中,為項(xiàng)目輸入一個(gè)名稱,然后選擇“構(gòu)建一個(gè)Maven項(xiàng)目”或“Maven Project”。

? 點(diǎn)擊“確定”進(jìn)入項(xiàng)目配置頁(yè)面。

3.配置源碼管理(Source Code Management, SCM)

? 在項(xiàng)目配置頁(yè)面,找到“源碼管理”部分。

? 選擇你使用的版本控制系統(tǒng)(如Git),并輸入項(xiàng)目的代碼倉(cāng)庫(kù)URL。

? 如果倉(cāng)庫(kù)需要認(rèn)證,配置相應(yīng)的憑證(Credentials),如用戶名和密碼或SSH密鑰。

? 設(shè)置倉(cāng)庫(kù)中觸發(fā)構(gòu)建的分支代碼(*/release表示release分支有代碼提交則自動(dòng)觸發(fā)構(gòu)建)。

bffab302-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

4.構(gòu)建觸發(fā)器

? 配置構(gòu)建觸發(fā)器,這可以是輪詢SCM(Poll SCM)、Webhook觸發(fā)、定時(shí)構(gòu)建等。

? 例如,如果你希望在每次代碼提交時(shí)觸發(fā)構(gòu)建,可以選擇“GitHub hook trigger for GITScm polling”或“Poll SCM”,并設(shè)置合適的時(shí)間間隔。

c00c3186-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

5.Gitee中配置WebHook

在Gitee中配置WebHook時(shí),首先進(jìn)入倉(cāng)庫(kù)的“管理”頁(yè)面,選擇“Webhooks”并添加新WebHook。在請(qǐng)求URL中輸入Jenkins的WebHook地址(如),選擇觸發(fā)事件(如推送事件),然后保存配置。這樣,每當(dāng)代碼提交時(shí),Gitee將自動(dòng)通知Jenkins觸發(fā)相應(yīng)的構(gòu)建任務(wù)。

c023d444-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述
上圖中所需的URL將在設(shè)置Jenkins的Webhook觸發(fā)器時(shí)指定,這個(gè)URL用于接收外部觸發(fā)信號(hào)以啟動(dòng)構(gòu)建流程。由于 Jenkins 是要登錄之后才可以操作的,處于公網(wǎng)的 Jenkins 我們也不能降至設(shè)置為匿名訪問(wèn),所以這里我們將 Jenkins 的用戶名密碼放在請(qǐng)求地址中,最終地址類似這樣:http://username:password@IP:8088/xxxx。**而Jenkins系統(tǒng)中生成的URL是不包含用戶名和密碼的,需要你自己手動(dòng)添加!**
此外,為了安全起見,Jenkins系統(tǒng)會(huì)自動(dòng)生成一個(gè)密碼或密鑰,用于驗(yàn)證Webhook請(qǐng)求的有效性,確保只有授權(quán)方能觸發(fā)構(gòu)建任務(wù)。

c03bf362-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述 對(duì)應(yīng)的URL和密碼輸入并新建WebHook即可,注意,因?yàn)镚itee中的bug,就算配置成功了,測(cè)試WebHook也會(huì)出現(xiàn)404錯(cuò)誤。因此如果測(cè)試出現(xiàn)404錯(cuò)誤不要著急,可以嘗試構(gòu)建項(xiàng)目看看效果再來(lái)確定問(wèn)題!

c0505d2a-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

6.構(gòu)建設(shè)置

? 在“構(gòu)建”部分,你需要輸入Maven構(gòu)建的根POM文件的路徑,通常是pom.xml。

? 在“Goals and options”中,輸入你希望執(zhí)行的Maven命令,如clean install或package,根據(jù)項(xiàng)目需求選擇合適的構(gòu)建目標(biāo)。

c065f9fa-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

7.構(gòu)建后操作(Post Steps)

? 你可以在“構(gòu)建后操作”部分添加一些后續(xù)步驟,如“發(fā)送郵件通知”或“部署到服務(wù)器”。

? 如果你使用Publish Over SSH插件,可以配置將構(gòu)建產(chǎn)物上傳到遠(yuǎn)程服務(wù)器的步驟。

c076cf5a-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

此外,這里還需要上傳并執(zhí)行構(gòu)建后的deploy.sh腳本文件,具體腳本如下所示:

# 設(shè)置jdk路徑
exportJAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64
exportPATH=$JAVA_HOME/bin:$PATH

# 設(shè)置jar路徑和文件名
JAR_PATH=/root/deploy_data
JARFILE=webserver-1.0.0-SNAPSHOT.jar

# kill掉正在運(yùn)行的java進(jìn)程
ps -ef | grep$JARFILE| grep -v grep | awk'{print $2}'| xargskill-9

# 開啟一個(gè)新的java進(jìn)程
nohupjava -jar -Xms512m -Xmx1024m$JAR_PATH/$JARFILE> out.log 2>&1 &

if[ $? -eq 0 ];then
 sleep30
 tail-n 50 out.log
fi









這個(gè)腳本文件需要根據(jù)服務(wù)器中jdk的路徑以及jar的路徑和名稱進(jìn)行修改!

8.保存配置并構(gòu)建

? 配置完成后,點(diǎn)擊頁(yè)面底部的“保存”或“應(yīng)用”按鈕。

? 返回項(xiàng)目主頁(yè),點(diǎn)擊“立即構(gòu)建”或“Build Now”按鈕,啟動(dòng)第一次構(gòu)建。

c08c82dc-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

9.查看構(gòu)建結(jié)果

? 構(gòu)建過(guò)程會(huì)在Jenkins的控制臺(tái)輸出中顯示,你可以點(diǎn)擊項(xiàng)目主頁(yè)左側(cè)的“控制臺(tái)輸出”查看構(gòu)建日志。

? 如果構(gòu)建成功,Jenkins會(huì)顯示一個(gè)綠色的“成功”標(biāo)記,如果失敗,則顯示紅色“失敗”標(biāo)記。

c0a0a604-1e9d-11f0-9310-92fbcf53809c.png

在這里插入圖片描述

通過(guò)以上步驟,你就可以在Jenkins中成功新建并配置一個(gè)Maven項(xiàng)目,實(shí)現(xiàn)自動(dòng)化構(gòu)建。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5118

    瀏覽量

    88927
  • 自動(dòng)化
    +關(guān)注

    關(guān)注

    29

    文章

    5740

    瀏覽量

    81614
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2950

    瀏覽量

    67855
  • jenkins
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    5297

原文標(biāo)題:掌握J(rèn)enkins自動(dòng)化部署:從代碼提交到自動(dòng)上線的全流程揭秘

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    讀懂自動(dòng)化是什么?

    自動(dòng)化是什么?自動(dòng)化的主要優(yōu)點(diǎn)是什么?自動(dòng)化的主要缺點(diǎn)是什么?自動(dòng)化有哪些應(yīng)用?
    發(fā)表于 07-13 06:48

    Jenkins遠(yuǎn)程部署Linux服務(wù)器的過(guò)程

    1、Jenkins遠(yuǎn)程部署Linux服務(wù)器  之前在Jenkins上也有些使用經(jīng)驗(yàn)了,但是都是使用團(tuán)隊(duì)配置好的Jenkins,自己只需要管
    發(fā)表于 11-18 18:12

    jenkins有什么用_jenkins如何自動(dòng)部署

    Jenkins個(gè)開源的、提供友好操作界面的持續(xù)集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續(xù)、自動(dòng)的構(gòu)建/測(cè)試軟件項(xiàng)目、監(jiān)控外部任務(wù)的運(yùn)行(這個(gè)比較抽象,暫且寫上,不做解釋)。
    發(fā)表于 12-20 19:06 ?3.7w次閱讀
    <b class='flag-5'>jenkins</b>有什么用_<b class='flag-5'>jenkins</b>如何<b class='flag-5'>自動(dòng)</b><b class='flag-5'>部署</b>

    jenkins自動(dòng)化部署

    本文詳細(xì)介紹Jenkins的簡(jiǎn)單使用—jenkins自動(dòng)化部署。
    的頭像 發(fā)表于 02-06 11:27 ?4928次閱讀
    <b class='flag-5'>jenkins</b><b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>

    云平臺(tái)的自動(dòng)化部署設(shè)計(jì)與實(shí)現(xiàn)

    PXE管理子系統(tǒng)以及云平臺(tái)組件安裝子系統(tǒng)以及自動(dòng)化測(cè)試子系統(tǒng),并對(duì)各個(gè)子系統(tǒng)進(jìn)行設(shè)計(jì)。通過(guò)實(shí)際的生產(chǎn)環(huán)境的檢驗(yàn),成功的完整的部署了云平臺(tái),并將部署的時(shí)間由從前的周以上壓縮到兩天之內(nèi),
    發(fā)表于 02-23 10:07 ?0次下載
    云平臺(tái)的<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>設(shè)計(jì)與實(shí)現(xiàn)

    Jenkins+docker+springboot自動(dòng)部署項(xiàng)目

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。
    的頭像 發(fā)表于 09-14 09:30 ?1753次閱讀

    Jenkins+Docker自動(dòng)化部署SpringBoot最簡(jiǎn)流程

    簡(jiǎn)述實(shí)現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。
    的頭像 發(fā)表于 11-23 10:16 ?1568次閱讀

    Jenkins+Docker自動(dòng)化部署SpringBoot項(xiàng)目

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。
    的頭像 發(fā)表于 12-14 10:04 ?1146次閱讀

    Jenkins+Docker實(shí)現(xiàn)自動(dòng)化部署項(xiàng)目!

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。
    的頭像 發(fā)表于 01-06 15:36 ?1416次閱讀

    Jenkins+Docker自動(dòng)化部署SpringBoot應(yīng)用最精簡(jiǎn)流程

    簡(jiǎn)述實(shí)現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。
    的頭像 發(fā)表于 11-06 16:27 ?2517次閱讀
    <b class='flag-5'>Jenkins</b>+Docker<b class='flag-5'>一</b>鍵<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>SpringBoot應(yīng)用最精簡(jiǎn)流程

    基于Jenkins+GitLab+Maven實(shí)現(xiàn)代碼自動(dòng)打包編譯發(fā)布

    Jenkins個(gè)獨(dú)立開源的持續(xù)集成和持續(xù)交付工具,用于自動(dòng)化構(gòu)建、測(cè)試和部署軟件項(xiàng)目。
    的頭像 發(fā)表于 11-20 09:57 ?5737次閱讀
    基于<b class='flag-5'>Jenkins</b>+GitLab+Maven實(shí)現(xiàn)代碼<b class='flag-5'>自動(dòng)</b>打包編譯發(fā)布

    使用Jenkins和單個(gè)模板部署多個(gè)Kubernetes組件

    在持續(xù)集成和部署中,我們通常需要部署多個(gè)實(shí)例或組件到Kubernetes集群中。通過(guò)Jenkins的管道腳本,我們可以自動(dòng)化這個(gè)過(guò)程。在本文中,我將演示如何使用
    的頭像 發(fā)表于 01-02 11:40 ?1007次閱讀
    使用<b class='flag-5'>Jenkins</b>和單個(gè)模板<b class='flag-5'>部署</b>多個(gè)Kubernetes組件

    Flexus X 實(shí)例 Docker+Jenkins+gitee 實(shí)現(xiàn) CICD 自動(dòng)化部署 - 解放你的雙手~

    前言 828 B2B 企業(yè)節(jié)特惠來(lái)襲,F(xiàn)lexus X 實(shí)例引領(lǐng)自動(dòng)化部署新紀(jì)元!Docker 攜手 Jenkins 與 Gitee,共創(chuàng) CICD 無(wú)限可能!在快速迭代的數(shù)字時(shí)代,我們自豪地推出
    的頭像 發(fā)表于 12-26 18:19 ?420次閱讀
    Flexus X 實(shí)例 Docker+<b class='flag-5'>Jenkins</b>+gitee 實(shí)現(xiàn) CICD <b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b> - 解放你的雙手~

    Jenkins 與 SonarQube 集成部署自動(dòng)化代碼質(zhì)量監(jiān)控

    的性能表現(xiàn),為 Jenkins 與 SonarQube 的集成部署提供強(qiáng)大支撐。在 Flexus X 的助力下,自動(dòng)化代碼掃描與質(zhì)量問(wèn)題即時(shí)反饋成為可能,顯著提升團(tuán)隊(duì)開發(fā)效率與軟件質(zhì)量。立即體驗(yàn)華為云
    的頭像 發(fā)表于 01-07 17:24 ?638次閱讀
    <b class='flag-5'>Jenkins</b> 與 SonarQube 集成<b class='flag-5'>部署</b>,<b class='flag-5'>自動(dòng)化</b>代碼質(zhì)量監(jiān)控

    基于 Docker 與 Jenkins 實(shí)現(xiàn)自動(dòng)化部署

    828 企業(yè)上云節(jié)優(yōu)惠,開啟您的 Docker 與 Jenkins 自動(dòng)化部署之旅,讓軟件創(chuàng)新更快步! 鏈接直達(dá)
    的頭像 發(fā)表于 01-07 17:25 ?451次閱讀
    基于 Docker 與 <b class='flag-5'>Jenkins</b> 實(shí)現(xiàn)<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>