自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用開源工具Jenkins構(gòu)建CI/CD流水線

開源
在本文中,我將分步演示如何使用 Jenkins 構(gòu)建 CI/CD 流水線。我們一起來看看吧。

[[281522]]

 通過這份 Jenkins 分步教程,構(gòu)建持續(xù)集成和持續(xù)交付(CI/CD)流水線。

在我的文章《使用開源工具構(gòu)建 DevOps 流水線的初學(xué)者指南》中,我分享了一個從頭開始構(gòu)建 DevOps 流水線的故事。推動該計劃的核心技術(shù)是 Jenkins,這是一個用于建立持續(xù)集成和持續(xù)交付(CI/CD)流水線的開源工具。

在花旗,有一個單獨的團隊為專用的 Jenkins 流水線提供穩(wěn)定的主從節(jié)點環(huán)境,但是該環(huán)境僅用于質(zhì)量保證(QA)、構(gòu)建階段和生產(chǎn)環(huán)境。開發(fā)環(huán)境仍然是非常手動的,我們的團隊需要對其進行自動化以在加快開發(fā)工作的同時獲得盡可能多的靈活性。這就是我們決定為 DevOps 建立 CI/CD 流水線的原因。Jenkins 的開源版本由于其靈活性、開放性、強大的插件功能和易用性而成為顯而易見的選擇。

在本文中,我將分步演示如何使用 Jenkins 構(gòu)建 CI/CD 流水線。

什么是流水線?

在進入本教程之前,了解有關(guān) CI/CD 流水線pipeline的知識會很有幫助。

首先,了解 Jenkins 本身并不是流水線這一點很有幫助。只是創(chuàng)建一個新的 Jenkins 作業(yè)并不能構(gòu)建一條流水線。可以把 Jenkins 看做一個遙控器,在這里點擊按鈕即可。當(dāng)你點擊按鈕時會發(fā)生什么取決于遙控器要控制的內(nèi)容。Jenkins 為其他應(yīng)用程序 API、軟件庫、構(gòu)建工具等提供了一種插入 Jenkins 的方法,它可以執(zhí)行并自動化任務(wù)。Jenkins 本身不執(zhí)行任何功能,但是隨著其它工具的插入而變得越來越強大。

流水線是一個單獨的概念,指的是按順序連接在一起的事件或作業(yè)組:

流水線pipeline”是可以執(zhí)行的一系列事件或作業(yè)。

理解流水線的最簡單方法是可視化一系列階段,如下所示:

Pipeline example

在這里,你應(yīng)該看到兩個熟悉的概念:階段Stage步驟Step

  • 階段:一個包含一系列步驟的塊。階段塊可以命名為任何名稱;它用于可視化流水線過程。
  • 步驟:表明要做什么的任務(wù)。步驟定義在階段塊內(nèi)。

在上面的示例圖中,階段 1 可以命名為 “構(gòu)建”、“收集信息”或其它名稱,其它階段塊也可以采用類似的思路。“步驟”只是簡單地說放上要執(zhí)行的內(nèi)容,它可以是簡單的打印命令(例如,echo "Hello, World")、程序執(zhí)行命令(例如,java HelloWorld)、shell 執(zhí)行命令( 例如,chmod 755 Hello)或任何其他命令,只要通過 Jenkins 環(huán)境將其識別為可執(zhí)行命令即可。

Jenkins 流水線以編碼腳本的形式提供,通常稱為 “Jenkinsfile”,盡管可以用不同的文件名。下面這是一個簡單的 Jenkins 流水線文件的示例:

  1. // Example of Jenkins pipeline script
  2.  
  3. pipeline {
  4.   stages {
  5.     stage("Build") {
  6.       steps {
  7.           // Just print a Hello, Pipeline to the console
  8.           echo "Hello, Pipeline!"
  9.           // Compile a Java file. This requires JDKconfiguration from Jenkins
  10.           javac HelloWorld.java
  11.           // Execute the compiled Java binary called HelloWorld. This requires JDK configuration from Jenkins
  12.           java HelloWorld
  13.           // Executes the Apache Maven commands, clean then package. This requires Apache Maven configuration from Jenkins
  14.           mvn clean package ./HelloPackage
  15.           // List the files in current directory path by executing a default shell command
  16.           sh "ls -ltr"
  17.       }
  18.    }
  19.    // And next stages if you want to define further...
  20.   } // End of stages
  21. } // End of pipeline

從此示例腳本很容易看到 Jenkins 流水線的結(jié)構(gòu)。請注意,默認情況下某些命令(如 javajavacmvn)不可用,需要通過 Jenkins 進行安裝和配置。 因此:

