建立和部署應用程式可能是一項困難的任務。為什麼不使用 Jenkins 建置工作來自動化整個過程呢?您可以專注於建立,而 Jenkins 負責程式碼部署。
在本教程中,您將學習如何使用 Jenkins 自動化程式碼部署,以節省時間,讓您可以同時專注於其他任務。
準備好了嗎?開始吧!
先決條件
本教程包含實際示範。如果您想跟隨操作,請確保您擁有以下內容:
- Ubuntu 系統 – 本教程使用 Ubuntu 20.04 進行示範
- A GitHub account
- OpenJDK 版本 1.8.0_292
- Jenkins 版本 2.303.1
- Node.js 版本 14.17.6
- 複製這個GitHub 存儲庫 – 在複製後,請注意 GitHub 存儲庫的 URL,因為稍後您需要它。
雖然下面的截圖顯示的存儲庫與上面的鏈接稍有不同,但一旦派生,您將使用不同的存儲庫URL。
創建Jenkins構建作業
Jenkins是一個開源的自動化服務器,有助於自動化軟件開發生命周期。該生命周期包括構建、測試和部署,從而實現持續集成和持續交付。
在這個演示中,您將學習如何創建一個Jenkins構建作業。構建作業通常是自動運行用於構建/打包軟件的任務的配置。
- 打開您喜歡的瀏覽器,導航到http://localhost:8080/,並登錄到您的Jenkins儀表板。端口
8080
是訪問Jenkins儀表板的默認端口。
2. 在Jenkins的儀表板上,點擊左側面板的新建項目按鈕,初始化創建構建作業。這樣做會將瀏覽器重定向到新的作業頁面。

3. 接下來,在下面的輸入框中輸入您喜歡的構建作業的項目名稱。例如,本示例中的項目名稱是webDeploy。
選擇自由風格專案選項以啟用創建工作、腳本後建置動作和配置專案建置觸發器,然後點擊確定。您將被重新導向到下一步中的工作配置頁面。

4. 點擊一般標籤,並勾選GitHub 專案方塊以連結源代碼管理器,這樣 Jenkins 將知道從哪裡拉取您的代碼。此演示使用 GitHub 作為在之前分叉的示例專案的源代碼管理器。將您的 GitHub 存儲庫 URL 從您的 GitHub 帳戶複製到下面的專案 URL欄位中。

