开源网络自动化

rauto一个基于 Rust 的网络自动化工具集

它提供 CLI、Svelte Web 和 agent API,用来完成设备自动发现、可复用凭证、多目标执行、配置漂移哈希、TextFSM 解析、事务、编排、会话回放和备份。

执行网格

exec · template · orchestrate
控制平面ready · 7 connections · last task success
campus-access

inventory group hosts=3

edge-prod-01

session records active

task-center

records ready

变更预览

rauto show route --group core --tag prod --textfsm-excel ./routes.xlsxrauto flow --template scp --connection edge-prod-01 --vars-json '{"peer":"edge-prod-02","local_path":"/tmp/rauto-demo.txt","remote_path":"/tmp/rauto-demo.txt"}'

回放流

[info] runtime loaded: 7 saved connections[show] route across core/prod targets[parse] TextFSM rows exported: routes.xlsx[ok] session replay available for last exec record
7saved connections
2inventory groups
8show objects
successlast task status
CLI + Svelte Web + Agent APIShow + TextFSMInventory + 模板回放 + 编排

核心能力

当前 rauto 运行时的能力范围。

CLI 与 Svelte Web 现在覆盖自动发现、四种认证方式、多目标执行、配置拉取与漂移哈希、会话重试、TextFSM、编排、回放、备份和策略防护。

标准执行面

在一个面板内完成 show 对象、批量 show 查询、直接执行、模板执行和命令流程执行,并共享连接、mode 与 TextFSM 上下文。

编排执行面

通过 Tx Block、Tx Workflow 与分阶段 Orchestrate 计划,完成可分批下发、可回滚的执行。

运行时资产工作台

统一管理密码、内联私钥、运行时私钥文件、SSH agent 凭证,以及发现设备、已保存连接、Profile、模板、TextFSM 映射和 Inventory 分组。

安全与运维中心

将显式会话重试、命令黑名单、录制等级、统一 session 回放、备份恢复与任务中心纳入同一条运维闭环。

Web 控制台

面向真实设备操作的集中工作区。

最新 Svelte Web 控制台加入密码登录、设备自动发现、配置拉取与漂移哈希,并与凭证、Profile、设备分组、查询、编排和回放放在同一界面。

  • 让已保存连接与临时连接复用加密的设备认证记录。
  • 在一个目录中搜索和诊断内置与自定义 Profile。
  • 通过设备事实、分组、标签与凭证引用组织已保存连接。
  • 无需切换运行时上下文,即可构建标准、事务和多设备操作。
功能界面
rauto Web 界面截图
rauto Web 控制台 Profile 管理工作区,展示 cisco_ios Profile 详情

AI 原生运维

给 AI Agent 一套操作模型,而不只是一条 Shell 提示词。

rauto 自带的 rauto-usage Skill 让 Codex 与 Claude Code 理解当前命令选型、计划校验、Dry Run、人工确认和会话回放流程。

  1. 01
    安装当前 Skill

    直接从 rauto 仓库安装 rauto-usage,让 Agent 遵循当前 CLI 与 JSON 模型。

  2. 02
    使用已保存身份做检查

    引用已保存凭证、设备、分组、标签、Profile 与 show 对象,不把秘密写进提示词。

  3. 03
    生成并校验计划

    生成包含回滚的完整计划,用当前 rauto 二进制校验,再执行原生 Dry Run。

  4. 04
    确认、执行与回放

    检查范围与回滚行为,明确确认真实变更,再汇总结果并回放已记录的 session。

安装 Skill

npx skills add demohiiiii/rauto --skill rauto-usage

向 AI Agent 提问

使用 $rauto-usage。检查 access 分组,生成带回滚的计划,完成校验与 Dry Run。在我确认前不要执行真实变更。

执行流程

当前执行流程。

与当前 Web 和 CLI 执行面一致的典型操作路径。

  1. 设置目标与运行时上下文

    先选择可复用凭证、已保存连接或 Inventory 分组,再确认设备 Profile、SSH 安全档位和运行时变量。

  2. 选择执行模式

    根据变更风险选择标准执行(show/exec/template/flow)或编排执行(tx block/workflow/orchestrate)。

  3. 带防护执行并记录

    执行前做黑名单校验,按任务设置录制等级,并通过模式感知 Prompt 和结构化任务事件执行。

  4. 复盘、回放与恢复

    通过任务中心和统一 session 记录审计或回放结果;需要迁移或恢复运行状态时使用备份恢复。

操作界面

当前本地运行时布局。

凭证、连接、Inventory、Profile、模板、TextFSM 映射、自定义 show 对象、任务、录制与备份都落在同一个运行时内。

CLI、Svelte Web、TextFSM、回放、黑名单与备份流程共享同一套本地运行时状态。

凭证与已保存连接

复用加密认证记录;已保存连接只维护主机、凭证引用、端口、SSH 安全档位、设备事实和 Profile 上下文。

模板与设备 Profile

用 MiniJinja 渲染命令,用 rneter Profile 描述 Prompt 状态切换和生命周期 Hook,并把内置或自定义 show 对象映射到 NTC TextFSM 解析。

会话录制与回放

把执行细节落成结构化事件,让复盘和排障不再依赖终端滚屏和记忆。

备份与恢复

对 ~/.rauto 运行目录做归档,在需要时恢复连接、模板、Profile 与录制数据;keychain 中的密钥不会被导出进备份。

典型场景

当前运行时里的典型操作流。

用真实命令和返回结果描述当前的执行方式。

