二. GitLab CI服务器搭建
微信公众号:运营发展故事,作者:双冬
持续集成(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
爱生活,爱运维
如果您觉得文章不错,请点击右上角发给您的朋友或转发到您的朋友圈。您的支持和鼓励是我最大的动力。喜欢的话请关注我哦~
扫描二维码
关注我,不定时维护优质内容
提醒
如果你喜欢这篇文章,请分享到你的朋友圈。想了解更多,请关注我。
................................................................................................
更多推荐
所有评论(0)