使用二进制部署 Gitea Runner 指南(实战二)

📝 前言

回顾一下,在 DevOps 专题的前几期,我们分别介绍了以下内容:

如果想要通过 Gitea 来完成 DevOps 的 CI/CD,那还需要安装一个 Runner 组件,这一期我们就再来介绍 Gitea Runner。

🧭 背景介绍

Gitea 是一个开源、轻量级的 Git 托管服务,支持自建 CI/CD 工作流。

Gitea Runner 是 Gitea Actions 的执行器,相当于 GitHub Runner,可以执行在项目根目录 .gitea/workflows 中定义的流程。

虽然 Gitea 官方提供了 Docker 和 Docker Rootless 安装方法,但使用二进制部署更适合资源受限或个人自己使用的用户,不仅更节省资源而且构建速度更快。

如果是团队使用,那建议还是用 Docker 更方便些。

📋 前提条件

在开始之前,请确保已准备好以下条件:

🚀 详细步骤

1️⃣ 下载 Gitea Runner 二进制文件

访问 Gitea Runner 的 发布页面 选择与你系统匹配的版本。

1
2
3
4
# 这里以 Linux amd64 为例
mkdir -p /opt/gitea && cd /opt/gitea
curl -L -o act_runner https://dl.gitea.com/act_runner/0.2.12/act_runner-0.2.12-linux-amd64
chmod a+x act_runner

2️⃣ 配置 Gitea Runner

使用以下命令生成并修改配置文件:

1
2
3
4
5
6
7
8
9
10
11
# 生成配置文件
./act_runner generate-config > config.yaml

# 编辑配置文件
vim config.yaml

# 添加 host 标签,因为默认配置构建都是在容器内的,我们需要的是直接在主机构建
runner:
labels:
- "host" # 用于本地构建,而不是容器内构建
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"

3️⃣ 注册 Gitea Runner

登录你的 Gitea 管理后台,进入:

设置 → Actions → Runners → 创建 Runner → 复制 Token,执行以下命令注册:

1
2
3
4
5
6
./act_runner register \
--no-interactive \
--instance <instance_url> \
--token <registration_token> \
--name <runner_name> \
--labels host

参数说明:

  • instance:部署的 Gitea 访问地址,比如:http://192.168.10.1:3000
  • token:就按照上面步骤复制的 Token
  • name:名称随便取,比如:master、node-1、node-2
  • labels:这里标签其实不填也没关系,在运行时会根据上面配置文件的内容自动进行替换。

当看到以下命令输出时,则表示已注册成功:

此时,进入管理后台,就可以看到我们刚注册的 Runner 了,但是其状态还是离线的,这就需要我们进行下一步启动 Runner。

4️⃣ 创建 systemd 服务并启动

我们将 Gitea Runner 作为 systemd 服务运行以实现开机自启和进程守护。

编辑脚本文件:

vim /etc/systemd/system/gitea-runner.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Gitea Actions Runner
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/act_runner daemon --config config.yaml
Restart=always
RestartSec=5
User=root
Environment=GITEA_RUNNER_WORKDIR=/opt/gitea/_work

[Install]
WantedBy=multi-user.target

保存后,执行以下命令启动:

1
2
sudo systemctl daemon-reexec
sudo systemctl enable --now gitea-runner

现在再回到管理后台,就可以看到 runner 的状态从离线变为空闲了。

✅ 总结

使用二进制部署 Gitea Runner 是一种轻量、稳定、适用于各种 Linux 环境的方式。

通过 systemd 管理 Runner 可提升可用性,并避免容器或额外依赖的复杂性。

🔜 下期预告

部署完成只是第一步!

限于篇幅,下一篇我们将介绍如何使用 Gitea Runner 实现自动化构建与部署流程,轻松打造你的私有 DevOps 流水线,敬请期待:《Gitea Actions 工作流实战指南》!