ret2boot 是回归终端的交互式安装器。它以单一二进制文件发布,可以在一台 Linux 服务器上完成系统预检、Kubernetes 初始化、Helm 配置、网关部署、平台部署和安装状态记录。
ret2boot 当前可以用于生产环境部署。首次部署、单服务器单节点办赛、练习场快速搭建和希望降低 Kubernetes 运维成本的场景,可以使用 ret2boot 一键启动。已有 Kubernetes 集群、多节点调度方案或需要完全掌控 Helm values 的场景,可以继续使用 集群内统一部署。
ret2boot 已经可以用于生产环境部署。它提供一个单一二进制文件,让你在一台干净的 Linux 服务器上通过交互式流程完成回归终端部署。首次部署、单服务器办赛和希望降低 Kubernetes 运维成本的场景,可以尝试使用 ret2boot。 不过也请注意,在网络环境不佳、与 GitHub 和 Docker 源通信存在较大问题的情况下本工具可能会出现问题。如果你对系统运维并不熟悉,不知道网络错误导致安装进程中断后如何清理,还是推荐使用手动操作部署方案。
准备服务器
准备一台干净的 Linux 服务器。推荐使用 Debian 或 Debian 系发行版,并按照 环境准备 中的资源估算方式确认 CPU、内存和磁盘空间。
服务器需要满足以下条件:
| 项目 | 要求 |
|---|---|
| 系统 | Linux,推荐 Debian Stable 或 Ubuntu LTS。 |
| 架构 | 当前 release 提供 x86_64-unknown-linux-musl 预编译包。 |
| 权限 | 当前用户可以使用 sudo,或直接使用 root 用户。 |
| 网络 | 服务器可以访问 GitHub、容器镜像源和比赛域名使用的公网入口。 |
| 端口 | 公网入口通常需要 80/443,题目服务需要按部署方案开放对应端口。 |
| 磁盘 | 单场比赛建议 100 GiB SSD 起步,长期练习场建议 1 TiB 起步。 |
下载 ret2boot
进入 ret2boot GitHub Release 页面,下载最新版本的 Linux 二进制压缩包和对应的 .sha256 校验文件。当前发布包命名格式为:
ret2boot-<version>-x86_64-unknown-linux-musl.tar.gz
ret2boot-<version>-x86_64-unknown-linux-musl.tar.gz.sha256也可以在服务器上直接下载最新版本:
R2B_VERSION="$(curl -fsSL https://api.github.com/repos/ret2shell/ret2boot/releases/latest | sed -n 's/.*"tag_name": "\(.*\)".*/\1/p' | head -n1)"
R2B_TARGET="x86_64-unknown-linux-musl"
curl -fLO "https://github.com/ret2shell/ret2boot/releases/download/${R2B_VERSION}/ret2boot-${R2B_VERSION}-${R2B_TARGET}.tar.gz"
curl -fLO "https://github.com/ret2shell/ret2boot/releases/download/${R2B_VERSION}/ret2boot-${R2B_VERSION}-${R2B_TARGET}.tar.gz.sha256"
sha256sum -c "ret2boot-${R2B_VERSION}-${R2B_TARGET}.tar.gz.sha256"
tar -xzf "ret2boot-${R2B_VERSION}-${R2B_TARGET}.tar.gz"安装到系统路径
把解压得到的 ret2boot 二进制文件放入 /usr/local/bin,再赋予执行权限:
sudo cp ret2boot /usr/local/bin/ret2boot
sudo chmod +x /usr/local/bin/ret2boot
ret2boot --version/usr/local/bin 通常已经在系统 PATH 中。命令无法直接找到时,可以重新登录 shell,或使用完整路径 /usr/local/bin/ret2boot。
执行安装
执行 ret2boot,然后根据提示选择下一步:
sudo ret2bootret2boot 会依次完成语言选择、权限确认、系统预检、部署问卷、安装计划确认和实际安装。安装流程会记录当前状态,默认配置文件位于:
~/.config/ret2boot/config.toml安装过程中断后,再次执行 sudo ret2boot 可以继续处理未完成步骤。执行前建议准备好以下信息:
| 信息 | 用途 |
|---|---|
| 平台访问域名 | 用于生成平台外部访问地址、TLS 和 CORS 配置。 |
| 入口方式 | 用于选择网关、证书和 80/443 暴露方式。 |
| 服务器资源 | 用于确认 Kubernetes、平台 PVC 和题目容器资源规划。 |
| 题目容器需求 | 用于估算高峰 challenge pods 数量、CPU、内存和磁盘余量。 |
| 外部组件选择 | 用于决定 PostgreSQL、Valkey、NATS、registry、VictoriaLogs 使用内置服务或外部服务。 |
安装后检查
安装完成后,先检查平台服务和 Kubernetes 状态:
kubectl get nodes -o wide
kubectl get pods -n ret2shell-platform
kubectl get pods -n ret2shell-challenge再访问配置的域名,进入回归终端 Web 页面完成平台初始化和比赛配置。域名、证书、反向代理、registry 和题目入口异常时,可以回到 ret2boot 继续同步配置:
sudo ret2boot sync后续维护
ret2boot 提供常用生命周期命令:
| 命令 | 用途 |
|---|---|
sudo ret2boot install | 执行新安装流程。 |
sudo ret2boot update | 更新已有部署。 |
sudo ret2boot sync | 同步配置与当前集群状态。 |
sudo ret2boot uninstall | 移除由 ret2boot 管理的组件。 |
日常巡检、日志查看、题目容器定位和数据库调试可以继续参考 日常维护手册。需要手工调整 Helm values、扩容 PVC 或在多节点集群中精细控制调度时,可以参考 集群内统一部署 中的维护流程。
