GitLab CI/CD之Runner
1.什么是Runner以及为什么需要Runner?
- 官方解释:
GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline.
几个概念:
- GitLab Job:流水线的最小单元,每个job中可能包含一条或多条待执行的命令。
- GitLab Runner:与Gitlab CI/CD一起工作,用于运行流水线中的job一种应用。
- Runner Executor:每一个Runner都会定义一个Executor,Executor其实就是job的运行环境,GitLab中可以使用如下不同的Executor:Shell、SSH、Docker、Kubernetes等等。
Runner到底是做什么用的?
在GitLab项目中,我们定义了 .gitlab-ci.yml 文件。.gitlab-ci.yml文件中又定义了在执行CI/CD流水线时我们想去运行的stage,以及在每个stage中需要做什么事情。那么GitLab Runner 会将项目克隆下来并且读取 .gitlab-ci.yml文件,去执行我们在文件中定义的那些job。
2.Runner有哪几种类型?
Shared runners :在GitLab的所有Group和Project中都可用。
- Group runners:对于某个Group中的所有项目和子Group可用。
- Specific runners :和一些特定的Project绑定,一般一对一。
3.常见的配置runner的方式
- Runner安装方式有很多,详见官网文档,这里以docker方式安装为例。
3.1 拉镜像、启容器
- 这一步是为了在服务器上安装Runner,以配置本地volume为例:
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
3.2 注册Runner
- 这一步是为了将服务器上的Runner和项目绑定。
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
输入命令后依次输入如下内容:
GitLab instance URL
token
description
optional maintenance
- runner executor,如果这里使用docker,我们还要输入项目所需要使用的默认镜像。
3.3 重启容器
- 这一步是为了使配置生效。
docker restart gitlab-runner
参考链接
https://docs.gitlab.com/runner/
https://docs.gitlab.com/runner/install/index.html
https://docs.gitlab.com/ee/ci/runners/runners_scope.html
https://docs.gitlab.com/runner/register/index.html#docker
https://stackoverflow.com/questions/47281209/what-is-gitlab-runner