运维对象在变多、变异构,自动化却常停在"一个场景一套工具"的状态——巡检一套、补丁一套、网络一套,跨系统流程靠人工拼接。真正值得讨论的不是"平台还是工具",而是执行这件事被抽象到了哪一层。
一、第一代:脚本集合与它的四个失效点
脚本能完成单台机器上的确定性动作,规模一旦扩大会露出四个问题。
通道不统一。 SSH 能覆盖 Linux 服务器,网络设备要走 Telnet 与 SNMP,数据库要走 SQL 连接,容器平台要走 API。工具只擅长一类通道时,剩下的对象要么另配工具,要么放弃自动化。
对象靠手工填。 执行目标来自表格或记忆,而不是实时配置数据。配置变更后脚本仍指向旧实例,属于"执行了但执行错地方"。
凭据与权限粗放。 凭据硬编码或共享账号,权限依赖主机账号,审计粒度粗到只能看到"某台机器上跑过一个脚本"。
没有事前与事后。 执行前的审批、执行中的高危拦截、执行后的追溯,多数脚本三者皆无。在等保核查与行业审计场景下,执行记录缺失是硬伤。
对应的最低治理要求是七项:统一版本库、参数校验、结构化日志、退出码规范、凭据托管、执行前预演、幂等可重入。这些能降低单点风险,但不解决跨域编排与批量回退。
二、第二代:任务调度层解决了"跑得多"
任务调度在脚本之上增加了编排、定时触发、批量分发与执行记录,把多个原子操作串成状态机,支持周期执行、并发窗口、失败重试与结果采集。
它的边界同样清楚:通常面向单一技术域,服务器、数据库、网络设备、容器之间的联动能力弱;权限模型偏粗,高危命令拦截、多级审批与变更窗口控制不足;与配置数据弱关联,任务对象常靠手工勾选,难以校验业务拓扑与影响面;异常回滚能力弱,批次失败后的回退往往依赖脚本自身实现。
一句话概括:任务层解决"跑得多",不解决"对象对、权限对、变更可审计、失败可回退"。当任务对象跨域、变更进入生产审批链,就需要再往上加一层。
三、第三代:通道抽象、配置数据层与策略管控
第三代由三块组成,缺一块都会在规模化时出问题。
配置数据层负责资产、关系、状态、凭据与变更记录的统一建模。执行对象从"手工填地址"变成"从资产关系中选择",执行前可校验对象范围与业务拓扑,执行完成后把变更结果回写。这一步把"执行错对象"从经验问题变成数据问题。
执行通道抽象屏蔽操作系统、数据库、网络设备、容器与无代理之间的差异,对外统一任务模型、结果模型、超时与重试语义,并提供执行器隔离与并发控制。常见的通道有七类:主机代理、无代理、SQL、网络设备、容器、API 网关、页面流程。通道层的价值在于让跨技术域的任务复用同一套状态机与审计模型。
策略与权限要做到最小授权到"对象 + 操作"的粒度,支持高危命令的事前匹配拦截(递归删除、磁盘格式化、权限提升等)、多级审批、变更窗口与双人复核。审计留痕需要覆盖输入参数、执行对象、操作者、审批链、输出与状态。
回滚是能否上生产的门槛。常见策略有四种:分批滚动、灰度、执行前预验证加结果确认、在编排里定义补偿节点。需要注意补偿动作本身也可能失败,因此回滚操作同样要幂等、可重入。
四、第四代:调用方从人变成智能体
第四代的变化不在通道本身,而在调用方。人要读界面、能容错、能自己判断上下文;智能体要的是极简、稳定、低 token 消耗的调用面,一次调用里塞不进复杂的协议细节。
接口形态因此向三元组收敛:目标、凭据引用、动作。协议差异、重试语义、并发控制全部吸收在通道内部,调用方只看到一致的入参与出参。
同时出现三条新约束:
- 不直接暴露基础设施:智能体调的是通道,不直连设备、不接触明文凭据,也不绕过既有治理体系。
- 可追问性:每一次执行都要能回答六个问题——依据什么触发、命中了哪些高危规则、走了哪些审批节点、在哪个目标上执行、返回了什么、能否回放与止损。
- 调用成本可控:把复杂性收进通道之后,单次调用携带的上下文才不会随资产类型膨胀。
这六问其实就是审计模型的字段清单。字段齐了,才谈得上把执行权逐步开放给智能体;字段不齐,自动执行的范围就只能停在只读与建议。
五、收口顺序:入口、对象、管控三层
把"平台化还是工具化"理解成二选一,是选型中常见的误读。更现实的做法是分层收口,顺序固定:
- 收口执行入口:保留既有工具的能力,把所有执行动作统一调度。既保护已有投入,又解决操作分散与无法审计的问题。
- 收口对象数据:让所有自动化动作的目标来自同一份配置数据。这一步做完,"脚本执行错对象"会显著下降。
- 收口高危与合规管控:无论用哪套工具执行,审批策略、高危拦截与操作留痕都应统一,等保核查与内部审计才有一致的证据链。
判断收口是否到位,看三个数能否被统计:高危操作拦截覆盖率、审批留痕率、执行对象来自配置数据的比例。三个数都能算出来,说明入口、对象与管控三层都收住了。
存量脚本的处理建议是先全量导入版本库做纳管,再按执行频率排序分批重构。不导入就等于没有纳管,导入之后至少能回答"谁在什么时候改了什么"。
六、遗留问题
异构设备的操作知识如何沉淀为可复用的原子能力,目前缺少通用做法。多品牌设备各自用原厂工具时,操作过程不记录、参数不抽象,人员流动后能力随人流失;把原厂工具的操作翻译成通道内的原子动作,工作量主要在参数契约的定义上。
回滚失败的二次故障仍缺标准化验证方法。分批滚动能限制影响面,但补偿动作在部分状态变更上不可逆,这类动作只能靠前置校验拦截,无法靠回滚兜底。
智能体调用频次上升之后,凭据轮换与配额控制的机制尚未统一:凭据轮换周期需要平衡泄露影响与轮换成本,配额则要区分"人发起"与"智能体发起"两类来源,否则一次误判的循环调用会放大成批量操作。
最后还有一个未收敛的问题:通道抽象层本身的可用性。执行入口收口之后,通道成为单点,它的降级与逃生通道如何在不改变审计模型的前提下设计,仍有待更多实践验证。