rauto 概览

rauto 是一个用 Rust 编写的网络自动化工具集,围绕 CLI、Svelte Web 和 Agent API 三个入口,统一提供可复用凭证、连接、show 查询、TextFSM 解析、执行、编排、录制和回放能力。

它解决什么问题

传统网络自动化往往会遇到这些问题:

  • 命令执行分散,临时脚本难以复用
  • 多厂商设备 prompt/mode 差异大
  • 变更缺少事务化与回滚能力
  • 多设备操作缺少统一编排和审计记录
  • 想做 AI 驱动控制时,底层连接与模板能力不够稳定

rauto 的设计目标,是把这些底层能力统一抽象出来,让网络工程师、自动化开发者和 AI Agent 都可以复用同一套执行引擎。

核心组成

CLI

最直接的入口,适合:

  • 临时执行单条命令
  • 带并发上限的多目标 exec、flow、show 与配置拉取
  • 执行 profile 感知的 show 对象并用 TextFSM 解析
  • 跨 saved connection、inventory group 和 label 批量执行 show 查询
  • 渲染模板后下发
  • 执行交互式命令流
  • 做单设备事务块、工作流和多设备编排

Web 控制台

rauto web 启动的是本地自管理控制台,适合:

  • 管理可复用凭证、已保存连接、模板、命令流模板和自定义 show 对象
  • 通过页面执行命令、show 对象、批量 show 查询、事务和编排
  • 管理自定义 TextFSM 模板、profile 命令映射和解析绑定
  • 查看异步任务、录制、回放、黑名单和备份

Agent 模式

rauto agent 用于接入 rauto-manager,成为一个可被中心化控制平面纳管的执行节点,适合:

  • 多机房、多区域的分布式执行
  • manager 侧统一下发任务与观察执行状态
  • 通过 HTTP 或 gRPC 与 manager 通信

主要能力

  • 双层模板体系:命令模板与设备 profile
  • 默认 autodetect profile 解析,并按 host:port 做本地缓存
  • 内置多厂商设备 profile,并支持自定义 profile
  • show 对象会映射成平台命令,并用内置 NTC TextFSM 模板解析
  • 批量 show 查询可以按 saved connection、inventory group 或 label/tag 选择目标
  • 自定义 TextFSM 模板、命令映射和 show 对象保存在 SQLite 中
  • 可复用设备凭证支持加密存储、引用保护与 CSV/Excel 导入
  • 密码、加密内联私钥、运行时私钥文件与 SSH agent 认证
  • 已保存连接通过凭证引用完成认证,并支持导入与分组
  • 跨 IP、CIDR、地址范围、多个端口与有序凭证的 SSH 设备自动发现
  • 带原始和归一化 SHA-256 漂移哈希的 running/startup 配置拉取
  • 显式开启的瞬时会话重试、指数退避上限与 flow 断点续跑
  • Enable,Config、Root|User 这样的有序 mode 候选
  • 已保存连接支持设备型号与软件版本事实,可在 Web 中自动探测并搜索
  • Web 提供统一 Profile 目录、状态机诊断和支持命令流的生命周期 Hook
  • 命令黑名单,防止危险命令误下发
  • 会话录制与回放,支持 JSONL 历史审计
  • tx 事务块,适合单目标有回滚需求的变更
  • tx-workflow,适合多阶段事务工作流
  • orchestrate,适合多设备串行/并发编排
  • upload,适合支持 SFTP 的主机直接上传文件
  • backup,适合备份和恢复 ~/.rauto 运行数据

什么时候使用哪个入口

目标推荐入口说明
快速执行一条命令rauto exec适合临时排障和快速验证
执行 profile 感知巡检rauto show适合解析后的只读状态检查
执行多目标 show 查询rauto show --group适合 inventory 级只读巡检
渲染模板并下发rauto template适合复用命令模板
驱动交互式问答流程rauto flow适合 copy scp:、安装向导等场景
浏览器中管理和执行rauto web适合单机自管和可视化操作
接入中心化控制平面rauto agent适合被 rauto-manager 纳管
做单目标事务回滚rauto tx适合紧凑的事务执行单元
执行工作流 JSONrauto tx-workflow适合分 block 表达事务逻辑
做多设备编排rauto orchestrate适合批量上线和灰度发布

能力边界

rauto 与 rauto-manager 的职责不同:

项目角色更适合
rauto执行引擎和本地操作工具单机执行、本地控制台、Agent 运行时
rauto-manager中心化控制平面多 Agent 管理、共享设备清单、集中下发

如果你当前主要关注的是:

  • 单台运维工作站的自动化执行
  • 本地模板、录制、回放和事务能力
  • 为 AI 或上层平台提供稳定的执行底座

那就优先使用 rauto。

下一步建议先阅读快速开始、设备自动发现、配置拉取与漂移哈希和命令选型与 CLI。