微信公众号:运营发展故事,作者:双冬

持续集成(CI)

CI,持续集成,是软件开发过程中非常重要的一个环节。在互联网敏捷开发过程中,通常使用持续集成进行日常编译和自动化测试,以保证及时发现提交的问题,避免影响项目进度。

一般来说,持续集成的过程包括:

  • 提交(合并)代码

  • 编译

  • 测试

  • 发布

不同的项目可能有不同的步骤。一些比较规范的公司的项目可能会增加静态代码检查,而很多小项目由于进度和QA的压力甚至可能没有测试流程。

GitLab CI/CD 转载自:https://docs.gitlab.com/ee/ci/

持续集成工具

CI 工具有很多,其中 Jenkins 是最常用的一种。 Jenkins 通常包括一个 master 和许多 slave。 Master用于配置和组织节点和任务,而slave用于实际执行配置的任务。由于庞大的用户群,Jenkins上的各种插件,尤其是很多可视化插件非常丰富,可以帮助很多新手快速配置所需的任务。

Gitlab CI 是 git 的官方持续集成工具。 git项目管理页面还有专门的CI配置和展示页面。

自述文件。 com对于Github上很多优秀的开源项目,在MD中可以看到下图中的“build|passing”图标,是通过markdown元素引用当前版本CI/CD的结果展示。

随着越来越多的代码通过 git 进行管理,gitlab CI 已经成为了一个通用的 CI 平台。据我了解,gitlab CI 是 Jenkins 的简单版本。 GIT服务器也兼作Jenkins master的功能,我只需要准备一个slave。而且,gitlab Ci 的 runner 支持多种环境。特别是 Docker 拥有独家的配置支持。配置过程也非常简单,无需脑补。对比Jenkins的slave配置,可以说是完胜。

我一直在公司的Jenkins服务平台上做CI(其实我也没做过几个)。由于Jenkins权限控制的问题,在slave上尝试排查环境问题不方便(可以看我之前在oclint排查环境问题)。刚才公司项目用的是gitlab Ci,所以想学习一下。

gitlab CI runner安装配置

1.安装 Docker

安装 docker 以便稍后运行 runner

参考资源 https://docs.docker.com/install/linux/docker-ce/centos/

  • 在linux上

卷曲-sSL https://get.docker.com/ |嘘

  • 在 Mac 操作系统上

对于 Mac OS,我们可以使用 Homebrew 来安装 Docker。

Homebrew 的 Cask 已经支持 Docker for Mac,因此您可以轻松使用 Homebrew Cask 进行安装:

$ brew cask install docker

u003du003d> 在 /usr/local/Caskroom 创建 Caskroom

u003du003d> 我们将正确设置权限,因此我们将来不需要 sudo

Password: # 输入 Mac OS 密码

u003du003d> 满足依赖

u003du003d> 下载 https://download.docker.com/mac/stable/21090/Docker.dmg

################################################# ####################### 100.0%

u003du003d> 验证 Cask docker 的校验和

u003du003d> 安装 Cask docker

u003du003d> 将应用程序“Docker.app”移动到“/Applications/Docker.app”。

🍺 docker安装成功!

加载 Docker 应用程序后,单击下一步。系统可能会要求您输入 Mac OS 登录密码,您可以输入该密码。之后会弹出Docker操作的提示窗口,状态栏上还有一个小鲸鱼图标()。

2.安装 gitlab ci 运行器

  • 在linux上

参考链接:https://docs.gitlab.com/runner/install/linux-manually.html

使用二进制文件安装

# 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

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

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

sudo gitlab-runner 安装 --useru003dgitlab-runner --working-directoryu003d/home/gitlab-runner

sudo gitlab-runner 开始

检查是否正常工作

root@i-klhcs1uo:~# gitlab-runner 状态

运行平台archu003damd64 osu003dlinux pidu003d16705 revisionu003dc127439c versionu003d13.0.0

gitlab-runner:服务正在运行!

  • 在 Mac 操作系统上

➜ [/Users/mac] brew install gitlab-runner

➜ [/Users/mac] brew services 启动 gitlab-runner

➜ [/Users/mac] gitlab-runner 状态

运行平台archu003damd64 osu003ddarwin pidu003d61606 revisionu003d21cb397c versionu003d13.0.1

gitlab-runner:服务正在运行!

3.设置 Docker 权限

为了让gitlab runner正确执行docker命令,需要将gitlab runner用户加入docker组,然后重启docker和gitlab ci runner

usermod -aG docker gitlab-runner

服务码头重新启动

gitlab-runner 重启

4. Gitlab 跑步者注册

注册过程是获取runner token >> 注册

4.1种gitlab runner

  • shared:运行整个平台项目的作业(gitlab)

  • Group:运行特定组下所有项目的作业(Group)

  • 具体:运行指定项目作业(project)

  • 锁定:无法运行项目作业

  • paused:作业不会运行

首先,你需要知道 gitlab runner 的类型。如果能在不同的接口中获取到runner token,就会生成不同类型的runner。

Gitlab runner 支持分布式,可以在各种环境下运行,非常方便开发和测试。安装 gitlan runner 后,需要注册 gitlab 进行关联。一、登录gitlab获取url和token

获取共享类型runnertoken

进入系统设置->跑步者

获取组类型的runnertoken

