Gitlab Runner 安装

2023-12-08 Viewed Times

Gitlab Runner 安装的时候从网上查找资料,找了很多也没有找到我自己的情况一键安装的,然后根据官网和GOOGLE自己好不容易摸索出来安装,现分享出来供大家使用。事先声明,本文档只对以下情况负责:

  1. 操作系统为CentOS, 已验证通过,其他不做保证
  2. 系统和Gitlab不在一台机器,但是在同一个网段,可以互通
  3. 系统在中国大陆,所以镜像用的国内镜像

安装GitLab Runner

  1. 添加官方极狐GitLab 仓库:

对于 Debian/Ubuntu:

1
curl -L "https://packages.gitlab.cn/repository/raw/scripts/runner.deb.sh" | sudo bash

对于 RHEL/CentOS:

1
curl -L "https://packages.gitlab.cn/repository/raw/scripts/runner.rpm.sh" | sudo bash
  1. 安装最新版本的极狐GitLab Runner。

对于 Debian/Ubuntu/Mint:

1
sudo apt-get install gitlab-runner

对于 RHEL/CentOS/Fedora:

1
sudo yum install gitlab-runner
  1. 使用 Docker 卷启动 Runner 容器

    3.1 创建 Docker 卷

    1
    docker volume create gitlab-runner-config

    3.2 使用刚创建的卷启动极狐GitLab Runner 容器

    1
    2
    3
    4
    docker run -d --name gitlab-runner --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v gitlab-runner-config:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest

获取Runner注册信息

由于我有多个项目要使用Runner,且基础配置都差不多,所以此处我选用了共享Runner来创建。

  1. 打开Gitlab
  2. 打开需要共享的项目
  3. 在项目中转到设置 > CI/CD
  4. 找到Runners 并展开
  5. 在Shared runners中启用共享按钮
  6. 记下左侧生成的URL和token

注册Runner

由于我要在Docker中允许Runner,所以请先确保安装Docker。

注册步骤:

  1. Docker卷挂载 docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
  2. 输入您的上一步获取到的 URL
  3. 输入您的上一步获取到的令牌(token)。
  4. 输入 Runner 描述。您可以在极狐GitLab UI 中进行变更。
  5. 输入以逗号隔开的与 Runner 有关的标签,您可以后续在极狐GitLab UI 中进行变更。
  6. 为 Runner 输入可选的维护记录。
  7. 提供 Runner 执行器。对于大多数用例来说,输入 docker。
  8. 如果您输入 docker 作为执行器。对于在 .gitlab-ci.yml 中没有定义镜像的项目,系统会要求您使用默认镜像。这里选择了 node:18-alpine

出现以下提示即表示注册成功

1
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

移除锁定并共享给其他项目

  1. 查看当前项目是否锁定(如果按照以上步骤操作则会锁定)

如下图所示,如果有小锁表示已经锁定,锁定的runner只能为当前项目使用,其他项目无法使用

查看是否锁定

  1. 点击编辑按钮(铅笔标记)

  2. 取消锁定

取消复选框的选中状态,然后保存

复选框

  1. 进入到需要共享的项目
  2. 点击共享按钮即可

共享

给项目指定运行的Runner

如果存在多个Runner,我们需要指定的Runner运行我们的代码,例如我们需要在test-runner中执行我们的测试任务,则这时候需要先在runner中指定Tags,不同Tags以英文逗号分隔,例如:

tags

设定完runner后,我们需要编辑项目的.gitlab-ci.yml ,给项目指定runner:

tag

初始化Runner

这时进入Gitlab Runner中查看当前Runner,发现Runner名称前面有一个警告标志,显示:‘New runner, has not connected yet’,代表我们的Runner是一个新的,还没有初始化。

先执行命令"gitlab-runner verify", 然后再执行"Initializing executor providers" 等待初始化执行器即可。

修改配置允许使用本地镜像

Runner在拉取镜像的时候会默认优先拉取公网上的镜像,要加快我们的执行效率,我们可以先在本地配置一个镜像,然后修改Runner配置,让他优先选择本地镜像,如果本地镜像不存在了再拉取公网镜像。

首先进入gitlab-runner的镜像:docker exec -it gitlab-runner /bin/bash

配置文件在:/etc/gitlab-runner/config.toml

修改文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
concurrent = 1    
check_interval = 0
shutdown_timeout = 0

[session_server]
session_timeout = 1800

[[runners]]
name = "gitlab runner"
url = "https://gitlab.com/"
token = "xxxxxxxxxxxxxxxx"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.docker]
tls_verify = false
image = "node:18-alpine"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
pull_policy = "never"

即最后一行的pull_policy改为never。

如果我们对 config.toml 这个配置文件做了修改,则需要重启 Docker 中的 gitlab-runner 来应用修改。

1
docker restart gitlab-runner

执行CI命令,并查看

编辑完.gitlab-ci.yml 文件,然后在CI/CD中点击Run pipeline 即可,可在Job中查看代码执行过程

执行

也可以在运行runner的机器上核查结果

到此我们的runner即配置完毕了。

使用时指定Docker 镜像

  1. 为加快下载速度,首先先下载镜像到本地
    1. 搜寻镜像 docker search node:18-alpine
    2. 拉取镜像 docker pull node:18-alpine
    3. 查看镜像 docker images
  2. .gitlab-ci.yml中指定镜像名称
1
image: node:18-alpine

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !