设备 Profile
设备 profile 是 rauto 最重要的抽象之一。它决定了目标平台的 prompt、模式和命令执行行为。
设备 profile 做什么
Section titled “设备 profile 做什么”设备 profile 告诉执行引擎如何与目标类型交互。
它会影响:
- prompt 识别
- mode 切换
- 执行状态处理
- Linux shell 退出码解析
- 原始命令执行与高层工作流之间的兼容性
这也是为什么同一套 CLI 可以同时驱动:
- Cisco、Huawei、Juniper、Fortinet 等网络设备
- Linux 服务器和跳板机
内置 profile
Section titled “内置 profile”当前内置 profile 来自 rneter。
根据 README 与当前源码可知,当前目录包括:
ciscohuaweih3chillstonejuniperarrayaristafortinetpaloaltotopsecvenustechdptechchaitinqianxinmaipucheckpointlinux
查看命令:
rauto device list默认 profile 行为
Section titled “默认 profile 行为”rauto 现在默认使用 linux。
这在以下场景很方便:
- 第一目标就是 Linux 主机
- 先从工作站或跳板机开始验证
- 需要立刻做 shell 风格执行
但在以下场景容易出问题:
- 你连接的是网络设备,却忘记显式指定
--device-profile - 设备需要特定 prompt / mode 模型才能稳定执行
对于网络设备,建议尽早显式设置 --device-profile。
rauto exec "show version" \ --host 192.168.1.1 \ --username admin \ --password secret \ --device-profile cisco查看与复制 profile
Section titled “查看与复制 profile”常用命令:
rauto device show ciscorauto device show linuxrauto device copy-builtin cisco my_ciscorauto device delete-custom my_cisco根据当前 CLI 源码,profile 管理支持:
listshowdelete-customcopy-builtindiagnose
诊断 profile 质量
Section titled “诊断 profile 质量”当前 CLI 支持:
rauto device diagnose ciscorauto device diagnose cisco --json这在以下场景特别重要:
- prompt 状态切换不稳定
- 某个自定义 profile 在某个 mode 下执行异常
- 需要给 profile 评审或排障输出结构化结果
Web 控制台也提供 profile / prompt 的可视化诊断能力。
自定义 profile 生命周期
Section titled “自定义 profile 生命周期”自定义 profile 不再是散落在本地目录中的 TOML 文件,而是保存在 SQLite 中,由 CLI 和 Web 共用。
推荐流程:
- 查看内置 profile
- 复制成自定义 profile
- 调整成适合自己平台或 prompt 的版本
- 用诊断和连接测试验证
- 在 saved connection 中统一使用该 profile 名称
示例:
rauto device copy-builtin cisco my_ciscorauto exec "show ver" \ --host 192.168.1.1 \ --username admin \ --password secret \ --device-profile my_ciscoLinux shell flavor
Section titled “Linux shell flavor”Linux profile 还有一个额外维度:shell 退出码解析策略。
当前源码提供:
posixfish
README 还提到 posix 同时兼容 bash 别名。
当 Linux 目标在默认退出码解析下行为不符合预期时,可以显式设置 --linux-shell-flavor。
profile 对执行模式的影响
Section titled “profile 对执行模式的影响”profile 选择会影响这些命令:
exectemplateflowtxtx-workfloworchestrate
原因:
exec --mode依赖 profile 中定义的模式名称,例如Enable或Configflow某一步如果未显式写mode,会回退到所选 profile 的第一个 mode- 事务、工作流、编排依赖稳定的 mode 行为,才能让回滚和补偿逻辑可靠
统一 profile 名称
Section titled “统一 profile 名称”在团队环境里,不要让每个运维人员自己随意定义 profile 名称。
推荐方式:
- 能用内置 profile 就用内置 profile
- 自定义 profile 保持少量、可治理
- 在 saved connection 与导入模板中统一使用这些 profile 名称
在大规模执行前先诊断
Section titled “在大规模执行前先诊断”在以下场景引入新 profile 前,建议先做验证:
- 事务块
- 工作流
- 编排
验证方式:
rauto connection testrauto device diagnose- 一两条
exec命令验证目标 mode
把 Linux 与网络设备分开治理
Section titled “把 Linux 与网络设备分开治理”虽然 rauto 同时支持两类目标,但企业文档里通常应分别制定运维规范。
- Linux 更关注 shell 语义、文件传输和服务重启
- 网络设备更关注 prompt 状态、配置模式和回滚可靠性