notes

为已有 Gitlab 添加 runner

安装 gitlab-runner 命令

先去官网下载 gitlab-runner 的可执行文件,镜像应该也可以。

如果是注册的 runner 的 executor 是 docker, docker+machine 或 kubernetes 时,还需要下载名为 gitlab-runner-helper 的镜像,用来处理 git,artifacts,cache 等操作。

下载后的 gitlab-runner 二进制文件复制到 /usr/local/bin 目录,如果名字叫 gitlab-runner-xxx 的话需要改名为 gitlab-runner,再加上可执行权限 chmod +x gitlab-runner

启动 gitlab-runner 服务

首先就是要执行 gitlab-runner install,这个命令需要传入一个用户参数,所以我们要先创建一个用户

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

然后安装并启动 gitlab-runner 服务

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

注册 runner 到 gitlab

启动后就可以注册一个 runner 到你的 gitlab 上了

gitlab-runner register

register 命令是交互式的,里面要填的信息可以在 gitlab 上的对应项目的 setting -> CI/CD -> runners 里面找。

如果要创建一个组的 runner,只要填的 token 是组的 token 就可以了。组的 token 只有 owner 权限的人才能看到。

runner 创建完就可以在 /etc/gitlab-runner/config.toml 配置文件中看到。

至此,gitlab 上只要新增一个 .gitlab-ci.yml 文件就可以自动触发 ci 了。

如果使用的 docker 类型的 ci,而且 ci 中需要执行 docker 命令,就需要修改 config.toml 配置文件的 volumes 一行

...
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
...

其实也可以直接编辑 /etc/gitlab-runner/config.toml 文件,然后 gitlab-runner restart 就可以了。