Jenkins 持續部署【附實例】
已發表: 2020-12-28Jenkins 部署是複雜自動化軟件開發的加速過程。 本文闡明了 Jenkins 如何集成所有開發生命週期流程或 DevOps 階段,例如在多個組織中實踐的構建、記錄、測試、打包、暫存、部署、靜態分析等等。
如今,許多組織都在其產品中採用 DevOps。 在軟件開發生命週期中,您必須將軟件作為項目的一部分不斷發布。
諸如 Jenkins 之類的工具因其允許應用程序持續集成和交付而不受平台限制的潛力而廣受歡迎。 Jenkins 是一個免費且單一的源工具,可以處理Jenkins 部署中的任何類型的構建,本文將對此進行討論。
Jenkins 可以與許多測試和部署技術集成。 本文描述了 Jenkins 如何用於持續構建和測試您的軟件項目。
從世界頂級大學學習軟件工程在線課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
因此,在深入了解 Jenkins 的工作原理之前,我們需要了解以下作為學習 Jenkins 基礎的主題:

- 持續部署
- 持續交付與持續部署
- Jenkins 部署的一個實際例子
- Jenkins 部署的好處
讓我們一一來看看吧!
目錄
持續部署
在持續部署中,軟件在生產服務器上持續自動化發布。 代碼通過源代碼編譯、驗證、審查、打包應用程序以及執行單元測試和集成測試等階段。
然後在執行用戶驗收測試時將代碼部署在測試服務器上。 該軟件將部署在生產服務器上以進行軟件發布。 閱讀有關與 jenkins 的持續集成的信息。
持續交付與持續部署
持續交付和持續部署是 SDLC 的兩個關鍵階段,其中持續交付不會部署到生產中以進行任何更改。 開發人員需要確保代碼始終可部署,並在需要時進行部署。
形象學分
持續部署需要自動部署每個更改,無需任何人工仲裁。
在上圖中,持續集成階段完成後,構建的應用程序會自動部署到生產服務器上,這不過是持續部署。
或者,如果我們需要人工批准來部署新版本以使一切自動化,我們正在執行持續交付。
由於這個核心差異,有幾個含義使每個過程適合不同的情況。
詹金斯
Jenkins 是一個開源工具,它通過用於持續構建和測試軟件項目的自動化服務器加速軟件流程,為開發人員提供 CI/CD 環境。 它是用 Java 編寫的,因此非常便攜。
Jenkins 有數以千計的插件和集成。 因此,它適用於需要大量定制的大型項目。 它支持版本控制工具,例如 Git、Maven、Mercurial 和 Subversion。
Jenkins 部署的一個實際例子
既然我們已經了解了 Jenkins 是一種什麼樣的工具,並且可以應用於持續部署的軟件開發過程,那麼現在讓我們看看它在生產環境中是如何工作的。
首先,將 Jenkins 設置在服務器上,並添加客戶端項目以進行構建和測試。 然後客戶端可以下載經過測試的應用程序。 將項目資產部署到服務器上的新位置可能會很棘手。
為此,我們首先假設在 Jenkins 上設置了一個客戶端項目,並鏈接到您的版本控制系統。
第 1 步:創建 Jenkins 項
從主菜單中,選擇“新項目”並為其命名。 它將文件從您的客戶端項目導出到服務器文件夾。

第 2 步:創建構建後操作
轉到客戶端項目並選擇配置。 現在,發起構建後操作並從下拉菜單中選擇“歸檔工件”。 添加要歸檔和導出的文件類型。
在此之後,附加另一個構建後操作,“構建其他項目”並輸入之前創建的構建項。
檔案
第 3 步:安裝插件“複製工件”
第三步,您將安裝 Jenkins 的“Copy Artifact 插件”。
轉到“項目名稱”以配置和添加構建步驟。 安裝 Copy Artifact 插件後,您將看到“從另一個項目複製工件”選項。 指定文件夾以復制工件並設置位置路徑。
將位置設置為“var/www/clients/..”。 這將在服務器上創建一個新文件夾。 使用 HTTP 地址 (!) 指定路徑。
保存項目
第 4 步:執行測試
在初級階段之後,現在是測試應用程序的時候了。
為此,從客戶端項目開始構建。 這將提示一個新的構建。 檢查服務器上的部署文件夾。 在這裡,您將看到部署的文件。
但是,即使在所有操作之後,構建仍然失敗並且您收到錯誤“FileException”。
為什麼?
可能的原因可能是:
- Jenkins 沒有寫入文件夾的權限,無法部署文件。
- 將 SSH 鏈接到服務器。
- 檢查輸出文件夾權限。
- 你會知道,我們遇到了一個問題。
執行以下步驟來解決此問題:
- 將 Jenkins 添加到一個組,這裡是“www-data”組。
- 使用sudo chown命令- R : 'www - data' 客戶端將輸出文件夾的所有權更改為 'www-data' 組。
- 允許使用sudo chmod命令對文件夾進行寫訪問。
- 重啟服務器並查看部署的應用程序
詹金斯提供什麼好處?
- Jenkins 是一個開源工具,並提供出色的社區支持。
- Jenkins 相對容易安裝。
- Jenkins 有 1000 多個插件。 如果插件不可用,您可以輕鬆編寫代碼。
- 詹金斯是免費的。
- Jenkins 是用 Java 構建的; 因此,可移植到所有主要平台。
另請閱讀: Jenkins 項目理念和主題

最後的話
Jenkins 是一個強大的 Java 編寫的自動化工具,已廣泛用於持續集成。 使用 Jenkins,可以更輕鬆地使用所編寫的內容持續構建和測試軟件項目。 它是始終通過集成大量測試和部署技術來交付您的軟件的終極工具。
學習軟件開發——使用 upGrad 進行 DevOps
upGrad 提供軟件開發執行 PG 計劃 - DevOps 專業化,您將學習在組織中以非常高的速度交付應用程序和服務。 upGrad 的教員將教你 DevOps 的方方面面,以及為什麼學習它會給你帶來一份有利可圖的職業。
upGrad 的 DevOps 軟件開發專業化 PG 文憑課程亮點:
這個延長 12 個月的在線課程提供以下功能:
- 知識淵博的在線課程與現場講座
- 免費訪問數據科學和機器學習中的寶貴內容
- 處理 7 個以上的實時項目和作業
- 學習十種編程語言和工具
- 保證安置保證
- 360° 職業支持和工作協助