GitLab Runner是一个开源项目,用于运行你的做业(jobs)并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CI是GitLab用于协调jobs的开源持续集成服务。html
1. Installlinux
Install GitLab Runner using the official GitLab repositories (首选)ios
一、添加GitLab的官方仓库:git
# For RHEL/CentOS/Fedora
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
二、安装最新版本的GitLab Runnershell
# For RHEL/CentOS/Fedora
sudo yum install gitlab-runner
三、为了安装特定版本bash
# For RHEL/CentOS/Fedora
yum list gitlab-runner --showduplicates | sort -r
sudo yum install gitlab-runner-10.0.0-1
四、升级Runner架构
# For RHEL/CentOS/Fedora
sudo yum update
sudo yum install gitlab-runner
Install GitLab Runner manually on GNU/Linux (手动安装) curl
# For CentOS or Red Hat Enterprise Linux
curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_.rpm
# 例如:
curl -LJO https://s3.amazonaws.com/gitlab-runner-downloads/master/rpm/gitlab-runner_arm.rpm
curl -LJO https://s3.amazonaws.com/gitlab-runner-downloads/master/rpm/gitlab-runner_amd64.rpm
curl -LJO https://s3.amazonaws.com/gitlab-runner-downloads/master/rpm/gitlab-runner_i686.rpm
下载完之后便可安装gitlab
# For CentOS or Red Hat Enterprise Linux
rpm -i gitlab-runner_<arch>.rpm
# 例如:
rpm -i gitlab-runner_arm.rpm
# 升级:
rpm -Uvh gitlab-runner_arm.rpm
手动安装ui
一、下载二进制文件
# 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 x86
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
# Linux x86
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64
二、添加可执行权限
sudo chmod +x /usr/local/bin/gitlab-runner
三、建立GitLab CI用户
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
四、安装并做为服务运行
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
sudo gitlab-runner stop
2. Register
一个Runner能够特定于某个项目,也能够在GitLab CI中服务于任何项目。服务于全部项目的Runner称为共享Runner。
理想状况下,不该将GitLab Runner与GitLab安装在同一台机器上。
(PS:怎么理解Shared Runners用的公平队列和Specific Runners用的FIFO队列呢?举个例子:
假设有这个一个队列
Job 1 for Project 1
Job 2 for Project 1
Job 3 for Project 1
Job 4 for Project 2
Job 5 for Project 2
Job 6 for Project 3
那么,Shared Runner执行做业的顺序会是146253,而Specific Runner执行做业的顺序是123456
)
Specific Runners 仅针对特定的项目运行,Shared Runners 则能够为每个启用了“运行shared Runners”的项目执行做业。经过Settings > CI/CD 下进行设置。
若是你是GitLab实例管理员的话,你能够注册一个Shared Runner
一、在admin/runners页面获取shared-Runner token
二、注册Runner,如前所述
3. Executors
GitLab Runner implements a number of executors that can be used to run your builds in different scenarios.
GitLab Runner 实现了许多executors,用于在不一样场景下运行你的构建。
3.1. 选择Executor
executors支持不一样的平台和方法来构建项目
Shell executor :Shell是最简单的executor,可是,它须要将构建所需的全部依赖手动安装到安装了Runner的同一台计算机上。
Virtual Machine executor :这种executor使得你可使用已建立的虚拟机,该虚拟机将被克隆并用于运行你的构建。它提供了两个完整的系统虚拟化选项:VirtualBox和Parallels。若是你想在不一样的操做系统上运行构建,它们将很是有用,由于它容许在Windows,Linux,macOS或FreeBSD上建立虚拟机,而后GitLab Runner链接到虚拟机并在其上运行构建。它的用法对于下降基础架构成本也颇有用。
Docker executor :使用Docker executor是一个很是不错的选择,由于它提供了一个干净的构建环境,而且具备轻松的依赖关系管理(用于构建项目的全部依赖关系均可以放在Docker镜像中)。Docker executor容许你能够轻松地使用依赖服务(例如MySQL)建立构建环境。
Docker Machine executor :Docker Machine是Docker executor的特殊版本,支持自动伸缩。它像普通的Docker executor同样工做,但具备Docker Machine按需建立的构建主机。
Kubernetes executor :Kubernetes executor容许你使用现有的Kubernetes集群进行构建。executor将调用Kubernetes集群API并为每一个GitLab CI做业建立一个新的Pod(带有构建容器和服务容器)。
在与GitLab CI一块儿使用时,Docker executor将链接到Docker Engine,并使用在.gitlab-ci.yml中设置的预约义镜像在单独的隔离容器中运行每一个构建。这样,你能够拥有一个简单且可复制的构建环境。
当与GitLab CI一块儿使用时,Kubernetes executor将链接到集群中的Kubernetes API,为每一个GitLab CI Job建立一个Pod。该Pod至少由一个构建容器,一个辅助容器以及一个用于.gitlab-ci.yml文件定义的每一个服务的附加容器组成。
详细配置请看文档
4. Docs
https://docs.gitlab.com/runner/
https://docs.gitlab.com/runner/install/
https://docs.gitlab.com/runner/register/
https://docs.gitlab.com/runner/executors/README.html
https://docs.gitlab.com/runner/executors/kubernetes.html