Jenkins 使用指南 之 初級應用篇

Elijah_Wang發表於2021-02-08

Note: 本次 Jenkins 服務安裝,伺服器以 CentOS 7 系統為例,且以 root 使用者啟動並執行服務。

本篇 Jenkins 使用指南,將簡要概述一下 Jenkins 服務的以下初級應用:

  • 管理與配置
    • 訪問 Jenkins 服務管理頁面
    • admin 使用者的密碼設定及找回
    • 使用者建立
  • 外掛安裝及其配置
  • 建立常規構建
  • 小貼士

I. 管理與配置

1. 訪問 Jenkins 服務管理頁面

Jenkins 服務安裝並啟動成功後,即可通過以下地址訪問其服務管理頁面:

http://{YOUR_IP}:{YOUR_PORT}/

eg. 127.0.0.1:8080/

2. admin 使用者的密碼設定及找回

初次訪問 Jenkins 服務管理頁面,會有系統提醒輸入初始使用者 admin 的初始密碼,初始密碼的獲取方式為:

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
# Ctrl + Insert 複製

若上述過程發生意外,無法找回密碼,則選擇重置初始密碼配置:

$ cd /var/lib/jenkins/
# 刪除配置檔案:
$ sudo rm -f config.xml
# 重啟 jenkins 服務:
$ sudo systemctl restart jenkins.service
# 此時初始使用者 admin 的初始密碼已被重置:
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
# Ctrl + Insert 複製

3. 使用者建立

登入 Jenkins 服務管理頁面後,前往 Manage Jenkins > Manage Users,進入使用者管理頁面,建立使用者即可。

II. 外掛安裝及其配置

Note: 此處以 Gitee Plugin 安裝為例。

1. 安裝外掛 Gitee Plugin

    1. 前往 Manage Jenkins -> Manage Plugins -> Available
    1. 在下方可選列表中勾選 Gitee Plugin
    1. 點選 Download now and install after restart
    1. 勾選重啟服務

2. 新增 Gitee 連結配置

  • i. 前往 Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
  • ii. 在 Connection name 中輸入 Gitee 或者你想要的名字
  • iii. 在 Gitee host URL 中輸入 Gitee 完整 URL地址: gitee.com (OR: Gitee 私有化客戶輸入部署的域名)
  • iv. Credentials 中如還未配置 Gitee APIV5 私人令牌,點選 Add - > Jenkins :
    • a. Domain 選擇 Global credentials
    • b. Kind 選擇 Gitee API Token
    • c. Scope 選擇你需要的範圍
    • d. 在 Gitee API Token 中輸入你的 Gitee 私人令牌,獲取地址:gitee.com/profile/personal_access_...
    • e. 在 ID, Descripiton 中輸入你想要的 ID 和描述內容 (所填 ID 保證其唯一性即可)。
  • v. 在 Credentials 中選擇配置好的 Gitee APIV5 Token
  • vi. 點選 Advanced ,可配置是否忽略 SSL 錯誤(視您的Jenkins環境是否支援),並可設定連結測超時時間(視您的網路環境而定)
  • vii. 點選 Test Connection 測試連結是否成功,如失敗請檢查以上 iii, v, vi 步驟。

3. 生成並新增 SSH 公鑰

如上所述,當前 Jenkins 服務的執行使用者為 root,則將 root 使用者下的 SSH 公鑰新增至 gitee 使用者配置中:

$ sudo cat /root/.ssh/id_rsa.pub
# Ctrl + Insert 複製

若 /root/ 目錄下從未生成過 SSH 公鑰,則:

$ sudo ssh-keygen -t rsa -C "root@YOUR_IP"
...
$ sudo cat /root/.ssh/id_rsa.pub
# Ctrl + Insert 複製

III. 建立常規構建

1. 新建構建專案

前往 Jenkins 服務管理頁面首頁,即 Dashboard,點選 New Item 建立構建專案, name 輸入 ‘GiteeTest’,選擇 Freestyle project,儲存,即可建立構建專案。

