使用CentOS7上的GitLab Runner,讓你的項(xiàng)目加速奔跑
前言
在軟件開(kāi)發(fā)的道路上,持續(xù)集成和持續(xù)部署是不可或缺的一環(huán),就像是您的項(xiàng)目的生命力源泉。而GitLab Runner,則是這條流水線上的得力助手,為您的代碼提供快速、可靠的構(gòu)建和部署。
今天,就讓我們一起來(lái)探索如何在CentOS 7上搭建GitLab Runner,釋放持續(xù)集成的魔力吧!
安裝GitLab Runner
安裝前提
GitLab Runner 15.0引入了注冊(cè) API 請(qǐng)求格式的更改。它阻止 GitLab Runner 與低于 14.8 的 GitLab 版本進(jìn)行通信。
您必須使用適合 GitLab 版本的 Runner 版本,或者升級(jí) GitLab 應(yīng)用程序。
如果直接使用yum install git會(huì)出現(xiàn)git版本為1.8,太老了,不適用

#安裝源git yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm #安裝git yum install git #更新git yum update git
1. 下載并安裝 GitLab Runner
添加 GitLab Runner 的官方倉(cāng)庫(kù):
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
安裝 GitLab Runner:
# 這里如果很慢可以在本機(jī)下載再上傳一下,https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/index.html sudo yum install gitlab-runner
2. 注冊(cè)到 GitLab 服務(wù)器
- 登錄到你的 GitLab 服務(wù)器。
- 轉(zhuǎn)到你項(xiàng)目的設(shè)置頁(yè)面。
- 在左側(cè)導(dǎo)航欄中選擇 CI/CD -> Runners 設(shè)置。
- 復(fù)制注冊(cè) Runner 的 URL 和 Token。
- 回到你的 Runner 主機(jī)上,在終端中執(zhí)行注冊(cè)命令,使用提供的 URL 和 Token:
gitlab-runner register --url --token
3.配置runner
執(zhí)行gitlab-runner register --url --token
Enter the GitLab instance URL (for example, https://gitlab.com/):
填寫(xiě)你的gitlab地址,如果也是使用的官網(wǎng)就直接填https://gitlab.com/
Enter a name for the runner. This is stored only in the local config.toml file:
在這里,你需要為 GitLab Runner 指定一個(gè)名稱。這個(gè)名稱僅會(huì)存儲(chǔ)在本地的配置文件 config.toml 中,用于識(shí)別該 Runner。
你可以根據(jù)需要選擇一個(gè)描述性的名稱,以便于識(shí)別和管理。
例如,你可以使用項(xiàng)目名稱、環(huán)境名稱或者其他有意義的標(biāo)識(shí)作為 Runner 的名稱。
Enter an executor: instance, shell, ssh, virtualbox, docker, kubernetes, docker-autoscaler, custom, parallels, docker-windows, docker+machine:
在這里,你需要選擇一個(gè)執(zhí)行器(executor),用于指定 GitLab Runner 在執(zhí)行 CI/CD 任務(wù)時(shí)的運(yùn)行環(huán)境。
以下是常見(jiàn)的執(zhí)行器選項(xiàng)及其簡(jiǎn)要說(shuō)明:
根據(jù)你的需求和環(huán)境選擇一個(gè)合適的執(zhí)行器,并輸入其名稱。
- shell: 在 Runner 主機(jī)上使用 Shell 執(zhí)行任務(wù)。
- docker: 使用 Docker 容器來(lái)運(yùn)行任務(wù)。
- docker+machine: 使用 Docker Machine 在虛擬機(jī)中運(yùn)行 Docker 容器。
- docker-windows: 在 Windows 主機(jī)上使用 Docker 運(yùn)行任務(wù)。
- ssh: 通過(guò) SSH 連接到遠(yuǎn)程主機(jī)并執(zhí)行任務(wù)。
- kubernetes: 在 Kubernetes 集群中運(yùn)行任務(wù)。
- virtualbox: 在 VirtualBox 虛擬機(jī)中運(yùn)行任務(wù)。
- custom: 自定義執(zhí)行器,你可以自己編寫(xiě)腳本來(lái)定義任務(wù)的執(zhí)行方式。
4. 驗(yàn)證 Runner 是否注冊(cè)成功
- 回到 GitLab 服務(wù)器的項(xiàng)目設(shè)置頁(yè)面。
- 在 CI/CD -> Runners 部分,你應(yīng)該能夠看到剛剛注冊(cè)的 Runner。
- 確保 Runner 的狀態(tài)為“活躍”。

5. 測(cè)試 Runner 是否正常工作
- 在你的項(xiàng)目中創(chuàng)建一個(gè)簡(jiǎn)單的 CI/CD 配置文件(如
.gitlab-ci.yml)。 - 將配置文件提交到你的項(xiàng)目中。
- 在 GitLab 服務(wù)器的項(xiàng)目頁(yè)面上觸發(fā)一個(gè) Pipeline,觀察任務(wù)是否由 Runner 正常執(zhí)行。
通過(guò)以上步驟,你應(yīng)該能夠成功在 CentOS 7 上搭建和注冊(cè) GitLab Runner,并確保它能夠正常工作。如果遇到任何問(wèn)題,請(qǐng)查閱官方文檔或在社區(qū)尋求幫助。
配置Runner執(zhí)行器
在配置Runner執(zhí)行器時(shí),需要指定執(zhí)行器的類型和相關(guān)參數(shù),以確保任務(wù)能夠按照預(yù)期順利執(zhí)行。以下是配置Runner執(zhí)行器的一般步驟:
1.選擇執(zhí)行器類型:根據(jù)實(shí)際需求選擇適合的執(zhí)行器類型,常見(jiàn)的包括:
- shell:在本地或遠(yuǎn)程服務(wù)器上執(zhí)行腳本命令。
- docker:在Docker容器中執(zhí)行任務(wù),可用于構(gòu)建和運(yùn)行應(yīng)用程序。
- kubernetes:在Kubernetes集群中執(zhí)行任務(wù),適用于復(fù)雜的容器化環(huán)境。
- virtualbox:在虛擬機(jī)中執(zhí)行任務(wù),可用于本地開(kāi)發(fā)和測(cè)試。
- ssh:通過(guò)SSH協(xié)議連接到遠(yuǎn)程主機(jī)并執(zhí)行任務(wù)。
- custom:自定義執(zhí)行器,根據(jù)需要編寫(xiě)自己的執(zhí)行器邏輯。
2.設(shè)置執(zhí)行器參數(shù):根據(jù)選定的執(zhí)行器類型,設(shè)置相關(guān)參數(shù),如并發(fā)度、超時(shí)時(shí)間等。
- 并發(fā)度:指定Runner同時(shí)執(zhí)行的任務(wù)數(shù)量,可以根據(jù)服務(wù)器性能和任務(wù)負(fù)載進(jìn)行調(diào)整。
- 超時(shí)時(shí)間:設(shè)置任務(wù)執(zhí)行的最大時(shí)間,超過(guò)該時(shí)間將視為超時(shí)并中止任務(wù)。
3.配置Runner:編輯.gitlab-ci.yml文件,添加或修改相應(yīng)的配置項(xiàng),指定執(zhí)行器類型和參數(shù)。
示例配置文件如下所示:
stages:
- build
- test
build_job:
stage: build
script:
- npm install
- npm run build
tags:
- docker
variables:
DOCKER_DRIVER: overlay2
artifacts:
paths:
- public/
test_job:
stage: test
script:
- npm test
tags:
- docker
variables:
DOCKER_DRIVER: overlay2
allow_failure: true在上面的示例中,我們使用了Docker執(zhí)行器,并設(shè)置了相關(guān)參數(shù),如標(biāo)簽(tags)、Docker驅(qū)動(dòng)器(DOCKER_DRIVER)等。這樣配置的Runner將會(huì)在Docker容器中執(zhí)行構(gòu)建和測(cè)試任務(wù)。
根據(jù)實(shí)際情況,可以根據(jù)需要添加其他執(zhí)行器類型和參數(shù),以滿足項(xiàng)目的具體要求。
高級(jí)配置
在配置Runner執(zhí)行器的高級(jí)配置和擴(kuò)展時(shí),可以進(jìn)一步優(yōu)化CI/CD流程,并集成各種第三方工具和服務(wù),以滿足更復(fù)雜的需求。以下是一些高級(jí)配置和擴(kuò)展的示例:
1.緩存和共享卷:
- 緩存:通過(guò)設(shè)置緩存,可以在不同作業(yè)之間共享和重用依賴項(xiàng),加快構(gòu)建速度??梢跃彺婢幾g依賴項(xiàng)、依賴庫(kù)、下載的軟件包等。
- 共享卷:共享卷允許在不同作業(yè)之間共享文件或目錄,便于數(shù)據(jù)傳遞和共享??梢詫?gòu)建產(chǎn)生的文件、測(cè)試報(bào)告等存儲(chǔ)到共享卷中,并在后續(xù)作業(yè)中使用。
2.集成第三方工具和服務(wù):
- Docker:可以使用Docker容器作為執(zhí)行器,實(shí)現(xiàn)環(huán)境隔離和一致性。還可以利用Docker鏡像來(lái)構(gòu)建、測(cè)試和部署應(yīng)用程序。
- AWS、Azure等云服務(wù):可以利用云服務(wù)提供的資源來(lái)執(zhí)行CI/CD作業(yè),例如在AWS上運(yùn)行測(cè)試套件、部署到Azure容器實(shí)例等。
- 第三方CI/CD工具:如Jenkins、Travis CI等,可以與GitLab Runner集成,實(shí)現(xiàn)更復(fù)雜的CI/CD流程。
3.定制特定環(huán)境下的作業(yè):
- Java、Python、Node.js等:針對(duì)不同的編程語(yǔ)言和框架,可以定制特定的CI/CD作業(yè),包括編譯、測(cè)試、打包、部署等。
- 安全檢查和代碼分析:集成靜態(tài)代碼分析工具、安全漏洞掃描工具等,對(duì)代碼進(jìn)行質(zhì)量檢查和安全掃描。
示例配置文件如下所示:
stages:
- build
- test
build_job:
stage: build
script:
- npm install
- npm run build
cache:
paths:
- node_modules/
artifacts:
paths:
- dist/
test_job:
stage: test
script:
- npm test
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- node_modules/
artifacts:
paths:
- test_reports/
dependencies:
- build_job在上面的示例中,我們配置了緩存(cache)和共享卷(artifacts),以及與其他作業(yè)的依賴關(guān)系(dependencies)。
這樣可以加速構(gòu)建過(guò)程,同時(shí)實(shí)現(xiàn)測(cè)試報(bào)告等數(shù)據(jù)的共享和傳遞。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解CentOS7下PostgreSQL 11的安裝和配置教程
這篇文章主要介紹了CentOS7下PostgreSQL 11的安裝和配置教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
Linux開(kāi)機(jī)啟動(dòng)過(guò)程詳解
這篇文章主要為大家詳細(xì)介紹了Linux開(kāi)機(jī)啟動(dòng)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Apache訪問(wèn)出現(xiàn)501 Method Not Implemented錯(cuò)誤解決
這篇文章主要介紹了Apache訪問(wèn)出現(xiàn)501 Method Not Implemented錯(cuò)誤解決,有些導(dǎo)致該錯(cuò)誤的情況可以用文中修改配置文件的方法來(lái)解決,需要的朋友可以參考下2015-07-07
centos 6.9 升級(jí)glibc動(dòng)態(tài)庫(kù)的詳細(xì)過(guò)程
glibc是gnu發(fā)布的libc庫(kù),即c運(yùn)行庫(kù),glibc是linux系統(tǒng)中最底層的api,幾乎其它任何運(yùn)行庫(kù)都會(huì)依賴于glibc。這篇文章主要介紹了centos 6.9 升級(jí)glibc動(dòng)態(tài)庫(kù)的詳細(xì)過(guò)程,需要的朋友可以參考下2019-11-11
實(shí)戰(zhàn)基本的Linux sed命令示例代碼
Linux流編輯器是在數(shù)據(jù)中心中運(yùn)行腳本的一種有用方法。通過(guò)這些命令示例,您可以開(kāi)始熟悉sed,需要的朋友可以參考下2018-10-10
Centos 通過(guò) Nginx 和 vsftpd 構(gòu)建圖片服務(wù)器的教程(圖文)
本篇文章主要介紹了Centos 通過(guò) Nginx 和 vsftpd 構(gòu)建圖片服務(wù)器的教程(圖文),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
Wampserver2.5配置虛擬主機(jī)出現(xiàn)403 Forbidden的處理方案
WampServer是一款由法國(guó)人開(kāi)發(fā)的Apache Web服務(wù)器、PHP解釋器以 及MySQL數(shù)據(jù)庫(kù)的整合軟件包。免去了開(kāi)發(fā)人員將時(shí)間花費(fèi)在繁瑣的配置環(huán)境過(guò)程,從而騰出更多精力去做開(kāi)發(fā)。在windows下將Apache+PHP+Mysql 集成環(huán)境,擁有簡(jiǎn)單的圖形和菜單安裝和配置環(huán)境。2014-09-09
apache服務(wù)器一個(gè)ip(如:127.0.0.1)和多個(gè)域名(虛擬主機(jī))的綁定
今天在學(xué)習(xí)PHP時(shí),用的是apache服務(wù)器有這樣的一個(gè)需求:一個(gè)ip(如:127.0.0.1)和多個(gè)域名(虛擬主機(jī))綁定,以下是我的解決方案,需要的朋友可以參考下2015-01-01

