Git

自用 VPS 配置 github action self-hosted runner

JACIN4 分钟阅读
AI 摘要

这份配置记录聚焦在自用 VPS 上部署 GitHub Actions self-hosted runner,并按“中心安装包 + 项目独立运行目录”的方式管理多个仓库。目录设计把 runner 压缩包统一放在 `/root/github-runners/package/actions-runner.tar.gz`,只需从 GitHub releases 下载一次,后续项目如 `go-react-prod`、`new-api` 都从该位置解压,避免重复下载和混用运行文件。首个项目配置时,需要创建专属目录、解压安装包,并在以 root 用户运行的 VPS 上先设置 `RUNNER_ALLOW_RUNASROOT=1`,再执行 `config.sh` 绑定仓库;如果 GitHub 页面生成的 token 过期,则要重新复制新的 token。运行方式上不建议直接执行 `./run.sh`,而是通过 `./svc.sh install root`、`./svc.sh start` 和 `./svc.sh status` 将 runner 安装为 root 用户下的系统服务,保证后台持续运行。新增仓库时重复建目录、复用压缩包、使用对应仓库 URL 和新 token 配置,再安装并启动服务即可。最后在 GitHub Actions workflow 中指定 `runs-on: self-hosted`,任务就能调度到这台 VPS,适合希望用个人服务器承接构建或部署流程的开发者。

结构说明#

设计如下的结构:

text
/root/github-runners/           <-- 总目录
├── package/                    <-- 仓库:只存放下载的压缩包
│   └── actions-runner.tar.gz

├── go-react-prod/              <-- 车间1:你的第一个项目
│   ├── config.sh
│   └── ... (运行服务)

└── new-api/                    <-- 车间2:你未来的第二个项目
    ├── config.sh
    └── ... (运行服务)

中心包管理#

建立中心

text
# 1. 创建目录结构
mkdir -p /root/github-runners/package

# 2. 进入仓库目录
cd /root/github-runners/package

# 3. 下载安装包 (这是唯一一次下载)
curl -o actions-runner.tar.gz -L https://github.com/actions/runner/releases/download/v2.330.0/actions-runner-linux-x64-2.330.0.tar.gz

# 4. 确认一下文件在不在
ls -lh actions-runner.tar.gz

项目配置#

建设“一号车间” (go-react-prod)

text
# 1. 创建项目专属文件夹
mkdir -p /root/github-runners/go-react-prod

# 2. 进入这个文件夹
cd /root/github-runners/go-react-prod

# 3. 解压安装包 (直接从隔壁 package 目录解压,不需要重新下载)
tar xzf /root/github-runners/package/actions-runner.tar.gz

Root,必须加环境变量才能配置。

text
# 1. 开启 Root 允许模式 (必须!)
export RUNNER_ALLOW_RUNASROOT=1
# 2. 运行配置脚本
# ⚠️ 注意:如果刚才那个 Token 过期了,请去 GitHub 网页重新复制一个新的
./config.sh --url

安装系统服务 (让它永久后台运行)

不要跑 ./run.sh,直接装服务。

text
# 1. 安装服务 (它是 root 用户,所以是 user=root)
./svc.sh install root

# 2. 启动服务
./svc.sh start

# 3. 检查状态
./svc.sh status

当你下次想加 new-api 项目时,只需要重复第二步和第三步即可

text
# 1. 建目录
mkdir -p /root/github-runners/new-api && cd /root/github-runners/new-api

# 2. 解压 (复用包)
tar xzf /root/github-runners/package/actions-runner.tar.gz

# 3. 配置 (用新 Token)
export RUNNER_ALLOW_RUNASROOT=1
./config.sh --url https://github.com/jacinli/new-api --token <新TOKEN>

# 4. 启动
./svc.sh install root
./svc.sh start

这样就可以了

text
    runs-on: self-hosted

评论

还没有评论,来发第一个吧