devops(5)- 安装gitlab-runner

原文链接:https://blog.scorpii.net/2020/01/11/gitlabrunner/

前言

gitlab 提供了一个开箱即食的 ci/cd 工具, gitlab-runner 。虽然 gitlab-runner 是自动化的核心,但是因为有 helm 的帮助, 安装起来还是很简单的。

自定义配置

首先,我们需要从 gitlab 官方的 helm 仓库中获取到 gitlab-runner 的配置文件,来做一些自定义配置。

helm inspect values gitlab/gitlab-runner > runner-value.yml

这个配置文件中已经有了很详细的注释,如果还是有地方不清楚的可以到官方仓库去查找资料。

下面就开始来对这个文件进行修改。

gitlabUrl

在第19行左右,这个 gitlabUrl 将被 gitlab-runner 用来与 gitlab 通信。由于我们是在 k8s 中,所以这里我们使用之前给 gitlab 配的 service 的名称:http://gitlab

gitlab-service

runnerRegistrationToken

紧接着下面25行左右,这个 token 是从 gitlab 中来的。我们通过管理员登录 gitlab ,进到如图所示的位置,复制 token

token

于是我们的 token 就是: kWnEJs-sKT-tCqrB7AM_

cloneUrl

在251行左右,我们也是让 runner 访问 service 去。这里设置:http://gitlab/
这里这个 runner 不是 gitlab-runner 的pod,而是 gitlab-runner 在执行 ci 脚本前,主动生成的一个新的叫做 runnerpod 。由这个 runner pod 来做实际的执行工作。我们在下面将会看看具体的 pod 变化情况。

安装

配置好以后,我们通过下面命令安装:

helm upgrade -if runner-value.yml --namespace gitlab gitlab-runner gitlab/gitlab-runner

这里用到了这些参数

  • upgrade 表示升级,
  • -i 表示如果没有就直接安装,所以在没有安装指定包时, installupgrade -i 的效果是一样的,
  • -f 表示使用制定的 value文件 ,也就是我们刚才下载下来并修改过的 runner-value.yml
  • --namespace 指定要将包安装到 gitlab 这个命名空间下,
  • 然后是安装的名称,以后操作这个包就需要使用这个名称,
  • 最后是远程包的名称。
install result

然后我们来看看现在 pod 的情况

pod status

我们看到已经 running 了。

我们在看看 gitlab 后台是什么样子:

gitlab

已经出现了一条记录了,说明安装成功。

测试

我们使用之前提交的那个测试项目来实验一下。 gitlab-ci 的语法我就不赘述了。直接上代码:

test:
  script:
    - echo hello gitlab

然后保存到测试项目的根目录下,保存为 .gitlab-ci.yml 文件。

test repo

提交项目。

我们来看看项目的 pipline 现在是什么情况:

pipline

我们看到正在跑,稍微等一下,就可以看到已经成功了。

下面那个失败的 Auto DevOps ,不用管它,这是 gitlab 默认自带的一个迷你ci,把它关掉就好。

成功后,我们点击列表里面绿色小勾,点进去就能看到实际的执行情况。

gou
command

我们来看看在执行脚本的过程中, gitlab 命名空间下面的变化。

runner

可以看到, gitlab-ruuner 启动了一个新的 runner 来执行我们的脚本,执行完毕后再删除这个 pod

总结

到这里, gitlab-runner 就安装成功了。这里面还有一些知识点,比如:

  • gitlab-runnertype 都是什么意思,我们可以我们刚才安装的 gitlab-runnertypeshare
  • gitlab-runner 现在没有缓存。

这些问题,我们之后再来研究。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容