feat(gitea): 添加 runner 恢复功能文档和快速恢复命令
This commit is contained in:
@@ -224,6 +224,45 @@ EOF
|
||||
# gitea-create-runner all "wibnIxvgeyYj3D7d53VTQvNxv0UVqArBwAtPFBWD"
|
||||
```
|
||||
|
||||
## 🔄 恢复离线 Runner
|
||||
|
||||
**场景**:Runner 在 Gitea 服务器上被删除,但本地配置文件仍在。需要重新注册并上线。
|
||||
|
||||
**快速恢复命令**(针对 runner-Mac-mini4-host):
|
||||
|
||||
```bash
|
||||
cd ~/.config/gitea/runners/runner-Mac-mini4-host
|
||||
|
||||
# 停止旧进程
|
||||
if [ -f pid ]; then kill $(cat pid) 2>/dev/null || true; fi
|
||||
|
||||
# 加载配置并重新注册
|
||||
source ~/.config/gitea/config.env
|
||||
|
||||
# 获取令牌(需要 jq)
|
||||
token=$(curl -s -H "Authorization: token $GITEA_TOKEN" \
|
||||
"${GITEA_URL}/api/v1/admin/runners/registration-token" | jq -r '.token')
|
||||
|
||||
# 生成标签
|
||||
OS=$(uname -s); ARCH=$(uname -m)
|
||||
case "$OS" in Darwin) os="macOS";; Linux) os="ubuntu";; *) os="unknown";; esac
|
||||
case "$ARCH" in arm64|aarch64) arch="ARM64";; x86_64) arch="x64";; *) arch="unknown";; esac
|
||||
labels="self-hosted:host,${os}:host,${arch}:host,$(echo "${OS}-${ARCH}" | tr '[:upper:]' '[:lower:]'):host"
|
||||
|
||||
# 重新注册并启动
|
||||
act_runner register --config config.yaml --instance "$GITEA_URL" \
|
||||
--token "$token" --name "runner-Mac-mini4-host" --labels "$labels" --no-interactive
|
||||
|
||||
nohup act_runner daemon --config config.yaml > runner.log 2>&1 &
|
||||
echo $! > pid
|
||||
echo "✅ Runner 恢复完成 (PID: $(cat pid))"
|
||||
```
|
||||
|
||||
**说明**:
|
||||
- 确保 `config.yaml` 中的 `labels:` 配置为空(`labels: []`),注册时会使用命令行参数
|
||||
- 如果全局令牌权限不足,需要获取组织令牌(参考 runner-management.md)
|
||||
- 恢复后 runner 会获得新的 ID,但名称和 labels 保持不变
|
||||
|
||||
### 方法三:完整脚本
|
||||
如果你需要更多自定义选项,可以使用下面的完整脚本:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user