GitLab Runner 詳細介紹與設定方式

什麼是 GitLab Runner?

GitLab Runner 是 GitLab CI/CD 系統中負責執行 Pipeline 中 job 的元件,它可以在本地、虛擬機器或容器中運行。Runner 會從 GitLab 伺服器獲取要執行的 job,然後在指定的環境中運行這些 job。

GitLab Runner 的兩種類型

  1. 共享 Runner:由 GitLab 提供的 Runner,可以被所有項目共享。這種 Runner 可以配置在本地機器上,也可以在雲端提供商上運行。

  2. 專用 Runner:專門為單個項目配置的 Runner。這種 Runner 只能由該項目使用,可以配置在本地機器或雲端提供商上。

GitLab Runner 的設定方式

共享 Runner 的設定步驟:

  1. 安裝 GitLab Runner:根據官方文件提供的安裝步驟,在適當的操作系統上安裝 GitLab Runner。

  2. 註冊 Runner:執行 gitlab-runner register 命令,按照提示進行註冊。在註冊過程中,您需要提供 GitLab 伺服器的 URL、訪問權杖和選擇一個適合的 Runner 類型。

  3. 配置 Runner:通過編輯 GitLab Runner 的配置文件 (/etc/gitlab-runner/config.toml~/.gitlab-runner/config.toml) 來配置 Runner 的選項,例如並發數量、運行目錄等。

專用 Runner 的設定步驟:

  1. 安裝 GitLab Runner:同上。

  2. 設定 Runner 選項:在專案的根目錄下創建一個 .gitlab-ci.yml 文件,並在其中定義運行該項目所需的 job。同時,在 GitLab 網站上的項目設置中啟用 CI/CD 功能。

  3. 註冊 Runner:在 GitLab 項目設置的 CI/CD 頁面中找到 Runner 註冊指令,並按照提示在 Runner 主機上執行該指令。

  4. 啟動 Runner:啟動 GitLab Runner,它將自動從 GitLab 伺服器獲取要執行的 job,並在 Runner 主機上運行這些 job。

Use Docker Create Runner

Shell Executor

以下是我而外需要透過Runner 再去做CD的部份實例所增加的配置

我要透過Runner 做以下內容:

  • Maven package & Run Unit Test

  • Docker build image & push image to ECR

所以需要再特別安裝Java、Maven、Docker

對應的CI/CD Yml

Docker Executor

CI/CD YML

這邊最後使用 DooD (Docker outside of Docker) 而不是 DinD(Docker in Docker,發生一些狀況無法啟動成功,還需要花一些時間把它釐清。)

注意事項:

  • 確保 Runner 的版本與 GitLab 伺服器的版本相匹配,以免出現不相容的情況。

  • 定期更新 Runner,以獲得最新的功能和修復漏洞。

  • 設置適當的安全措施,以保護 Runner 和執行的作業系統不受未經授權的訪問或攻擊。

Last updated