iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
DevOps

一步步學DevOps:30天入門計劃系列 第 24

Day 24 GitLab Runner

  • 分享至 

  • xImage
  •  

GitLab Runner 是自動化持續整合和持續交付(CI/CD)流程中的關鍵要素。在 GitLab CI/CD 環境中執行包括編譯程式碼、執行測試、建立容器映像等。在 GitLab Pipeline 中執行工作的程式稱為 GitLab Runner,它是一個獨立於 GitLab 應用程式的程式,可在本地主機或 Docker 容器中運行,並支援多種不同的平台。

以下是如何註冊、配置 GitLab Runner的步驟:

1.下載和安裝 GitLab Runner: (Linux Ubuntu)

# 下載 GitLab Runner 套件
curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb
# 安裝 GitLab Runner
sudo dpkg -i gitlab-runner_amd64.deb

2.啟動 GitLab Runner 服務:

sudo systemctl start gitlab-runner

3.設置 GitLab Runner 啟動時自動啟動:

sudo systemctl enable gitlab-runner 

4.註冊 GitLab Runner 到您的 GitLab 服務器:

sudo gitlab-runner register

接下來,根據提示提供所需的信息:

  • GitLab 服務器 URL:輸入 GitLab 服務器 URL。它位於 https://gitlab.com/ 或您自己的 GitLab URL。
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/)
  • Runner 註冊令牌:輸入 GitLab 專案中的 Runner 註冊令牌。可以在 GitLab 專案設置的 CI/CD 頁面中找到此令牌。
Please enter the gitlab-ci token for this runner
  • Runner 描述(名稱):為 Runner 提供一個描述或名稱。
Please enter the gitlab-ci description for this runner
  • Runner 標籤(可選):想要為 Runner 添加標籤以區分不同能力的 Runner,可以輸入標籤。如果不需要標籤,您可以直接按 Enter 鍵跳過此步驟。
Please enter any tags for this runner (comma separated)
  • Executor(選擇):選擇要使用的執行器,這裡選擇 Docker 執行器。
Please enter the executor: docker, shell, virtualbox, docker-ssh, parallels, docker+machine, kubernetes
  • Dockerimage(如果選擇 Docker executor):如果選擇 Docker 執行器,輸入用於執行作業的 Docker image。通常這個映像包含您的應用程序和所需的依賴。
Please enter the default Docker image (e.g. ruby:2.6)

完成這些步驟後,GitLab Runner 將使用提供的信息註冊到 GitLab 服務器。可以根據自己的需求調整這些值,確保 Runner 正確註冊並配置。

當 GitLab Runner 成功註冊到您的 GitLab 服務器後,可以根據專案和 CI/CD需求,將 .gitlab-ci.yml 文件添加到您的專案中,定義 CI/CD 作業,並讓 GitLab Runner 自動執行這些作業。
GitLab Runner 將根據 .gitlab-ci.yml 文件中的定義,自動執行 CI/CD 作業並根據配置文件中的設置執行作業。
GitLab CI/CD 在每次有新的提交或觸發條件達成時,GitLab 將使用註冊的 Runner 運行相關的作業。Runner 會根據配置和 .gitlab-ci.yml 中的指示來執行作業,然後將結果報告回 GitLab 服務器。

以下是 .gitlab-ci.yml 和Runner 配置文件的一個簡單的範例;

#.gitlab-ci.yml

 stages:
  - build
  - test
  - deploy

variables:
  DATABASE_URL: "postgres://user:password@dbhost:5432/database"

build_job:
  stage: build
  script:
    - echo "開始建立應用程式"
    - npm install
    - npm run build

test_job:
  stage: test
  script:
    - echo "執行測試"
    - npm test

deploy_job:
  stage: deploy
  script:
    - echo "部署應用程式到生產環境"
    - ./deploy.sh
  only:
    - master

  • Runner 的配置文件位於 GitLab Runner 的配置目錄中(/etc/gitlab-runner/config.toml)文件定義 GitLab Runner 的行為和屬性。
[[runners]]
  name = "My Runner"
  url = "https://gitlab.com/"
  token = "YOUR-RUNNER-TOKEN"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker-image-name:tag"
    privileged = false
    disable_cache = false
  [runners.cache]
    Type = "s3"
    Shared = true
    [runners.cache.s3]
      ServerAddress = "s3.amazonaws.com"
      AccessKey = "your-s3-access-key"
      SecretKey = "your-s3-secret-key"
      BucketName = "your-s3-bucket-name"

name:GitLab Runner 的名稱。
url:GitLab 服務器的 URL。
token:Runner 註冊令牌。
executor:執行器,這裡使用了 Docker。
image:Docker 映像名稱和標籤,用於執行作業。
privileged:是否以特權模式運行容器,通常設為 false。
disable_cache:是否禁用快取,通常設為 false。
cache:用於設置快取的選項,這個示例中使用了 Amazon S3 作為快取存儲。

請根據專案需求和 CI/CD 需求,進一步調整配置文件中的選項。您的 GitLab Runner 將根據 .gitlab-ci.yml 文件中的定義,自動執行 CI/CD 作業並根據配置文件中的設置執行作業。


上一篇
Day 23 Gitlab CI/CD Pipeline 介紹
下一篇
Day 25 Pipeline nodejs
系列文
一步步學DevOps:30天入門計劃30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言