前言
去年花时间研究了一下 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 installed
、Service 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/...