Jenkins 流水線是一種以定義的方式依次執(zhí)行 Jenkins 作業(yè)的方法,方法是將其編碼并在多個塊中進行結(jié)構(gòu)化,這些塊可以包含多個任務(wù)的步驟。

好。既然你已經(jīng)了解了 Jenkins 流水線是什么,我將向你展示如何創(chuàng)建和執(zhí)行 Jenkins 流水線。在本教程的最后,你將建立一個 Jenkins 流水線,如下所示:

Final Result

如何構(gòu)建 Jenkins 流水線

為了便于遵循本教程的步驟,我創(chuàng)建了一個示例 GitHub 存儲庫和一個視頻教程。

開始本教程之前,你需要:

  • Java 開發(fā)工具包(JDK):如果尚未安裝,請安裝 JDK 并將其添加到環(huán)境路徑中,以便可以通過終端執(zhí)行 Java 命令(如 java jar)。這是利用本教程中使用的 Java Web Archive(WAR)版本的 Jenkins 所必需的(盡管你可以使用任何其他發(fā)行版)。
  • 基本計算機操作能力:你應(yīng)該知道如何鍵入一些代碼、通過 shell 執(zhí)行基本的 Linux 命令以及打開瀏覽器。

讓我們開始吧。

步驟一:下載 Jenkins

導(dǎo)航到 Jenkins 下載頁面。向下滾動到 “Generic Java package (.war)”,然后單擊下載文件;將其保存在易于找到的位置。(如果你選擇其他 Jenkins 發(fā)行版,除了步驟二之外,本教程的其余步驟應(yīng)該幾乎相同。)使用 WAR 文件的原因是它是個一次性可執(zhí)行文件,可以輕松地執(zhí)行和刪除。

Download Jenkins as Java WAR file

步驟二:以 Java 二進制方式執(zhí)行 Jenkins

打開一個終端窗口,并使用 cd <your path> 進入下載 Jenkins 的目錄。(在繼續(xù)之前,請確保已安裝 JDK 并將其添加到環(huán)境路徑。)執(zhí)行以下命令,該命令將 WAR 文件作為可執(zhí)行二進制文件運行:

  1. java -jar ./jenkins.war

如果一切順利,Jenkins 應(yīng)該在默認端口 8080 上啟動并運行。

Execute as an executable JAR binary

步驟三:創(chuàng)建一個新的 Jenkins 作業(yè)

打開一個 Web 瀏覽器并導(dǎo)航到 localhost:8080。除非你有以前安裝的 Jenkins,否則應(yīng)直接轉(zhuǎn)到 Jenkins 儀表板。點擊 “Create New Jobs”。你也可以點擊左側(cè)的 “New Item”。

Create New Job

步驟四:創(chuàng)建一個流水線作業(yè)

在此步驟中,你可以選擇并定義要創(chuàng)建的 Jenkins 作業(yè)類型。選擇 “Pipeline” 并為其命名(例如,“TestPipeline”)。單擊 “OK” 創(chuàng)建流水線作業(yè)。

Create New Pipeline Job

你將看到一個 Jenkins 作業(yè)配置頁面。向下滾動以找到 “Pipeline” 部分。有兩種執(zhí)行 Jenkins 流水線的方法。一種方法是在 Jenkins 上直接編寫流水線腳本,另一種方法是從 SCM(源代碼管理)中檢索 Jenkins 文件。在接下來的兩個步驟中,我們將體驗這兩種方式。

步驟五:通過直接腳本配置并執(zhí)行流水線作業(yè)

要使用直接腳本執(zhí)行流水線,請首先從 GitHub 復(fù)制該 Jenkinsfile 示例的內(nèi)容。選擇 “Pipeline script” 作為 “Destination”,然后將該 Jenkinsfile 的內(nèi)容粘貼到 “Script” 中?;ㄒ恍r間研究一下 Jenkins 文件的結(jié)構(gòu)。注意,共有三個階段:Build、Test 和 Deploy,它們是任意的,可以是任何一個。每個階段中都有一些步驟;在此示例中,它們只是打印一些隨機消息。

單擊 “Save” 以保留更改,這將自動將你帶回到 “Job Overview” 頁面。

Configure to Run as Jenkins Script

要開始構(gòu)建流水線的過程,請單擊 “Build Now”。如果一切正常,你將看到第一個流水線(如下面的這個)。

Click Build Now and See Result

要查看流水線腳本構(gòu)建的輸出,請單擊任何階段,然后單擊 “Log”。你會看到這樣的消息。