批量交换机变更

在多台接入设备上渲染并执行同一类变更,同时保持连接状态和 Prompt 处理的一致性。

命令

rauto orchestrate campus-vlan-orchestration.json --view

返回结果

# orchestration_plan: campus-vlan-rollout
file: campus-vlan-orchestration.json
overview: fail_fast=true rollback_on_stage_failure=true rollback_completed_stages_on_failure=false stages=2 inventory_groups=2

[Stage 1/2] core
strategy=serial fail_fast=false jobs=1
  [Job 1/1] core-job
  strategy=serial fail_fast=true targets=2 action=tx_workflow (workflow_file=./core-vlan-workflow.json)
  target_groups=core
  - core-01
  - core-02

[Stage 2/2] access
strategy=serial fail_fast=false jobs=1
  [Job 1/1] access-job
  strategy=parallel fail_fast=true targets=2 action=tx_block (template=configure_vlan.j2, mode=Config)
  max_parallel=10
  target_groups=access
  - sw-01
  - sw-02

基于模板的防火墙或路由器更新

通过模板和变量文件驱动重复性策略或接口变更,而不是手动逐条敲命令。

命令

rauto template configure_vlan.j2 --vars templates/example_vars.json --dry-run

返回结果

--- Rendered Commands ---
conf t

vlan 10
 name Marketing

vlan 20
 name Engineering

end
-------------------------

维护窗口后的回放复盘

利用录制事件和历史详情重建执行过程,不再依赖终端滚屏和口头回忆。

命令

rauto session list edge-prod-01 --limit 5
rauto session replay /private/tmp/website-demo-exec.jsonl --list

返回结果

# connection: edge-prod-01
- [1777824859401] template: scp mode=User level=full file=sqlite://~/.rauto/rauto.db#history/1777824859401_command_flow
- [1777824843199] touch /tmp/rauto-demo.txt mode=Root level=full file=sqlite://~/.rauto/rauto.db#history/1777824843199_exec
- [1777824800314] uname -a mode=Root level=full file=sqlite://~/.rauto/rauto.db#history/1777824800314_exec
- [1777824795188] template: scp mode=User level=full file=sqlite://~/.rauto/rauto.db#history/1777824795188_command_flow
- [1777367945542] load-and-restart mode=Root level=key-events-only file=sqlite://~/.rauto/rauto.db#history/1777367945542_orchestrate_tx_block

# context: device=<USER>@<HOST>:22 prompt=<PROMPT> fsm_prompt=root
1. mode=root success=true exit_code=0 command=uname -a

从实验室到生产的复用工作流

自动探测设备 Profile,维护自定义 TextFSM 映射和 show 对象,并把同一套操作资产复用到生产变更。

命令

rauto profile autodetect -v --connection edge-prod-01
rauto textfsm mapping list --profile cisco_ios
rauto backup list

返回结果

selected_profile=cisco_ios source=cache confidence=0.97
ranked_candidates:
1. cisco_ios score=0.97
2. cisco_xe score=0.91
3. cisco_nxos score=0.42

profile=cisco_ios
"show version" -> campus_show_version
"show interfaces" -> campus_interfaces
"show ip route" -> campus_route

- ~/.rauto/backups/rauto-backup-1777824868.tar.gz

产品组成

当前运行时包含的组成。

执行、Inventory 驱动编排、资产管理、审计轨迹、本地界面与托管 agent 模式。

交付执行引擎

同一执行引擎支撑 show 对象、批量 show 查询、直接执行、模板执行、命令流程、tx block、tx workflow 与编排计划。

状态与资产存储

设备凭证、已保存连接、Inventory 分组、模板、Prompt Profile、自定义 TextFSM 映射与自定义 show 对象在 CLI 与 Web 间共享复用。

审计与安全平面

录制、统一 session 回放、黑名单、重试控制与任务追踪共同提供执行前防护和执行后可审计能力。

本地与托管控制

可通过 `rauto web` 做本地控制,或通过 `rauto agent` 注册到 `rauto-manager` 进入中心化控制模式。

开源生态

当前生态里的项目分工。

`rauto` 负责执行运行时,`rauto-manager` 负责多个托管 Agent 的中心化控制层。

rauto

基于 Rust 的执行运行时,提供 CLI、Svelte Web、agent API、可复用凭证、批量 show 查询、TextFSM 解析、连接复用、模板、编排、回放、备份和命令防护。

查看 GitHub

rauto-manager

面向多个 `rauto` Agent 的自托管控制平面,支持 HTTP/gRPC Agent、共享设备清单、集中任务下发、工作流/编排设计、实时执行过程、历史和通知。

查看 rauto-manager

常见问题

当前行为说明。

几个和运行时行为、数据处理相关的简短说明。

CLI 和 Web 控制台是什么关系?

它们共享同一套运行数据和执行模型,所以凭证、连接、模板、Profile、TextFSM 映射、录制和备份都会保持一致。

在碰设备之前能先预览命令吗?

可以。Dry Run 流程可以先查看模板渲染结果,在涉及模板和变量文件时尤其关键。

可以自定义设备 Prompt 行为吗?

可以。rauto 支持继承自 rneter 的内置 Profile,也支持自定义 TOML Profile 来描述状态和执行模式。

哪些数据是保存在本地的?

运行时元数据和凭证密文保存在本地 SQLite 中;凭证加密主密钥仍由操作系统 keyring 持有。

仓库与文档。

查看文档、浏览仓库,或者直接查看发布版本。