首页 » 运维 » 正文

GitLab CI/CD

GitLab CI/CD 是gitlab内置的一个工具,作用和我们的jenkins类似,不过由于是gitlab内置的工具,不需要额外配置外部的jenkins

下图是Gitlab 的基本流程

gc1

简单的总结一下就是:

创建一个新的branch -> 把我们的代码修改并Push我们的新branch(PR) ->GitLab CI/CD 会根据我们的新的branch 构架并测试(不断的修改测试)->通过我们review结果达到要求以后->通过pr merge到我们的master->自动部署我们的master 代码

 

如何编写我们的CI CD代码,其实很简单,只需要在repo根目录下增加一个文件:.gitlab-ci.yml

内容如下:

内容非常简单: 先安装一个包,然后打印ruby 的版本

然后,这个时候就有一个问题,这个Pipeline 在哪台机器上运行?

和jenkins的slave 概念类似,GitLab CI/CD需要GitLab Runner 来执行我们的Pipeline ,那么,什么是GitLab Runner ?

GitLab Runner 可以是Docker , 可以是一台linux主机,也可以是一台windows 主机,也可以是一个Kubernetes cluster

前提我们需要将我们安装好gitlab runner的 机器注册到gitlat master机器,这样,master才可以使用这个GitLab Runner 来执行一些Pipeline

如果使用的是常见的系统直接运行如下命令就可以安装:

然后注册的步骤如下:

  1. 执行命令:
  2. 输入你的gitlab master 地址:
  3. 输入你从gitlab master获得的token:
  4. 输入对当前runner 的描述信息:
  5. 输入当前runner 的tag标签:
  6. 输入 executor 类型Runner executor:
  7. 如果你选择的类型是docker,会额外让你输入默认的景象名称(如果Pipeline中未指定的话):

此处会因为你在master 某个具体项目中的token还是系统级别的token 觉得当前Runner 是Shared Runner 或者是Specific Runners

更多可以参考官网

然后与Runner 配套的是executor ,eecuutor就是我们的Pipeline 登陆到我们的机器上之后在什么环境中执行:

 

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)