Gitlab-runner

GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CIGitLab随附的用于协调作业的开源持续集成服务。

要求

  • GitLab Runner是用Go编写的,可以作为一个二进制文件运行,不需要特定于语言的要求。它旨在在GNU / Linux,macOS和Windows操作系统上运行。只要您可以在其他操作系统上编译Go二进制文件,其他操作系统就可能会运行。

  • 如果要使用Docker,请安装最新版本。GitLab Runner需要最少的Docker v1.13.0

  • GitLab Runner版本应与GitLab版本同步。尽管较旧的Runner仍可以使用较新的GitLab版本,反之亦然,但在某些情况下,如果版本存在差异,则功能可能不可用或无法正常工作。在次要版本更新之间可以保证向后兼容性,但是请注意,GitLab的次要版本更新会引入新功能,这些新功能将要求Runner在同一次要版本上使用。

特点

  • 允许运行:
    • 同时执行多个作业。
    • 对多个服务器(甚至每个项目)使用多个令牌。
    • 限制每个令牌的并行作业数。
  • 可以运行作业:
    • 在本地。
    • 使用Docker容器。
    • 使用Docker容器并通过SSH执行作业。
    • 使用Docker容器在不同的云和虚拟化管理程序上自动缩放。
    • 连接到远程SSH服务器。
  • 用Go编写并以单个二进制文件的形式分发,而没有其他要求。
  • 支持Bash,Windows Batch和Windows PowerShell。
  • 在GNU / Linux,macOS和Windows(几乎可以在任何可以运行Docker的地方)上运行。
  • 允许自定义作业运行环境。
  • 自动重新加载配置,无需重启。
  • 易于使用的设置,并支持Docker,Docker-SSH,Parallels或SSH运行环境。
  • 启用Docker容器的缓存。
  • 易于安装,可作为GNU / Linux,macOS和Windows的服务。
  • 嵌入式Prometheus指标HTTP服务器。
  • 裁判工作者监视Prometheus度量标准和其他特定于工作的数据并将其传递给GitLab。

不建议使用docker或者k8s安装runner, 以避免一些第三方工具使用的不便, 比如maven,docker,kubectl等

使用GItLab官方仓库安装

提供了Debian,Ubuntu,Mint,RHEL,Fedora和CentOS当前受支持版本的软件包。

DistributionVersionEnd of Life date
Debianstretchapprox. 2022
DebianjessieJune 2020
UbuntubionicApril 2023
UbuntuxenialApril 2021
Mintsonyaapprox. 2021
Mintserenaapprox. 2021
Mintsarahapprox. 2021
RHEL/CentOS7June 2024
RHEL/CentOS6November 2020
Fedora29approx. November 2019

Add GitLab’s official repository: 添加官方仓库

1
2
3
4
5
# For Debian/Ubuntu/Mint
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

# For RHEL/CentOS/Fedora
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

Install the latest version of GitLab Runner: 安装最新版本

1
2
3
4
5
# For Debian/Ubuntu/Mint
sudo apt-get install -y gitlab-runner

# For RHEL/CentOS/Fedora
sudo yum install -y gitlab-runner

To install a specific version of GitLab Runner: 安装指定版本

1
2
3
4
5
6
7
# for DEB based systems
apt-cache madison gitlab-runner
sudo apt-get install -y gitlab-runner=12.9.0

# for RPM based systems
yum list gitlab-runner --showduplicates | sort -r
sudo yum install -y gitlab-runner-10.7.0

更新runner

1
2
3
4
5
6
7
# For Debian/Ubuntu/Mint
sudo apt-get update -y
sudo apt-get install -y gitlab-runner

# For RHEL/CentOS/Fedora
sudo yum update -y
sudo yum install -y gitlab-runner

在GNU / Linux上手动安装GitLab Runner

如果你不能使用deb / rpm存储库安装GitLab Runner,或者你的GNU / Linux操作系统不在支持的版本中,则可以使用以下任一方法手动安装它。

  1. https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html上找到最新的文件名和选项(将<arch>改成对应平台版本,如amd64) 。
  2. 选择一个版本并下载二进制文件,如文档所述,该文件用于下载任何其他标记的 GitLab Runner发行版。

通过debrpm软件包

对于Debian或Ubuntu:

1
2
3
4
5
curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_<arch>.deb

dpkg -i gitlab-runner_<arch>.deb

dpkg -i gitlab-runner_<arch>.deb

对于CentOS或Red Hat Enterprise Linux:

1
2
3
4
5
curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_<arch>.rpm

rpm -i gitlab-runner_<arch>.rpm

rpm -Uvh gitlab-runner_<arch>.rpm

通过二进制文件

下载指定版本: 将URL中的latest切换为 v12.9(如需指定版本安装)。

1
2
3
4
5
6
7
8
9
10
11
# Linux x86-64
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Linux x86
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386

# Linux arm
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm

# Linux arm64
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64

添加执行权限

1
sudo chmod +x /usr/local/bin/gitlab-runner

创建一个gitlab用户

1
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

安装并作为服务运行

1
2
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

更新

1
2
3
4
5
6
7
8
9
10
11
#停止服务
sudo gitlab-runner stop

#下载新版本二进制包
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

#赋予执行权限
sudo chmod +x /usr/local/bin/gitlab-runner

#启动服务
sudo gitlab-runner start