快速创建 gitlab shell runner

真没想道有一天, 我居然会创建 gitlab shell runner 。 环境太难管理了

创建 gitlab shell runner

实话实说, gitlab 现在的用户体验太好了。 根本不需要到处去搜文档,直接在 runner 管理界面就可以找到, 还贴心的给你准备了全套, 一键复制粘贴搞定。

https://git.example.com/admin/runners

image-20210918114842331

点击 Show Runner installation instructions 可以看到多种 runner 的配置。

在默认的基础上, 根据实际情况优化一下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Give it permissions to execute
sudo chmod +x /usr/local/bin/gitlab-runner

# Create a GitLab CI user, 如果需要使用非 root 账户就创建该用户
# sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

# Install and run as service
#  /mnt/disk/gitlab-runner 工作目录需要提前建好,否则会报错
#  --user=root 表示运行账户
#  --working-directory 工作目录, 工作目录需要提前创建, 否则启动启动被错 
sudo mkdir -p /mnt/disk/gitlab-runner
sudo gitlab-runner install --user=root --working-directory=/mnt/disk/gitlab-runner

## 先不启动, 配置
# sudo gitlab-runner start

install 之后, 以后可以在 /etc/systemd/system/gitlab-runner.service 找到 servcie 的相关变更配置。

注册 runner

sudo gitlab-runner register --url https://git.example.com/ --registration-token $REGISTRATION_TOKEN

注册之后, 可以在 /etc/gitlab-runner/config.toml 变更相关配置

这里, 设置一下相关并行参数

1
2
3
4
concurrent = 10  ## 同时允许 10 个并行 job
check_interval = 0  ## job 存在检测间隔, 默认为 3s。 小于3的值都使用默认值

# ... other

启动

1
2
systemctl daemon-reload
systemctl restart gitlab-runner

排错

1
2
3
4
5
6
journalctl -xeu gitlab-runner


Sep 18 11:28:20 aisys-dev gitlab-runner[19693]: FATAL: Service run failed                           error=chdir /mnt/disk/gitlab-runner: no such file or directory
Sep 18 11:28:20 aisys-dev systemd[1]: gitlab-runner.service: Main process exited, code=exited, status=1/FAILURE
Sep 18 11:28:20 aisys-dev systemd[1]: gitlab-runner.service: Failed with result 'exit-code'.