2. 配置 General (通用)

  • 填寫專案描述 Description
  • Gitee connection (Gitee 連結) 下選擇之前配置好的 Gitee 外掛配置(即:Connection name, eg. Gitee)

3. 配置 Source Code Management (原始碼管理)

  • i. 選擇 Git
  • ii. Repositories:
    • a. Repository URL: eg. git@gitee.com:user_name/repository_name.git
    • b. Credentials: 選擇 Add Credentials 新增認證:
      • Domain: 選擇 Global Credentials
      • Kind: SSH Username with private key
      • Scope: Global
      • ID: 所填 ID 保證其唯一性即可
      • Description: 填寫描述內容
      • Username(此為 jenkins 服務的執行使用者): root
      • Private Key: Enter Directly 直接複製黏貼上述 SSH 公鑰對應的 SSH 私鑰(/root/.ssh/id_rsa)
      • Add: 最後點選 Add 新增認證
    • c. Advanced 高階選項:
      • Name 欄位可以留空或者輸入 origin (這個 origin 就是 git pull remote_origin remote_branch:local_branch 中的 remote_origin)
      • Refspec 欄位可以留空或者輸入: +refs/heads/:refs/remotes/origin/ +refs/pull//MERGE:refs/pull//MERGE (預設值為: +refs/heads/:refs/remotes/origin/)
  • iii. Branches to build: 新增你所需要管理的 git 分支,例如:
    • origin/master
    • origin/dev

4. 配置 Build Triggers (構建觸發器)

簡要介紹兩種常用的構建觸發方式:

  • Build periodically 週期性構建: 即,定時任務,eg. H/30 * * * * * 每30分鐘構建一次
  • Gitee webhook 觸發構建,需要在 Gitee webhook 中填寫 URL: http://*******
    • 勾選 接受 Pull Requests & 忽略 Pull Request 衝突 兩個配置選項即可
    • 其他配置不太需要改動
    • 以上配置即可實現,當指定分支的 PR 被管理員接受時,自動觸發構建部署行為
    • Gitee WebHook 密碼:點選 生成 按鈕,生成新的 Gitee WebHook 密碼
    • 前往 Gitee 線上專案倉庫的管理頁面(eg. https://gitee.com/user_name/repository_name),選擇 Settings 設定,進入:
      • 選擇 WebHooks,進入 WebHooks setting 頁面
      • 選擇 Add 新增新的 WebHooks
      • URL:填寫 上面的那個 Gitee Webhook 觸發構建設定中的 URL
      • WebHook 密碼:填寫 上面的那個 Gitee Webhook 觸發構建設定中生成的 Gitee WebHook 密碼
      • 點選 Add 確定新增

5. 配置 Build (構建)

Note: 本環節所涉及的 Shell 指令碼執行於本地伺服器 (即:Jenkins 服務所在的部署伺服器),因此,執行 Shell 指令碼的使用者為 root。

點選 “增加構建步驟”,選擇 “Execute shell”,然後在 Shell 命令文字框內輸入如下構建部署 Shell 指令碼:

cd /home/www/project_name/
git fetch --all
git checkout branch_name
git pull origin branch_name:branch_name
chown -R www:www /home/www/project_name/
# some other shell scripts ...
...

以上的 Shell 指令碼,即可實現以下效果:

當某一 Git 操作觸發了 Jenkins 的構建操作,伺服器端的專案程式碼即切換至 Git 分支 branch_name,並進行部署。

IV. 小貼士

  • 本篇使用指南,僅介紹 Jenkins 服務管理頁面的常規操作,以及常規的構建專案的配置選項,其他配置選項可以根據具體需要進行新增,而且每個配置選項後面都有 幫助內容,可供參考
  • 其他參考資料: Gitee Support Center / 第三方服務整合 / Jenkins 外掛

以上,Jenkins 初級應用介紹完畢。

— END —

本作品採用《CC 協議》,轉載必須註明作者和本文連結
夏蟲不語冰

相關文章