GitLab CI/CD 之 註冊 Gitlab-Runner 與 tags 使用

閱讀時間約 10 分鐘
raw-image

前言

上次我們已經架好 Gitlab 與 Gitlab-Runner 主機,今天我們要教大家如何使用 Gitlab-Runner 註冊一個 Runner,並使用 tags 這個 script,使用我們的 runner 運作

上版 CI_CD_DEMO 專案

我們先將之前的 CI_CD_DEMO 專案 push 到我們自己架設的 Gitlab 主機

raw-image

查看專案註冊 CI/CD token

我們先去查看我們要註冊的這個 CI/CD token 是什麼,待會註冊 Runner 會用到

raw-image

進入 Gitlab-Runner Container 裡面

首先查看我們 gitlab-runner container id

docker container ls

會得到以下有在運行的 container

CONTAINER ID   IMAGE                         COMMAND                  CREATED      STATUS                   PORTS                                                                                                         NAMES
3119f6d0c660 gitlab/gitlab-ce:latest "/assets/wrapper" 8 days ago Up 6 minutes (healthy) 0.0.0.0:22->22/tcp, :::22->22/tcp, 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp gitlab-ce
4cb49c53cf78 gitlab/gitlab-runner:latest "/usr/bin/dumb-init …" 8 days ago Up 6 minutes gitlab_runner

再來進到先進到 gitlab-runner container 的 bash 裡面

docker exec -it 4cb49c53cf78 bash

註冊 Docker Runner

我們先註冊一個 Runner,是 Docker Executor,指令如下,輸入後會有一些資訊要我們設定

gitlab-runner register

在這裡輸入我們的註冊 domain,就是我們自架的那台 gitlab 主機網址

Runtime platform                                    arch=amd64 os=linux pid=24 revision=853330f9 version=16.5.0
Running in system-mode.

Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.18.35

下一個是詢問你這個專案,要註冊的 Token 是什麼,就輸入我們剛剛設定->CI/CD->Runner 裡的 Token。

Enter the registration token:
GR1348941SzmW4wsKQyCzKanS1zKw

在下一個是你註冊的這個 Runner 給個描述,看各位怎麼描述,這邊要註冊 docker executor,就有如以下描述

Enter a description for the runner:
[4cb49c53cf78]: CI_CD_DEMO docker runner

在下一個是輸入給個 runner 標籤,待會我們會用到這個標籤名子

Enter tags for the runner (comma-separated):
docker

在下一個其實可以不需要理他,不太重要

Enter optional maintenance note for the runner:

在下一個是問你要用哪一個 Executor,這裡打上 docker

WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow
Registering runner... succeeded runner=GR1348941SzmW4wsK
Enter an executor: docker-windows, parallels, shell, docker-autoscaler, custom, docker, docker+machine, instance, kubernetes, ssh, virtualbox:
docker

最後一個是問,當你這個 Runner 啟用的時候,預設先抓哪一個 image,這裡我們輸入 node:20.9.0-alpine

Enter the default Docker image (for example, ruby:2.7):
node:20.9.0-alpine

註冊 Shell Runner

再來註冊一個 Runner,是 Shell Executor,指令如下,輸入後會有一些資訊要我們設定

gitlab-runner register

下一個是詢問你這個專案,要註冊的 Token 是什麼,跟剛剛一樣輸入我們 CI/CD 專案 Token

Enter the registration token:
GR1348941SzmW4wsKQyCzKanS1zKw

在下一個是你註冊的這個 Runner 給個描述,看各位怎麼描述,這邊要註冊 shell executor,就有如以下描述

Enter a description for the runner:
[4cb49c53cf78]: CI_CD_DEMO shell runner

在下一個是輸入給個 runner 標籤,待會我們會用到這個標籤名子

Enter tags for the runner (comma-separated):
shell

在下一個其實可以不需要理他,不太重要

Enter optional maintenance note for the runner:

在下一個是問你要用哪一個 Executor,這裡打上 shell

WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow
Registering runner... succeeded runner=GR1348941SzmW4wsK
Enter an executor: ssh, virtualbox, docker+machine, kubernetes, custom, docker-windows, shell, docker-autoscaler, instance, docker, parallels:
shell

