规划表驱动 · 15 阶段流水线 · CLI + Web 控制台

把 SmartX SMTX 集群交付 变成可重复的流水线

CXVoyager 是一个 SMTX 环境交付引擎:结合规划表、CloudTower API 与 SmartX 管理接口,自动完成规划解析、集群初始化、配置、服务部署与验证流程。

dry-run
先预演再执行
离线可用
可打包依赖
可视化
FastAPI + SPA

为交付而生的部署引擎

围绕“少人工干预、可验证、可复用”设计,适合在交付现场落地。

规划表驱动

在项目根目录放置规划表,解析后构建结构化 PlanModel,并完成规则验证与网络预检。

  • CIDR/冲突/绑定模式校验
  • 端口连通性探测(可配置)
  • 预检结果写入上下文,后续阶段复用

15 阶段工作流

从初始化到清理归档,全流程拆分为阶段,既能一键跑全量,也能按需挑阶段执行。

  • Prepare → Init → Config → Deploy
  • 健康检查与报告产出
  • 部署结果集中沉淀在 ctx.extra

联动外部系统

对接 SmartX 管理接口与 CloudTower API,覆盖集群部署、应用包上传、以及平台侧配置。

  • chunkedUploads 分片上传
  • 自动登录获取 token
  • 可通过配置/环境变量覆写

Web 控制台

FastAPI + SPA,支持提交任务、查询状态、终止任务与查看阶段能力元数据。

  • `/docs` 暴露 OpenAPI
  • 任务记录持久化到 `logs/web_tasks.json`
  • 前端轮询任务与阶段信息

可控与可预演

用 dry-run 先看将要发生什么,再决定是否触发真实 API 操作;支持严格校验模式。

  • `--dry-run`:只输出参数与阶段决策
  • `--strict-validation`:把 warning 升级为失败
  • `--debug`:提升日志级别便于调试

离线环境友好

无外网时可准备离线依赖包,交付现场也能稳定运行,不依赖在线源。

  • 生成离线安装包
  • 交互菜单支持离线依赖安装
  • 按阶段输出日志与工件

15 阶段:从规划到验收

每一步都可独立执行与复盘,适合交付现场“按需推进、可控回滚”。

01PREPARE_PLAN_SHEET解析规划表、验证、网络预检
02INIT_CLUSTER主机扫描、构建载荷、触发部署
03CONFIG_CLUSTER配置 VIP/DNS/NTP/密码/镜像
04DEPLOY_CLOUDTOWER上传 ISO、创建 VM、启动安装
05ATTACH_CLUSTER集群接入 CloudTower
06CLOUDTOWER_CONFIGNTP/DNS/策略/镜像等配置
07CHECK_CLUSTER_HEALTHY生成健康报告与建议
08DEPLOY_OBS上传 Observability 包
09DEPLOY_BAK上传 Backup 包
10DEPLOY_ER上传 ER 包
11DEPLOY_SFS上传 SFS 包
12DEPLOY_SKS上传 SKS 包
13CREATE_TEST_VMS创建测试 VM 并验证连通性
14PERF_RELIABILITY性能与可靠性验证
15CLEANUP归档日志、清理缓存与收尾

快速开始

先跑一次 dry-run 预演流程,再决定是否触发真实部署。

一键启动(推荐)

根据操作系统直接运行启动脚本。

Windows
powershell -ExecutionPolicy Bypass -File .\\start-windows.ps1
macOS
./start-macos.command
Linux
chmod +x start-linux.sh && ./start-linux.sh
SMTXOS
chmod +x start-smtxos.sh && ./start-smtxos.sh

提示:规划表需放在项目根目录,文件名包含“SmartX超融合 / 规划设计表 / ELF环境”等关键词。

CLI 常用命令

进入主菜单、按阶段执行、预演与调试选项。

主菜单
python -m cxvoyager
预演
python -m cxvoyager run --stages prepare,init_cluster --dry-run
部署
python -m cxvoyager deploy
列阶段
python -m cxvoyager stages-list
Web 控制台

本地启动后访问 `http://localhost:8000/`,并可在 `/docs` 查看 OpenAPI。

uvicorn cxvoyager.interfaces.web.web_server:app --reload --port 8000

把交付流程“产品化”

让每次交付都能复用同一套阶段、校验与报告产出。

去 GitHub 获取

常见问题

选取最常见的落地问题,便于现场快速对齐。

这个项目解决的核心问题是什么?
把“规划表 + 多系统接口 + 多阶段交付”串成一个可复用的执行引擎,让交付团队用更少人工干预完成集群初始化、配置、CloudTower 部署、应用包上传与验证。
是否支持先预演(不触发真实部署)?
支持。使用 `--dry-run` 可以模拟执行并输出参数与阶段决策;适合在现场先确认规划表与流程选择。
没有外网能用吗?
可以。项目提供生成离线依赖包的脚本,并在交互菜单中支持离线依赖安装。
有没有 Web 界面?
有。FastAPI + SPA 提供任务提交、状态查询、终止任务等能力,任务记录会持久化到 `logs/web_tasks.json`。
许可证是什么?
本项目依据 GNU GPLv3 授权发布。