使用CentOS7上的GitLab Runner,讓你的項目加速奔跑
前言
在軟件開發(fā)的道路上,持續(xù)集成和持續(xù)部署是不可或缺的一環(huán),就像是您的項目的生命力源泉。而GitLab Runner,則是這條流水線上的得力助手,為您的代碼提供快速、可靠的構(gòu)建和部署。
今天,就讓我們一起來探索如何在CentOS 7上搭建GitLab Runner,釋放持續(xù)集成的魔力吧!
安裝GitLab Runner
安裝前提
GitLab Runner 15.0引入了注冊 API 請求格式的更改。它阻止 GitLab Runner 與低于 14.8 的 GitLab 版本進行通信。
您必須使用適合 GitLab 版本的 Runner 版本,或者升級 GitLab 應(yīng)用程序。
如果直接使用yum install git
會出現(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 的官方倉庫:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
安裝 GitLab Runner:
# 這里如果很慢可以在本機下載再上傳一下,https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/index.html sudo yum install gitlab-runner
2. 注冊到 GitLab 服務(wù)器
- 登錄到你的 GitLab 服務(wù)器。
- 轉(zhuǎn)到你項目的設(shè)置頁面。
- 在左側(cè)導(dǎo)航欄中選擇 CI/CD -> Runners 設(shè)置。
- 復(fù)制注冊 Runner 的 URL 和 Token。
- 回到你的 Runner 主機上,在終端中執(zhí)行注冊命令,使用提供的 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/):
填寫你的gitlab地址,如果也是使用的官網(wǎng)就直接填https://gitlab.com/
Enter a name for the runner. This is stored only in the local config.toml file:
在這里,你需要為 GitLab Runner 指定一個名稱。這個名稱僅會存儲在本地的配置文件 config.toml
中,用于識別該 Runner。
你可以根據(jù)需要選擇一個描述性的名稱,以便于識別和管理。
例如,你可以使用項目名稱、環(huán)境名稱或者其他有意義的標(biāo)識作為 Runner 的名稱。
Enter an executor: instance, shell, ssh, virtualbox, docker, kubernetes, docker-autoscaler, custom, parallels, docker-windows, docker+machine:
在這里,你需要選擇一個執(zhí)行器(executor),用于指定 GitLab Runner 在執(zhí)行 CI/CD 任務(wù)時的運行環(huán)境。
以下是常見的執(zhí)行器選項及其簡要說明:
根據(jù)你的需求和環(huán)境選擇一個合適的執(zhí)行器,并輸入其名稱。
- shell: 在 Runner 主機上使用 Shell 執(zhí)行任務(wù)。
- docker: 使用 Docker 容器來運行任務(wù)。
- docker+machine: 使用 Docker Machine 在虛擬機中運行 Docker 容器。
- docker-windows: 在 Windows 主機上使用 Docker 運行任務(wù)。
- ssh: 通過 SSH 連接到遠程主機并執(zhí)行任務(wù)。
- kubernetes: 在 Kubernetes 集群中運行任務(wù)。
- virtualbox: 在 VirtualBox 虛擬機中運行任務(wù)。
- custom: 自定義執(zhí)行器,你可以自己編寫腳本來定義任務(wù)的執(zhí)行方式。
4. 驗證 Runner 是否注冊成功
- 回到 GitLab 服務(wù)器的項目設(shè)置頁面。
- 在 CI/CD -> Runners 部分,你應(yīng)該能夠看到剛剛注冊的 Runner。
- 確保 Runner 的狀態(tài)為“活躍”。
5. 測試 Runner 是否正常工作
- 在你的項目中創(chuàng)建一個簡單的 CI/CD 配置文件(如
.gitlab-ci.yml
)。 - 將配置文件提交到你的項目中。
- 在 GitLab 服務(wù)器的項目頁面上觸發(fā)一個 Pipeline,觀察任務(wù)是否由 Runner 正常執(zhí)行。
通過以上步驟,你應(yīng)該能夠成功在 CentOS 7 上搭建和注冊 GitLab Runner,并確保它能夠正常工作。如果遇到任何問題,請查閱官方文檔或在社區(qū)尋求幫助。
配置Runner執(zhí)行器
在配置Runner執(zhí)行器時,需要指定執(zhí)行器的類型和相關(guān)參數(shù),以確保任務(wù)能夠按照預(yù)期順利執(zhí)行。以下是配置Runner執(zhí)行器的一般步驟:
1.選擇執(zhí)行器類型:根據(jù)實際需求選擇適合的執(zhí)行器類型,常見的包括:
- shell:在本地或遠程服務(wù)器上執(zhí)行腳本命令。
- docker:在Docker容器中執(zhí)行任務(wù),可用于構(gòu)建和運行應(yīng)用程序。
- kubernetes:在Kubernetes集群中執(zhí)行任務(wù),適用于復(fù)雜的容器化環(huán)境。
- virtualbox:在虛擬機中執(zhí)行任務(wù),可用于本地開發(fā)和測試。
- ssh:通過SSH協(xié)議連接到遠程主機并執(zhí)行任務(wù)。
- custom:自定義執(zhí)行器,根據(jù)需要編寫自己的執(zhí)行器邏輯。
2.設(shè)置執(zhí)行器參數(shù):根據(jù)選定的執(zhí)行器類型,設(shè)置相關(guān)參數(shù),如并發(fā)度、超時時間等。
- 并發(fā)度:指定Runner同時執(zhí)行的任務(wù)數(shù)量,可以根據(jù)服務(wù)器性能和任務(wù)負(fù)載進行調(diào)整。
- 超時時間:設(shè)置任務(wù)執(zhí)行的最大時間,超過該時間將視為超時并中止任務(wù)。
3.配置Runner:編輯.gitlab-ci.yml文件,添加或修改相應(yī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ū)動器(DOCKER_DRIVER)等。這樣配置的Runner將會在Docker容器中執(zhí)行構(gòu)建和測試任務(wù)。
根據(jù)實際情況,可以根據(jù)需要添加其他執(zhí)行器類型和參數(shù),以滿足項目的具體要求。
高級配置
在配置Runner執(zhí)行器的高級配置和擴展時,可以進一步優(yōu)化CI/CD流程,并集成各種第三方工具和服務(wù),以滿足更復(fù)雜的需求。以下是一些高級配置和擴展的示例:
1.緩存和共享卷:
- 緩存:通過設(shè)置緩存,可以在不同作業(yè)之間共享和重用依賴項,加快構(gòu)建速度??梢跃彺婢幾g依賴項、依賴庫、下載的軟件包等。
- 共享卷:共享卷允許在不同作業(yè)之間共享文件或目錄,便于數(shù)據(jù)傳遞和共享。可以將構(gòu)建產(chǎn)生的文件、測試報告等存儲到共享卷中,并在后續(xù)作業(yè)中使用。
2.集成第三方工具和服務(wù):
- Docker:可以使用Docker容器作為執(zhí)行器,實現(xiàn)環(huán)境隔離和一致性。還可以利用Docker鏡像來構(gòu)建、測試和部署應(yīng)用程序。
- AWS、Azure等云服務(wù):可以利用云服務(wù)提供的資源來執(zhí)行CI/CD作業(yè),例如在AWS上運行測試套件、部署到Azure容器實例等。
- 第三方CI/CD工具:如Jenkins、Travis CI等,可以與GitLab Runner集成,實現(xiàn)更復(fù)雜的CI/CD流程。
3.定制特定環(huán)境下的作業(yè):
- Java、Python、Node.js等:針對不同的編程語言和框架,可以定制特定的CI/CD作業(yè),包括編譯、測試、打包、部署等。
- 安全檢查和代碼分析:集成靜態(tài)代碼分析工具、安全漏洞掃描工具等,對代碼進行質(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)建過程,同時實現(xiàn)測試報告等數(shù)據(jù)的共享和傳遞。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解CentOS7下PostgreSQL 11的安裝和配置教程
這篇文章主要介紹了CentOS7下PostgreSQL 11的安裝和配置教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Apache訪問出現(xiàn)501 Method Not Implemented錯誤解決
這篇文章主要介紹了Apache訪問出現(xiàn)501 Method Not Implemented錯誤解決,有些導(dǎo)致該錯誤的情況可以用文中修改配置文件的方法來解決,需要的朋友可以參考下2015-07-07centos 6.9 升級glibc動態(tài)庫的詳細過程
glibc是gnu發(fā)布的libc庫,即c運行庫,glibc是linux系統(tǒng)中最底層的api,幾乎其它任何運行庫都會依賴于glibc。這篇文章主要介紹了centos 6.9 升級glibc動態(tài)庫的詳細過程,需要的朋友可以參考下2019-11-11Centos 通過 Nginx 和 vsftpd 構(gòu)建圖片服務(wù)器的教程(圖文)
本篇文章主要介紹了Centos 通過 Nginx 和 vsftpd 構(gòu)建圖片服務(wù)器的教程(圖文),具有一定的參考價值,有興趣的可以了解一下2017-08-08Wampserver2.5配置虛擬主機出現(xiàn)403 Forbidden的處理方案
WampServer是一款由法國人開發(fā)的Apache Web服務(wù)器、PHP解釋器以 及MySQL數(shù)據(jù)庫的整合軟件包。免去了開發(fā)人員將時間花費在繁瑣的配置環(huán)境過程,從而騰出更多精力去做開發(fā)。在windows下將Apache+PHP+Mysql 集成環(huán)境,擁有簡單的圖形和菜單安裝和配置環(huán)境。2014-09-09apache服務(wù)器一個ip(如:127.0.0.1)和多個域名(虛擬主機)的綁定
今天在學(xué)習(xí)PHP時,用的是apache服務(wù)器有這樣的一個需求:一個ip(如:127.0.0.1)和多個域名(虛擬主機)綁定,以下是我的解決方案,需要的朋友可以參考下2015-01-01