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

1. Install

Install GitLab Runner using the official GitLab repositories (首选

1、添加GitLab的官方仓库:

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

2、安装最新版本的GitLab Runner

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

3、为了安装特定版本

# For RHEL/CentOS/Fedora
yum list gitlab-runner --showduplicates | sort -r
sudo yum install gitlab-runner-10.0.0-1

4、升级Runner

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

Install GitLab Runner manually on GNU/Linux (手动安装)

# 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 

下载完以后即可安装

# 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 

手动安装

1、下载二进制文件

# 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

2、添加可执行权限

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

3、创建GitLab CI用户

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

4、安装并作为服务运行

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安装在同一台机器上。

  • Shared Runners :顾名思义,共享Runner。对于具有相似要求的作业,可以考虑用Shared Runners。你可以用一个或少量几个Runner处理多个项目,而不是让多个Runner空闲着。这样可以更轻松地维护和更新它们。Shared Runners使用公平队列处理作业,与使用FIFO队列的Specific Runners相比,这可以防止项目创建数百个作业,而导致耗尽所有可用的共享Runner资源。
  • Specific Runners :顾名思义,对于有特殊要求的作业,可以考虑用Specific Runners。
  • Group Runners :顾名思义,当一个小组中有多个项目,并且希望这些项目都可以访问一组job时,可以考虑用Group Runners。Group Runners也是用FIFO队列处理作业的。

(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

1、在admin/runners页面获取shared-Runner token

2、注册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

https://docs.gitlab.com/ee/ci/runners/

https://docs.gitlab.com/runner/commands/README.html

GitLab Runner的更多相关文章

  1. gitlab runner安装与使用

    今天来讲一下如何使用gitlab-runner 下载runner,根据自己对应服务器的型号自行选择下载: # Linux x86- sudo wget -O /usr/local/bin/gitlab ...

  2. 超详细Gitlab Runner环境配置中文教程

    配置GitlabRunner环境 GitLab Runner 是一个开源项目, 它用来运行你定制的任务(jobs)并把结果返回给 GitLab. GitLab Runner 配合GitLab CI(G ...

  3. gitlab runner 配置

    gitlab runnerhttps://scarletsky.github.io/2016/07/29/use-gitlab-ci-for-continuous-integration/https: ...

  4. gitlab runner 填坑记

    一.Gitlab Runner  CI/CD 错误: Couldn't connect to Docker daemon at http+docker://localhost - is it runn ...

  5. 基础架构之Gitlab Runner

    基础架构之Gitlab Runner也是常用的基础设施,我们接着GitLab操作,具体使用GitlabRunner,如果不熟悉可以见官方详细介绍https://docs.gitlab.com/runn ...

  6. GitLab Runner and CICD

    # Linux x86-64 sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaw ...

  7. Gitlab Runner实现NetCore自动化持续集成

    目录 1.开发工具 2.GitLab服务器搭建 3.新建webapi 4.Dockerfile配置 5.配置docker-compose.yml 6.配置.gitlab-ci.yml 7.在GitLa ...

  8. 用GitLab Runner自动部署GitBook并不难

    相信很多程序员喜欢用 GitBook 来写电子书.教程或者博客,看了不少文章,貌似都缺少说明如何将 GitBook 部署到版本库,并自动在服务器上 build,然后将生成的静态网站部署到云服务器上. ...

  9. gitlab runner使用docker报错(x509: certificate signed by unknown authority)定位

    如果gitlab runner使用docker,docker是普通配置,配置好后,runner就可以正常执行任务了. 另外一个环节Docker配置了tls加密连接,添加runner后,runner的配 ...

  10. Ubuntu安装Gitlab Runner

    第一步: 添加GitLab的官方存储库:    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runne ...

随机推荐

  1. 资源| 学习视频库-永久有效,持续更新!附赠java面试汇总

    每天进步一丢丢,连接梦与想 我们总是羡慕他人的光芒,却忘记自己也会发光 声明 资源来自于网络,小编只是资源的搬运工,若有侵权,联系小编即删. 期待已久的学习视频库来啦! 经过小编多日整理,整理了1.5 ...

  2. FluentData 学习 第一弹

    地址: http://fluentdata.codeplex.com/ 前世: FluentData 我们公司用的一个增删改查的里面的持久层.之前还不知道 这个持久层叫FluentData.  某天看 ...

  3. asp获取隐藏域的json 并解析

    方法粗糙,适用度适中. var data2 = document.getElementById("hd_data02"); var val = data2.value; var o ...

  4. .NET异步编程之APM模式

    目录 1.AMP模式简介 2.使用BeginInvoke实现异步委托 3.原始线程怎么知道新线程已经运行完毕 4.使用AsyncCallback委托实现回调模式 5.源代码下载 shanzm-2020 ...

  5. OS课程 ucore_lab2实验报告

    练习零:填写已有实验    本实验依赖实验1.请把你做的实验1的代码填入本实验中代码中有"LAB1"的注释相应部分.提示:可采用diff和patch工具进行半自动的合并(merge ...

  6. Codeforces_851

    A.分三种情况. #include<bits/stdc++.h> using namespace std; int n,k,t; int main() { ios::sync_with_s ...

  7. virtualenv 指定 python 解释器的版本

    使用如下命令为 ubuntu 系统安装 virtualenv sudo apt-get install python-virtualenv 当我们使用 virtualenv 命令创建虚拟环境时,默认使 ...

  8. 转AngularJS路由插件

    AngularJS学习笔记--002--Angular JS路由插件ui.router源码解析 标签: angular源码angularjs 2016-05-04 13:14 916人阅读 评论(0) ...

  9. 使用递归函数用来输出n个元素的所有子集(数据结构、算法与应用)

    例如,三个元素的集合A = {a,b,c}的所有子集是:空集a,b,c,ab,ac,bc,abc,共八个 分析: 对于集合A中的每个元素,在其子集中都可能存在或者不存在,所以A的子集有23种. 可以设 ...

  10. Csp_J2019游记

    Day_-14 学校开始停课集训,还好还有上午~~ Day_-7 马上半期考试+\(Csp\),心态已炸,却还要坚持集训 Day_-1 \(Csp\)前夕,打算临时抱抱佛脚,死磕了一下图论(诸如最小生 ...