操作系统::CentOS8
gitlab版本:13.11.4
可以从https://packages.gitlab.com/app/runner/gitlab-runner/search找到与安装的gitlab版本相近的gitlab-runner版本以及安装命令等信息,我找到与13.11.4相近的是gitlab-runner-13.11.0-1.x86_64.rpm。

下载配置:
- #Debian/Ubuntu/Mint:
- curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
-
- #查看可以安装的列表
- apt-cache madison gitlab-runner
-
- #安装
- sudo apt-get install gitlab-runner-13.11.0-1
-
-
-
- #RHEL/CentOS/Fedora:
- curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
-
- #查看可以安装的列表
- yum list gitlab-runner --showduplicates | sort -r
-
- #安装
- sudo yum install gitlab-runner-13.11.0-1
-
- #执行注册
- gitlab-runner register
注册时依次要求输入:
1、Enter the GitLab instance URL:gitlab的url,获取位置见下图
2、Enter the registration token:获取位置见下图
3、Enter a description for th runner:说明随便填
4、Enter tags for the runner:指定标签,用于标识runner
5、Enter an executor:我用的shell
registration token可以从2个地方获取,一个是gitlab全局的token,另一个是项目的token:
全局token获取位置:

项目token获取位置:
进入某个项目获取

每个项目的token不同,注册后直接与该项目绑定。后期也可以在gitlab中为该注册的runner绑定其他的项目。runner管理功能入口见下图:

这个问题是因为 CentOS 8 已于2021年12月31日停止官方服务,而在2022年1月31日,CentOS 团队从官方镜像中移除了 CentOS 8 的所有包。现在他们被转移到 vault.centos.org。
可以在 /etc/yum.repos.d 中更新一下源。使用 vault.centos.org 代替 mirror.centos.org 即可。
按照以下步骤操作:
- sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
- sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
这个问题是由于 GitLab 的包签名密钥在一段时间内过期,影响了 GitLab 和 GitLab Runner 的升级和新安装。需要更新系统上用于签名 GitLab Linux 包的 GPG 密钥。
按照以下步骤操作:
- #从存储库密钥环中删除任何现有密钥
- for pubring in /var/cache/dnf/gitlab_gitlab-?e-*/pubring
- do
- gpg --homedir $pubring --delete-key F6403F6544A38863DAA0B6E03F01618A51312F3F
- done
-
- #清理缓存
- sudo dnf clean all
-
- #更新
- sudo dnf check-update
在项目pom.xml同级目录中创建.gitlab-ci.yml文件:
- stages:
- - build
-
- build:
- stage: build
- script:
- - echo "Building WAR file"
- - mvn clean package -P prod
- artifacts:
- paths:
- - ep.war
这个问题是因为.gitlab-ci.yml文件中的作业没有指定任何标签,而GitLab Runner被配置为只运行具有特定标签的作业。有两种方式解决这个问题:
1)在.gitlab-ci.yml文件中指定tags
- stages:
- - build
-
- build:
- stage: build
- script:
- - echo "Building WAR file"
- - mvn clean package -P prod
- tags:
- - my-tag #注册时填写的标签
- artifacts:
- paths:
- - ep.war
2)允许runner运行没有标签的作业

