跳转到内容

设备 Profile

设备 profile 是 rauto 最重要的抽象之一。它决定了目标平台的 prompt、模式和命令执行行为。

设备 profile 告诉执行引擎如何与目标类型交互。

它会影响:

  • prompt 识别
  • mode 切换
  • 执行状态处理
  • Linux shell 退出码解析
  • 原始命令执行与高层工作流之间的兼容性

这也是为什么同一套 CLI 可以同时驱动:

  • Cisco、Huawei、Juniper、Fortinet 等网络设备
  • Linux 服务器和跳板机

当前内置 profile 来自 rneter

根据 README 与当前源码可知,当前目录包括:

  • cisco
  • huawei
  • h3c
  • hillstone
  • juniper
  • array
  • arista
  • fortinet
  • paloalto
  • topsec
  • venustech
  • dptech
  • chaitin
  • qianxin
  • maipu
  • checkpoint
  • linux

查看命令:

Terminal window
rauto device list

rauto 现在默认使用 linux

这在以下场景很方便:

  • 第一目标就是 Linux 主机
  • 先从工作站或跳板机开始验证
  • 需要立刻做 shell 风格执行

但在以下场景容易出问题:

  • 你连接的是网络设备,却忘记显式指定 --device-profile
  • 设备需要特定 prompt / mode 模型才能稳定执行

对于网络设备,建议尽早显式设置 --device-profile

Terminal window
rauto exec "show version" \
--host 192.168.1.1 \
--username admin \
--password secret \
--device-profile cisco

常用命令:

Terminal window
rauto device show cisco
rauto device show linux
rauto device copy-builtin cisco my_cisco
rauto device delete-custom my_cisco

根据当前 CLI 源码,profile 管理支持:

  • list
  • show
  • delete-custom
  • copy-builtin
  • diagnose

当前 CLI 支持:

Terminal window
rauto device diagnose cisco
rauto device diagnose cisco --json

这在以下场景特别重要:

  • prompt 状态切换不稳定
  • 某个自定义 profile 在某个 mode 下执行异常
  • 需要给 profile 评审或排障输出结构化结果

Web 控制台也提供 profile / prompt 的可视化诊断能力。

自定义 profile 不再是散落在本地目录中的 TOML 文件,而是保存在 SQLite 中,由 CLI 和 Web 共用。

推荐流程:

  1. 查看内置 profile
  2. 复制成自定义 profile
  3. 调整成适合自己平台或 prompt 的版本
  4. 用诊断和连接测试验证
  5. 在 saved connection 中统一使用该 profile 名称

示例:

Terminal window
rauto device copy-builtin cisco my_cisco
rauto exec "show ver" \
--host 192.168.1.1 \
--username admin \
--password secret \
--device-profile my_cisco

Linux profile 还有一个额外维度:shell 退出码解析策略。

当前源码提供:

  • posix
  • fish

README 还提到 posix 同时兼容 bash 别名。

当 Linux 目标在默认退出码解析下行为不符合预期时,可以显式设置 --linux-shell-flavor

profile 选择会影响这些命令:

  • exec
  • template
  • flow
  • tx
  • tx-workflow
  • orchestrate

原因:

  • exec --mode 依赖 profile 中定义的模式名称,例如 EnableConfig
  • flow 某一步如果未显式写 mode,会回退到所选 profile 的第一个 mode
  • 事务、工作流、编排依赖稳定的 mode 行为,才能让回滚和补偿逻辑可靠

在团队环境里,不要让每个运维人员自己随意定义 profile 名称。

推荐方式:

  • 能用内置 profile 就用内置 profile
  • 自定义 profile 保持少量、可治理
  • 在 saved connection 与导入模板中统一使用这些 profile 名称

在以下场景引入新 profile 前,建议先做验证:

  • 事务块
  • 工作流
  • 编排

验证方式:

  • rauto connection test
  • rauto device diagnose
  • 一两条 exec 命令验证目标 mode

虽然 rauto 同时支持两类目标,但企业文档里通常应分别制定运维规范。

  • Linux 更关注 shell 语义、文件传输和服务重启
  • 网络设备更关注 prompt 状态、配置模式和回滚可靠性