5. 最後,點擊源代碼管理標籤,然後選擇Git,這是您的源代碼管理器。
將此 GitHub 存儲庫 URL (https://github.com/Claradev32/webDeploy.git)複製並粘貼到輸入欄位中。點擊保存按鈕以保存當前配置。

為 Jenkins 專案創建認證
也許您更希望保持存儲庫的私有性,這對於客戶專案很常見。如果是這樣,您需要創建認證以授權 Jenkins 從 GitHub 克隆您的專案。
要為 Jenkins 專案創建認證,您必須首先在您的 GitHub 帳戶中生成並添加 SSH 金鑰:
1. 開啟Ubuntu終端機,執行以下命令以生成一個以ed25519
為金鑰類型的SSH金鑰。將[email protected]
替換為您的GitHub郵件地址,以將其作為評論添加到您生成的SSH金鑰中。
2. 保存您的公共SSH金鑰,請使用以下命令:
- 指定一個保存位置並按下Enter。如果不指定,該命令將將SSH金鑰保存在默認位置,如下所示。
- 輸入一個安全的密碼短語以供SSH金鑰使用,按下Enter確認密碼短語,您將看到公共SSH金鑰的輸出。
- 請記下您生成的SSH金鑰的位置,您將在以下步驟中將其添加到GitHub帳戶中。

3. 在網頁瀏覽器中登錄GitHub,並轉到帳戶設置頁面。
4. 點擊左側面板上的SSH和GPG金鑰鏈接,然後點擊新的SSH金鑰,如下所示,以配置您的新SSH金鑰。

5. 最後,輸入您喜歡的SSH金鑰標題。該標題僅用於內部文檔目的。將之前保存的SSH金鑰從文件中粘貼到金鑰輸入框中,然後點擊添加SSH金鑰保存金鑰。
請記住,這是您的公共金鑰而不是私有金鑰!

將SSH私鑰添加到Jenkins憑據中。
既然您已經建立了用作Jenkins憑證的SSH金鑰對,您還必須將SSH私鑰添加到Jenkins憑證中,以授權Jenkins訪問您的GitHub存儲庫。但首先,請記下您的GitHub存儲庫的SSH URL。
1. 轉到您的GitHub存儲庫頁面,點擊代碼 → SSH,然後點擊下面顯示的複製圖標將SSH URL複製到剪貼板上。

2. 接下來,轉到您的Jenkins儀表板,然後點擊管理Jenkins以訪問您項目的設置頁面。

3. 向下滾動,然後在安全部分下點擊管理憑證選項,以查看您的Jenkins憑證列表。

4. 在憑證頁面上,點擊Jenkins,以訪問“系統”頁面,您可以在該頁面上添加新的憑證。

5. 現在,在系統頁面上,將鼠標懸停在全局憑證(不受限制)選項上,以顯示下拉菜單,然後點擊向下箭頭圖標。
從下拉菜單中選擇添加憑證。該頁面將重定向到一個表單,在該表單中,您將配置下一步中顯示的新憑證。

6. 在第一個輸入字段中選擇帶有私鑰的SSH用戶名,並在用戶名字段中輸入項目用戶名。在此示例中,用戶名為CI/CD。
在這種情況下,用戶名純粹是內部文檔,不用於身份驗證。

7. 執行下面的命令來查看您的SSH私鑰,將位置更改為您鑰匙保存的位置,如下所示(下面的鑰匙位於主目錄中)。請記下您的SSH私鑰,因為您將在下一步將其添加到Jenkins憑據中。

8. 一旦您記下了您的SSH私鑰,返回到全局憑據(無限制)頁面。
輸入您在“為Jenkins項目創建憑據”部分(第二步)設置的密碼到密碼輸入框中,然後點擊確定。這樣做可以授權Jenkins訪問您的GitHub存儲庫。
如果在創建SSH密鑰時沒有設置密碼,點擊直接輸入,然後點擊添加按鈕。將您的SSH私鑰輸入到鑰匙輸入框中,如下所示,然後按確定按鈕保存憑據。

8. 返回您的Jenkins儀表板,將滑鼠懸停在您的項目上,然後點擊向下箭頭圖標,然後選擇配置,如下圖所示。頁面將重定向到您項目的配置頁面。

10. 最後,在下拉選單中選擇憑證使用者名稱(從「將秘密金鑰添加到 Jenkins 憑證」部分的第六個步驟)。Jenkins 默認應用 CID 原則 以確保您的項目持續集成和部署。

配置構建觸發器和後置構建操作
您已成功創建了構建任務的框架。但如果您經常對項目進行更改,每次都需要手動重新部署嗎?為什麼不設置構建觸發器呢?構建觸發器可以自動重新部署您在 GitHub 推送的項目更改。
1. 在項目的配置頁面上,點擊 構建觸發器標籤,並勾選 GitHub hook trigger for GITScm polling 選項。此選項可自動重新部署您的項目更改。

2. 點擊 構建 標籤,點擊 新增構建步驟,並選擇 執行 shell 以創建一個腳本,該腳本將在 Jenkins 下載項目的新版本時運行。

您創建的 shell 腳本取決於您的開發環境。如果您使用的是 Windows,Windows 將執行該腳本;其他操作系統也是如此。
3. 輸入以下 shell 命令,然後點擊 保存 以保存構建腳本。保存更改後,頁面將重定向回項目的儀表板。
下面的命令从源代码远程位置(origin master
)拉取您的代码,并使用NodeJS NPM install (npm install
)安装运行项目所需的必要依赖项。这些命令在您发起推送请求时执行。
这个特定的项目使用NodeJS作为依赖项,但您的项目可能不需要。

4. 现在,在您的项目仪表盘上,点击立即构建来运行构建。

5. 向下滚动到构建历史记录中,查看构建的状态。如果构建成功,您将看到类似下面截图的输出。

如果构建失败,您将看到下面显示的输出。

6. 接下来,向上滚动并点击配置来配置项目的构建后操作。

7. 点击构建后操作选项卡,然后点击添加构建后操作并选择Git发布者。页面会展开Git发布者设置部分(下一步)。

8. 最后,启用仅在构建成功时推送选项,并点击保存按钮保存更改。启用此选项告诉Jenkins仅在构建成功时部署代码。

结论
在這個教程中,您已經學會了將Jenkins連接到您的源代碼管理系統的過程。您還創建了一個構建腳本,當Jenkins下載您的代碼的新版本時,它會自動運行,並設置了構建觸發器來自動部署網頁。
現在,為什麼不通過Jenkins構建作業自動化應用程式部署,從而節省時間呢?