使用官方极狐GitLab 仓库安装极狐GitLab Runner
支持的发行版
我们通过 packagecloud 为以下受支持的 Linux 发行版版本提供软件包。当受 packagecloud 支持时,会自动添加新操作系统发行版的新 Runner deb
或 rpm
包。
根据您的设置,可能也支持其他基于 deb
或 rpm
的发行版。这是指从受支持的极狐GitLab Runner 发行版衍生并且具有兼容包仓库的发行版。例如,Deepin 是 Debian 的衍生产品,因此 Runner Debian 软件包应在 Deepin 上安装并运行。您还可以在其他 Linux 发行版上将极狐GitLab Runner 作为二进制文件进行安装。
发行版 | 支持的信息 |
---|---|
Debian | https://wiki.debian.org/LTS |
Ubuntu | https://wiki.ubuntu.com/Releases |
LinuxMint | https://linuxmint.com/download_all.php |
Raspbian | |
RHEL | https://access.redhat.com/product-life-cycles?product=Red%20Hat%20Enterprise%20Linux |
Oracle Linux | https://endoflife.date/oraclelinux |
Fedora | https://docs.fedoraproject.org/en-US/releases/eol/ |
Amazon Linux | https://aws.amazon.com/linux/ |
如果您想使用Docker 执行器,请在使用极狐GitLab Runner 前安装 Docker。 详情请参见如何为您的发行版安装 Docker。
安装极狐GitLab Runner:
-
添加官方极狐GitLab 仓库:
::Tabs
:::TabTitle Debian/Ubuntu/Mint
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
:::TabTitle RHEL/CentOS/Fedora/Amazon Linux
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
::EndTabs
-
安装最新版本的极狐GitLab Runner,或跳到下一步,安装特定版本。
Debian 用户应该使用 APT Pinning。为了方便用户安装使用极狐GitLab Runner,我们在中国国内设置了极狐GitLab 镜像站点。::Tabs
:::TabTitle Debian/Ubuntu/Mint
sudo apt install gitlab-runner
:::TabTitle RHEL/CentOS/Fedora/Amazon Linux
sudo yum install gitlab-runner or sudo dnf install gitlab-runner
::EndTabs
符合 FIPS 140-2 的极狐GitLab Runner 版本可用于 RHEL 发行版。您可以将gitlab-runner-fips
用作包名称以安装这个版本,而不是使用gitlab-runner
。 -
安装特定版本的极狐GitLab Runner:
::Tabs
:::TabTitle Debian/Ubuntu/Mint
apt-cache madison gitlab-runner sudo apt install gitlab-runner=17.2.0-1
:::TabTitle RHEL/CentOS/Fedora/Amazon Linux
yum list gitlab-runner --showduplicates | sort -r sudo yum install gitlab-runner-17.2.0-1
::EndTabs
完成上述步骤后,应启动 Runner 准备使用。
确保您阅读了 FAQ ,它介绍了您在使用极狐GitLab Runner 时最可能遇到的问题。
升级极狐GitLab Runner
将极狐GitLab Runner 升级到最新版本:
::Tabs
:::TabTitle Debian/Ubuntu/Mint
sudo apt update
sudo apt install gitlab-runner
:::TabTitle RHEL/CentOS/Fedora/Amazon Linux
sudo yum update
sudo yum install gitlab-runner
::EndTabs
极狐GitLab 镜像站点
中国国内用户可以使用极狐GitLab 镜像站点安装极狐GitLab Runner。目前镜像站点已经支持主流的 Linux 发行版,包括:
- Ubuntu 22.04(jammy)
- Ubuntu 20.04(focal)
- Ubuntu 18.04(bionic)
- Ubuntu 16.04(xenial)
- Debian 11(bullseye)
- Debian 10(buster)
- Debian 9(stretch)
- RHEL/CentOS Stream 8
- RHEL/CentOS 7
如果要使用极狐GitLab 镜像站点,对于 Debian/Ubuntu:
curl -L "https://packages.gitlab.cn/repository/raw/scripts/runner.deb.sh" | sudo bash
对于 RHEL/CentOS:
curl -L "https://packages.gitlab.cn/repository/raw/scripts/runner.rpm.sh" | sudo bash
包安装的GPG 签名
为了增加用户对已安装软件的信心,极狐GitLab Runner 项目为安装方法提供两种 GPG 签名:仓库元数据签名和包签名。
仓库元数据签名
包管理器使用仓库元数据签名验证从远端仓库下载的包信息是否可信。
当您使用类似 apt-get update
的命令时会验证签名,进而在下载和安装任何软件包之前更新相关可用软件包的信息。验证失败也会导致包管理器拒绝元数据。这意味着在找到并解决导致签名不匹配的问题之前,您无法从仓库下载和安装任何软件包。
在按照上述指南安装完成以后,会自动安装用于包元数据签名验证的 GPG 公钥。 对于未来的关键升级,现有用户需要手动下载并安装新密钥。
包签名
使用包签名,每个包在构建时都会被签名。所以在您信任构建环境和所使用的 GPG 密钥的保密性之前,包上的有效签名都会证明其来源经过验证并且其完整性没有受到损坏。
默认情况下,仅在某些基于 DEB/RPM 的发行版中启用包签名验证,所以想要进行这种验证的用户可能需要调整配置。
基于 RPM 的发行版
RPM 格式包含 GPG 签名功能的完整实现,因此与基于该格式的包管理系统进行了完全集成。
您可以在 Omnibus GitLab 文档中找到为基于 RPM 的发行版配置包签名验证的技术说明。 极狐GitLab Runner 的区别是:
-
应安装的公钥包的名称是
gpg-pubkey-35dfa027-60ba0235
。 -
基于 RPM 的发行版的仓库文件将命名为
/etc/yum.repos.d/runner_gitlab-runner.repo
(稳定版本)或/etc/yum.repos.d/runner_unstable.repo
(不稳定版本)。
基于 DEB 的发行版
DEB 格式没有正式包含用于签名包的默认和包含方法。
极狐GitLab Runner 项目使用 dpkg-sig
工具进行签名并验证包上的签名。这个方法仅支持手动验证包。
-
安装
dpkg-sig
。apt-get update && apt-get install dpkg-sig
-
下载并导入包签名公钥。
curl -JLO "https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg" gpg --import runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg
-
使用
dpkg-sig
验证下载的包。dpkg-sig --verify gitlab-runner_amd64.deb Processing gitlab-runner_amd64.deb... GOODSIG _gpgbuilder 931DA69CFA3AFEBBC97DAA8C6C57C29C6BA75A4E 1623755049
验证具有无效签名或使用无效密钥(例如撤销的密钥)签名的包将输出类似以下的内容:
dpkg-sig --verify gitlab-runner_amd64.deb Processing gitlab-runner_amd64.deb... BADSIG _gpgbuilder
如果用户的密钥环中没有密钥,则输出将类似于:
dpkg-sig --verify gitlab-runner_amd64.v13.1.0.deb Processing gitlab-runner_amd64.v13.1.0.deb... UNKNOWNSIG _gpgbuilder 880721D4
当前 GPG 公钥
关键参数 | 值 |
---|---|
Name | GitLab, Inc. |
support@gitlab.com |
|
Fingerprint | 931D A69C FA3A FEBB C97D AA8C 6C57 C29C 6BA7 5A4E |
Expiry | 2025-04-25 |
以前的 GPG 公钥
过去使用的密钥可以在下表中找到。
对于已撤销的密钥,我们强烈建议您将其从包签名验证配置中移除。
不应再信任由这些密钥生成的签名。
编号 | 关键指纹 | 状态 | 到期日期 | 下载(仅对撤销密钥) |
---|---|---|---|---|
1 | 3018 3AC2 C4E2 3A40 9EFB E705 9CE4 5ABC 8807 21D4 |
revoked |
2021-06-08 |
撤销密钥 |
2 | 09E5 7083 F34C CA94 D541 BC58 A674 BF81 35DF A027 |
revoked |
2023-04-26 |
撤销密钥 |
故障排查
以下是当您安装极狐GitLab Runner 可能会遇到的一些问题以及排查思路。
Error: No such file or directory
导致作业失败
有时候,默认的 skeleton (skel
) 目录会引起极狐GitLab Runner 出现故障,导致作业运行失败。
为了避免这种情况,当您安装极狐GitLab Runner 时,会创建一个 gitlab-runner
用户,而且在默认情况下,创建的主目录中不包含任何骨架。使用 skel
添加到 $HOME
目录的 Shell 配置可能会干扰作业执行并引入上述意外问题。
如果您在避免使用 skel
成为默认行为之前创建了 runner,您可以尝试删除以下点文件:
sudo rm /home/gitlab-runner/.profile
sudo rm /home/gitlab-runner/.bashrc
sudo rm /home/gitlab-runner/.bash_logout
如果您需要使用 skel
目录来填充新建的 $HOME
目录,GITLAB_RUNNER_DISABLE_SKEL
变量在安装 runner 之前应被明确设置为 false
。例如:
::Tabs
:::TabTitle Debian/Ubuntu/Mint
export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E apt-get install gitlab-runner
:::TabTitle RHEL/CentOS/Fedora/Amazon Linux
export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E yum install gitlab-runner
::EndTabs