GitLab CI/CD之Runner


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

    • tags

    • 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://medium.com/devops-with-valentine/a-brief-guide-to-gitlab-ci-runners-and-executors-a81b9b8bf24e

https://stackoverflow.com/questions/47281209/what-is-gitlab-runner


文章作者: foursevenlove
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 foursevenlove !
  目录