转到组->设置-> CI / CD->跑步者->组跑步者

获取特定类型的 runnertoken

进入具体项目->设置->CI/CD->运行器->具体运行器

4.2注册

  • 方法一:交互式注册

➜ [/Users/mac] gitlab-runner 注册

运行平台archu003damd64 osu003ddarwin pidu003d61621 revisionu003d21cb397c versionu003d13.0.1

警告:在用户模式下运行。

警告:对系统模式使用 sudo:

警告:$ sudo gitlab-runner...

请输入 gitlab-ci 协调器 URL(例如 https://gitlab.com/):

http://gitlab.example.com/

请输入此跑步者的 gitlab-ci 令牌:

6-uZ1ndZ2NRGp8_TghnL

请输入此运行器的 gitlab-ci 描述:

[Double-dong.local]: gitlab-ci

请输入此运行器的 gitlab-ci 标签(逗号分隔):

python3.4

正在注册跑步者...成功的跑步者u003d6-uZ1ndZ

请输入执行者:docker+machine、kubernetes、ssh、virtualbox、docker-ssh、parallels、shell、docker-ssh+machine、custom、docker:

码头工人

请输入默认的 Docker 镜像(例如 ruby:2.6):

蟒蛇:3.4

Runner注册成功。随意启动它,但如果它已经在运行,配置应该会自动重新加载!

➜ [/Users/mac] gitlab-runner 验证

运行平台archu003damd64 osu003ddarwin pidu003d61635 revisionu003d21cb397c versionu003d13.0.1

警告:在用户模式下运行。

警告:对系统模式使用 sudo:

警告:$ sudo gitlab-runner...

验证跑步者...是否还活着 跑步者u003dNkYLeMbb

➜ [/Users/mac] gitlab-runner 列表

运行平台archu003damd64 osu003ddarwin pidu003d61640 修订u003d21cb397c 版本u003d13.0.1

列出已配置的运行器 ConfigFileu003d/Users/mac/.gitlab-runner/config.toml

gitlab-ci Executoru003ddocker Tokenu003dNkYLeMbbpJ2NyuwxaVKG URLu003dhttp://gitlab.example.com/

  • url: 私有 git 的路径

  • Token:项目的token,用于将跑者与项目关联起来

  • name:跑步者的名字,用来区分跑步者

  • 技术标签: 用来匹配jobs和runners

  • executor:执行环境

可以在项目的 CI 配置页面上找到 url 和 token。 name 仅用于区分两个跑步者,并无特殊作用。 tags 属性,job 和 runner,用于匹配任务和执行任务的 runner。 job的tags属性会在下一篇文章中提到,也可以自己参考gitlab-ci。 YML 的语法。 runner 中可以有多个标签,注册时可以用逗号分隔。当作业的标签是当前运行器标签的子集时,可以将作业分配给当前运行器执行。

例如栗子跑者的标签设置为python2 7,python3.4。将作业的标签设置为 python2 7 或 Python 3 4。macos 可以在此运行器上执行。该标签将不会分配给该作业。

executor是执行job的环境。通常,我们会选择docker。如有其他需要,我们也可以自行查阅文件。

当我们完成设置后,我们可以使用 vi ~/gitlab-runner/config。 toml打开runner配置文件,刚才填写的信息会记录在里面。如果配置了多个runner,会出现两个runner的section s,如图。

注册成功后,回到gitlab的激活状态。

  • 方法二:直接注册

➜ [/Users/mac] gitlab-runner 注册 \

--非交互式\

--executor“外壳”\

--url "http://gitlab.example.com/" \

--注册令牌“AvpQDzBCL66sYKyURChH”\

--description "devops-runner" \

--tag-list“构建,部署”\

--run-untaggedu003d"真" \

--lockedu003d"假" \

--access-levelu003d"not_protected"

⚠️:这里如果gitlab服务器开启了https,gitlab runner在注册的时候需要对证书文件进行签名。解决方法如下:

➜ [/Users/mac] gitlab-runner 注册 \

--非交互式\

--tls-ca-fileu003d/etc/gitlab/ssl/gitlab.example.com.crt \

--url "https://gitlab.example.com/" \

--注册令牌“AvpQDzBCL66sYKyURChH”\

--执行者“码头工人”\

--docker-image maven:最新\

--description "跑步者" \

--标签列表“运行”\

--运行未标记\

--lockedu003d"假"

在系统模式下运行。

注册跑步者...成功的跑步者u003dAvpQDzBC

Runner注册成功。随意启动它,但如果它已经在运行,配置应该会自动重新加载!

4.3 注册后效果

图像.png

参考文章:

https://translate.google.com/translate?hl=emj&sl=auto&tl=zh&u=https://www.jianshu.com/p/30e3f2940078

https://translate.google.com/translate?hl=emj&sl=auto&tl=zh&u=https://docs.gitlab.com/11.9/runner/register/index.html

公众号:运营发展故事

github:https://github.com/orgs/sunsharing-note/dashboard

爱生活,爱运维

如果您觉得文章不错,请点击右上角发给您的朋友或转发到您的朋友圈。您的支持和鼓励是我最大的动力。喜欢的话请关注我哦~

扫描二维码

关注我,不定时维护优质内容

提醒

如果你喜欢这篇文章,请分享到你的朋友圈。想了解更多,请关注我。

................................................................................................

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