跳转到内容

命令选型与 CLI

需求推荐命令说明
立刻执行一条命令rauto exec最适合临时排障和快速验证
渲染已保存模板并执行rauto template适合把命令逻辑做成可复用模板
驱动交互式 prompt/responserauto flow适合向导式 CLI 操作
通过 SFTP 上传本地文件rauto upload要求目标主机支持 sftp 子系统
执行一个带回滚的事务块rauto tx适合单目标、单事务单元
按 JSON 执行事务工作流rauto tx-workflow适合拆成多个 block 的变更流程
执行多设备计划rauto orchestrate适合多台设备串行/并发编排
打开本地控制台rauto web适合自管理和可视化执行
作为托管执行节点启动rauto agent适合接入 rauto-manager

大多数执行类命令都会复用同一组全局连接参数:

参数说明
--host设备主机名或 IP
--usernameSSH 用户名
--passwordSSH 密码
--enable-password特权模式密码
--ssh-portSSH 端口
--ssh-securitySSH 兼容档位:securebalancedlegacy-compatible
--linux-shell-flavorLinux shell 退出码解析方式:posixfish
--device-profile目标设备 profile,默认是 linux
--connection直接引用已保存连接配置
--save-connection成功连接后保存当前有效配置
--save-password--save-connection 搭配,保存密码字段
Terminal window
rauto exec "show ip int br" \
--host 192.168.1.1 \
--username admin \
--password secret \
--device-profile cisco

如果需要在指定模式执行:

Terminal window
rauto exec "show bgp neighbor" --connection core-sw-01 --mode Enable
Terminal window
rauto template configure_vlan.j2 \
--vars ./vars.json \
--connection core-sw-01

只看渲染结果,不实际执行:

Terminal window
rauto template configure_vlan.j2 --vars ./vars.json --dry-run
Terminal window
rauto flow \
--template cisco_like_copy \
--vars-json '{"command":"copy scp: flash:/new.bin","server_addr":"192.168.1.50","remote_path":"/images/new.bin","transfer_username":"backup","transfer_password":"secret"}' \
--connection core-01
Terminal window
rauto upload \
--local-path ./daemon.conf \
--remote-path /tmp/daemon.conf \
--connection linux-jump-01

执行类命令普遍支持录制:

Terminal window
rauto exec "show version" \
--connection core-sw-01 \
--record-file ./recording.jsonl \
--record-level key-events-only

回放时可以先列出录制事件:

Terminal window
rauto replay ./recording.jsonl --list

也可以回放某条命令:

Terminal window
rauto replay ./recording.jsonl --command "show version" --mode Enable

先直接传 --host--username--password 即可。

改用已保存连接:

Terminal window
rauto connection add edge-01 \
--host 192.168.1.11 \
--username admin \
--device-profile huawei

之后统一使用:

Terminal window
rauto exec "display version" --connection edge-01

配合 inventory grouptx-workfloworchestrate 使用,会比纯手写连接参数更稳定。

当前 CLI 源码定义的管理面要比前面的快速选型表更大。

根据当前源码,支持:

  • list
  • show <name>
  • delete-custom <name>
  • copy-builtin <source> <name> [--overwrite]
  • diagnose <name> [--json]

根据当前源码,支持:

  • test
  • list
  • show <name>
  • delete <name>
  • add <name>
  • import <file> [--json]

当前 inventory 操作包括:

  • group list [--json]
  • group show <name> [--json]
  • group upsert <name> [--file <path> | --content <json>]
  • group delete <name>
  • resolve-vars [--host <saved-connection>] [--group <name>] [--vars-file <path>] [--vars-json <json>] [--json]

当前支持:

  • list <connection-name> [--limit <n>] [--json]
  • show <connection-name> <id> [--json]
  • delete <connection-name> <id>

当前支持:

  • list
  • add <pattern>
  • delete <pattern>
  • check <command>

当前支持:

  • list
  • show <name>
  • create <name> [--file <path> | --content <template>]
  • update <name> [--file <path> | --content <template>]
  • delete <name>

当前支持:

  • list
  • show <name>
  • create <name> [--file <path> | --content <toml>]
  • update <name> [--file <path> | --content <toml>]
  • delete <name>

当前支持:

  • create [--output <archive>]
  • restore <archive> [--replace]
  • list
  • rauto device list
  • rauto device show <name>
  • rauto templates list
  • rauto flow-template list
  • rauto connection list
  • rauto history list <connection-name>
  • rauto blacklist list
  • rauto backup list

从当前源码和 README 来看,录制并不是附带能力,而是第一等能力。

当前录制 / 回放相关参数包括:

  • exec/template/flow/upload/tx/tx-workflow --record-file <path>
  • exec/template/flow/upload/tx/tx-workflow --record-level <key-events-only|full>
  • replay <record_file> --list
  • replay <record_file> --command <cmd> [--mode <mode>]

当前 README 还指出:

  • Linux shell 场景下,回放的 SessionEvent::CommandOutput 可能包含 exit_code
  • key-events-only 是最小审计级别
  • full 会包含更丰富的 prompt 与状态切换细节

把 CLI 当成命令族,而不是单条命令

Section titled “把 CLI 当成命令族,而不是单条命令”

在企业使用中,更适合把 rauto 理解成一整套命令族,而不是只会跑一条 exec

典型运维路径通常是:

  1. 先用 connection add 规范目标
  2. device showdevice diagnose 验证 profile 行为
  3. templateflow 执行可复用逻辑
  4. tx / tx-workflow / orchestrate 做受控变更下发
  5. historyreplay 和备份做审计与恢复

如果你已经明确要做模板化执行,下一步请看 模板与命令流