經過一番設定後,你會看到有兩個 runner

raw-image

Tags 作用

tags 作用就是將我們的工作分派給不同的 Runner 以及 Executor 分派工作,達到分散處理。

Tags 定義規則

在我們工作定義寫上 tags,然後定義我們剛剛設定好的 Runner 之 tags 名稱

test-build:
stage: testing
tags:
- shell
before_script:
- ls -al
script:
- echo '測試打包'
only:
- main
- develop

練習時間

接下來我們玩玩看這些 Runner 運作,有如以下腳本

stages:
- testing

test-build:
stage: testing
tags:
- shell
script:
- docker ps -a
only:
- main
- develop

run-unit-test:
stage: testing
tags:
- docker
image: node:20.9.0-alpine
script:
- node -v
- npm -v
- yarn -v
only:
- main
- develop

來看一下 test-build 運作

raw-image

在看一下 run-unit-test 運作

raw-image




avatar-img
10會員
49內容數
d3.js 圖形
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Tim Bai的沙龍 的其他內容
前言 這上次我們講到如何自架 Gitlab 與 Gitlab-Runner 主機,今天我們來做一個細節調整,調整 gitlab-runner 可以直接跑 Docker 中的 shell,這樣我們就可以不用在下載 docker 的 image 去跑我們的 docker。 查詢 gitlab-run
前言 上次我們講到 Gitlab 的 Excutor 種類,今天我們要來教更經典的自架 Gitlab 與 Gitlab-Runner 主機,Gitlab 有兩個版本,一個是社群版,另一個是企業版,我們這次用 Docker 來安裝 Gitlab 社群版,快速安裝完成 Gitlab,另一方面這樣子的話
前言 上次我們講到 Gitlab 與 Docker 之間關係,上次還沒講 Executor 有哪些小的 Executor,今天我們來把 Executor 補完。 Executor 類型 在 Gitlab CI/CD 中,有提供多種 Executor,可以到 Gtilab 官網有說明 Execu
前言 上次交到 Runner 與 Executor 運作方式,今天要來講 Gitlab 與 Docker 之間運作,我們來了解一下,Gitlab 是怎麼幫我們這些指令,之後在自動化佈署的章節會使用到,實現更又效率的佈署。 Gitlab Runner 運作 在這裡你會看到特別的名詞,像是 git
上次我們教完公用變數與區域變數和環境變數,今天我們來講 Runner 與 Executor 之間的關係,我們之後會教大家如何自架 Gitlab 主機,以及如何使用 Gitlab-Runner,讓他們自動去跑我們想要的工作,比如: 自動佈署、自動單元測試、自動打包 Docker Image 等。 R
上次我們教完了 Gitlab CI/CD 公用變數與區域變數還可以隱藏變數,今天我們來講 CI/CD 中,還有一個是由 Gitlab 提供的環境變數,我們也可以利用這些變數,操作我們講做的事情。 GitLab CI 變數 打開 Gitlab 官方 說明文件 ,是裡是 Gitlab 提供的環境變數
前言 這上次我們講到如何自架 Gitlab 與 Gitlab-Runner 主機,今天我們來做一個細節調整,調整 gitlab-runner 可以直接跑 Docker 中的 shell,這樣我們就可以不用在下載 docker 的 image 去跑我們的 docker。 查詢 gitlab-run
前言 上次我們講到 Gitlab 的 Excutor 種類,今天我們要來教更經典的自架 Gitlab 與 Gitlab-Runner 主機,Gitlab 有兩個版本,一個是社群版,另一個是企業版,我們這次用 Docker 來安裝 Gitlab 社群版,快速安裝完成 Gitlab,另一方面這樣子的話
前言 上次我們講到 Gitlab 與 Docker 之間關係,上次還沒講 Executor 有哪些小的 Executor,今天我們來把 Executor 補完。 Executor 類型 在 Gitlab CI/CD 中,有提供多種 Executor,可以到 Gtilab 官網有說明 Execu
前言 上次交到 Runner 與 Executor 運作方式,今天要來講 Gitlab 與 Docker 之間運作,我們來了解一下,Gitlab 是怎麼幫我們這些指令,之後在自動化佈署的章節會使用到,實現更又效率的佈署。 Gitlab Runner 運作 在這裡你會看到特別的名詞,像是 git
上次我們教完公用變數與區域變數和環境變數,今天我們來講 Runner 與 Executor 之間的關係,我們之後會教大家如何自架 Gitlab 主機,以及如何使用 Gitlab-Runner,讓他們自動去跑我們想要的工作,比如: 自動佈署、自動單元測試、自動打包 Docker Image 等。 R
上次我們教完了 Gitlab CI/CD 公用變數與區域變數還可以隱藏變數,今天我們來講 CI/CD 中,還有一個是由 Gitlab 提供的環境變數,我們也可以利用這些變數,操作我們講做的事情。 GitLab CI 變數 打開 Gitlab 官方 說明文件 ,是裡是 Gitlab 提供的環境變數
你可能也想看
Google News 追蹤
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
這篇的DevOps發佈系統是以Spring Cloud微服務(微服務)為背景;由GitLab、Harbor與Kubernetes組成。 GitLab負責版本管理與CI/CD(CI/CD)。 Harbor負責Docker([Docker]介紹) Image的儲存與發佈。 Kubernetes([
CI 持續整合 CI目的是建立自動化專案打包。 CD 持續發表 將打包完成的專案,自動發布。
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
※ 關於Git (二) 請寫下從 Github 上複製一個專案下來,做一次遞交,然後推上去會用到的所有 git 指令。 複製專案(Clone) markdown-here: git clone https://github.com/adam-p/markdown-here.git 如果在訊息
Thumbnail
在 Ubuntu 22.04 上使用 GitLab,請依照下列步驟操作。首先,使用nano文字編輯器開啟「gitlab.rb」檔案並尋找存取GitLab的URL: sudo nano /etc/gitlab/gitlab.rb 到下面的連結以使用 Ubuntu 22.04 上的 GitL
Thumbnail
GitLab 是一個 DevOps、基於 Web 的免費開源平台 Git 儲存庫,為開發人員提供了所有必要的功能。它是一個用於開發 DevOps 應用程式的一體式平台。 GitLab 允許您執行原始碼管理、監控、安全性和專案規劃任務。 Update system packages: sudo
Thumbnail
在Kubernetes cluster上建立Jenkins,並且使用動態方式建立Jenkins Agent。透過K8S解決傳統的Jenkins一對多架構的問題,最終建立基本Pipeline在Jenkins Web UI上,簡單驗證Jenkins engine正常運行。
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
這篇的DevOps發佈系統是以Spring Cloud微服務(微服務)為背景;由GitLab、Harbor與Kubernetes組成。 GitLab負責版本管理與CI/CD(CI/CD)。 Harbor負責Docker([Docker]介紹) Image的儲存與發佈。 Kubernetes([
CI 持續整合 CI目的是建立自動化專案打包。 CD 持續發表 將打包完成的專案,自動發布。
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
※ 關於Git (二) 請寫下從 Github 上複製一個專案下來,做一次遞交,然後推上去會用到的所有 git 指令。 複製專案(Clone) markdown-here: git clone https://github.com/adam-p/markdown-here.git 如果在訊息
Thumbnail
在 Ubuntu 22.04 上使用 GitLab,請依照下列步驟操作。首先,使用nano文字編輯器開啟「gitlab.rb」檔案並尋找存取GitLab的URL: sudo nano /etc/gitlab/gitlab.rb 到下面的連結以使用 Ubuntu 22.04 上的 GitL
Thumbnail
GitLab 是一個 DevOps、基於 Web 的免費開源平台 Git 儲存庫,為開發人員提供了所有必要的功能。它是一個用於開發 DevOps 應用程式的一體式平台。 GitLab 允許您執行原始碼管理、監控、安全性和專案規劃任務。 Update system packages: sudo
Thumbnail
在Kubernetes cluster上建立Jenkins,並且使用動態方式建立Jenkins Agent。透過K8S解決傳統的Jenkins一對多架構的問題,最終建立基本Pipeline在Jenkins Web UI上,簡單驗證Jenkins engine正常運行。