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
- 默认
autodetectprofile 解析,并按 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 与 rauto-manager 的职责不同:
如果你当前主要关注的是:
- 单台运维工作站的自动化执行
- 本地模板、录制、回放和事务能力
- 为 AI 或上层平台提供稳定的执行底座
那就优先使用 rauto。