gitlab-runner 部署与踩坑

前言

去年花时间研究了一下 CI/CD , 自己部署了一套 gitlab-runner 玩了一下,部署过程之后遇到了不少问题,把之前的踩坑与部署记录分享一下。

简介

gitlab-runner是一个开源项目,用于运行 Pipeline 作业并将结果发送回 GitLab。

它与 GitLab CI 一起使用,GitLab CI是GitLab随附的开源持续集成服务,用于协调作业。

gitlab-runner是用 Go 编写,可以作为单个二进制文件运行,不需要语言特定的要求。

官方安装文档

gitlab-runner 安装官方文档:docs.gitlab.com/runner/inst...

gitlab-runner的三种类型:

  • 共享Runner(Shared Runner),所有项目可以使用。
  • 群组Runner(Group Runner),特定群组里的所有项目和子群组。
  • 特定Runner(Specific Runner),用于独立的项目。

gitlab-runner两种状态:

  • locked:无法运行项目作业

  • paused:不会运行作业

一、安装需知

  • gitlab runner 与 gitlab 版本尽量一致,差距过大部署会报错
  • 安装 gitlab-runner 依赖 git, 需要先安装 git
  • linux自带的git是1.8版本, 使用 runner 拉代码时会报错,升级至且大于 2.x 版本

本文版本说明

  • Git: 2.36.1
  • Gitlab: 14.7
  • GitlabRunner:15.3.0

二、下载与安装

1. 下载对应版本的 gitlab-runner 包

使用清华源下载 x86_64 架构安装包 ,官方地址可能没有 x86_64 架构安装包

shell 复制代码
sudo curl -L --output /usr/local/bin/gitlab-runner-15.3.0-1.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-15.3.0-1.x86_64.rpm"

2. 安装下载后的 rpm 包

shell 复制代码
rpm -ivh gitlab-runner-15.3.0-1.x86_64.rpm

三、安装与启动

1. 查看当前服务运行情况

shell 复制代码
gitlab-runner status
  • 如下图所示,返回 Service is running 则表示服务正在运行中
  • 如显示: the service is not installedService is stop 运行启动命令后在查看

有时候,虽然显示为 the service is not installed 但实际已经完成安装,并能正常执行运行命令

2. 启动 gitlab-runner 服务

shell 复制代码
gitlab-runner start
  • 成功启动如下图所示
  • 如提示 the service is not installed 则执行一下安装命令
shell 复制代码
gitlab-runner install --working-directory /home/gitlab-runner --user root

3. 查看服务运行状态

该命令和 gitlab-runner status 的区别是,可以更直观的看到运行状态

shell 复制代码
systemctl status gitlab-runner

成功运行如下图所示:

如显示下图中的错误,请检查指定的 working-directory 目录是否存在,不存在则手动创建一个

相关 issue:gitlab.com/gitlab-org/...

相关推荐
x-cmd5 分钟前
[x-cmd] 一切 Web、桌面应用和本地工具皆可 CLI -opencli
前端·ai·github·agent·cli·x-cmd
南山love28 分钟前
spring-boot项目实现发送qq邮箱
java·服务器·前端
wuqingshun31415930 分钟前
说一下spring的bean的作用域
java·后端·spring
F1FJJ1 小时前
Shield CLI:MySQL 插件 vs phpMyAdmin:轻量 Web 数据库管理工具对比
前端·网络·数据库·网络协议·mysql·容器
李明卫杭州1 小时前
JavaScript 严格模式下 arguments 的区别
前端·javascript
钟智强1 小时前
从2.7GB到481MB:我的Docker Compose优化实战,以及为什么不能全信AI
后端·docker
swipe1 小时前
向量数据库实战:为什么 AI Agent 离不开 Milvus
前端·面试·agent
小锋学长生活大爆炸1 小时前
【教程】Edge浏览器中可以提升性能的flags
前端·edge
苍舒墨1 小时前
如何借助Github pages部署React+vite静态前端项目
前端
曹牧1 小时前
JSON 数组的正确使用方式
java·服务器·前端