Visit sample GitHub with Jenkins get clone link

步驟六:通過 SCM 配置并執(zhí)行流水線作業(yè)

現(xiàn)在,換個方式:在此步驟中,你將通過從源代碼控制的 GitHub 中復(fù)制 Jenkinsfile 來部署相同的 Jenkins 作業(yè)。在同一個 GitHub 存儲庫中,通過單擊 “Clone or download” 并復(fù)制其 URL 來找到其存儲庫 URL。

Checkout from GitHub

單擊 “Configure” 以修改現(xiàn)有作業(yè)。滾動到 “Advanced Project Options” 設(shè)置,但這一次,從 “Destination” 下拉列表中選擇 “Pipeline script from SCM” 選項。將 GitHub 存儲庫的 URL 粘貼到 “Repository URL” 中,然后在 “Script Path” 中鍵入 “Jenkinsfile”。 單擊 “Save” 按鈕保存。

Change to Pipeline script from SCM

要構(gòu)建流水線,回到 “Task Overview” 頁面后,單擊 “Build Now” 以再次執(zhí)行作業(yè)。結(jié)果與之前相同,除了多了一個稱為 “Declaration: Checkout SCM” 的階段。

Build again and verify

要查看來自 SCM 構(gòu)建的流水線的輸出,請單擊該階段并查看 “Log” 以檢查源代碼控制克隆過程的進行情況。

Verify Checkout Procedure

除了打印消息,還能做更多

恭喜你!你已經(jīng)建立了第一個 Jenkins 流水線!

“但是等等”,你說,“這太有限了。除了打印無用的消息外,我什么都做不了。”那沒問題。到目前為止,本教程僅簡要介紹了 Jenkins 流水線可以做什么,但是你可以通過將其與其他工具集成來擴展其功能。以下是給你的下一個項目的一些思路:

  • 建立一個多階段的 Java 構(gòu)建流水線,從以下階段開始:從 Nexus 或 Artifactory 之類的 JAR 存儲庫中拉取依賴項、編譯 Java 代碼、運行單元測試、打包為 JAR/WAR 文件,然后部署到云服務(wù)器。
  • 實現(xiàn)一個高級代碼測試儀表板,該儀表板將基于 Selenium 的單元測試、負載測試和自動用戶界面測試,報告項目的運行狀況。
  • 構(gòu)建多流水線或多用戶流水線,以自動化執(zhí)行 Ansible 劇本的任務(wù),同時允許授權(quán)用戶響應(yīng)正在進行的任務(wù)。
  • 設(shè)計完整的端到端 DevOps 流水線,該流水線可提取存儲在 SCM 中的基礎(chǔ)設(shè)施資源文件和配置文件(例如 GitHub),并通過各種運行時程序執(zhí)行該腳本。

學(xué)習(xí)本文結(jié)尾處的任何教程,以了解這些更高級的案例。

管理 Jenkins

在 Jenkins 主面板,點擊 “Manage Jenkins”。

Manage Jenkins

全局工具配置

有許多可用工具,包括管理插件、查看系統(tǒng)日志等。單擊 “Global Tool Configuration”。

Global Tools Configuration

增加附加能力

在這里,你可以添加 JDK 路徑、Git、Gradle 等。配置工具后,只需將該命令添加到 Jenkinsfile 中或通過 Jenkins 腳本執(zhí)行即可。

See Various Options for Plugin

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2023-08-18 10:24:52

GitLabCI 流水線

2019-11-07 10:02:33

開源開源工具DevOps

2020-10-21 14:10:28

工具測試開發(fā)

2023-09-27 08:24:49

2022-08-09 08:42:15

引擎方案

2023-04-02 21:49:10

開源Tekton

2023-11-08 00:25:14

CI云原生DevOps

2018-10-23 16:35:19

華為云

2017-03-02 14:12:13

流水線代碼Clojure

2017-03-15 10:08:26

軟件開發(fā)流水線

2021-01-05 08:39:51

容器前端流水線

2023-05-26 08:31:09

2024-05-20 11:23:18

2013-06-06 09:31:52

2017-02-28 15:40:30

Docker流水線Azure

2021-11-08 07:41:16

Go流水線編程

2024-01-07 12:47:35

Golang流水線設(shè)計模式

2022-08-31 22:25:53

微服務(wù)架構(gòu)DevOPs

2022-07-18 06:05:28

Gitlab流水線

2017-02-28 16:00:45

DevOpsMarkdownreST
點贊
收藏

51CTO技術(shù)棧公眾號