首页/系统与基础设施/自动化运维速查/剧本执行失败的定位流程
排障与安全50 条

剧本执行失败的定位流程

剧本失败要先定位范围再定位层次:确认是全批还是个别主机失败,再把问题归到连接层、权限层、条件层还是业务逻辑层,最后用单机单任务最小复现。重跑成功不等于根因解决,跳过也不等于成功。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌‌​​‌​‌‌​​​‌​​‌‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌​‌​‌‌​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​‌‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌‌​‌‌‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌​‌‌​‌‌​​‌‌​​‌‌​‌‌​​​‌‌​‌‌‌‌​‌‌‌​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

按层次缩小范围

剧本失败的排查效率取决于排查顺序。先判断失败范围——全批失败通常是剧本本身或公共前置条件问题,个别主机失败通常是环境差异。再把问题归到某一层:连接层(网络与认证)、权限层(执行身份与文件权限)、条件层(变量与判断表达式)、业务逻辑层(命令本身与幂等性)。最后用单机单任务的最小重跑复现,避免在大批量上反复试探造成更大影响。

基本信息

定位顺序失败范围、失败任务、问题层次、单机复现、修正重跑
常用手段限制单主机重跑、只跑失败任务、提高输出级别
区分要点连接失败不等于任务失败,任务跳过不等于执行成功
重跑前提动作幂等,不会重复执行已完成步骤
记录要求根因与处置写入变更或问题记录

典型使用场景

  • 批量任务部分主机失败:按差异分组定位,避免对全部主机重复操作
  • 变量未定义或取值异常:检查变量来源与默认值,确认条件是否命中
  • 权限不足:核对执行用户、目标文件属主与提权方式
  • 依赖服务未就绪:增加前置检查或等待逻辑,而不是简单重试
  • 动作不幂等:改为按状态判定,避免重复执行产生冲突

现象与定位动作

现象常见成因定位动作
连接超时或不可达网络路径或认证失败用相同凭据单独测试连通性
权限被拒执行身份权限不足核对执行用户与目标路径权限
任务被跳过条件判断未命中打印相关变量取值,验证表达式
个别主机失败系统版本或包名差异按条件分组,为差异分支分别处理
重跑即失败动作不幂等或状态残留改为状态判定式逻辑并清理残留
返回成功但目标未变命令静默失败或未生效在任务后增加结果校验步骤

最小复现与重跑

最小复现与重跑
# 1. 只对一台失败主机重跑,缩小影响面
ansible-playbook site.yml --limit web-03        # 先限定单机,确认现象可复现
# 2. 只跑失败任务,从失败点继续,而不是整套重来
ansible-playbook site.yml --limit web-03 --start-at-task 'install package'
# 3. 提高输出粒度,看清变量与判定过程
ansible-playbook site.yml --limit web-03 -vvv   # 调试级别按需提高,避免日志淹没
# 4. 修正后先小批验证,再放开全量
ansible-playbook site.yml --limit 'web_group[0:2]'
排查期间要冻结并发:多个执行副本同时操作同一批目标会让状态错乱,失败原因被新的失败掩盖。先停下、再定位、后重跑。
「重跑一次就好了」不等于问题已解决。临时性成功的成因(时序竞争、依赖未就绪、限流)必须记录并转问题管理,否则下次发布同样位置会再出一次。

易错点

  • 在全量目标上反复试错:一边排查一边扩大影响面,把小故障拖成大事故
  • 把任务被跳过当作成功:条件未命中时目标根本没被处理,交付结果不完整
  • 只看返回码不校验结果:命令静默失败仍标记成功,问题延迟到业务侧暴露
  • 缺少幂等导致重跑冲突:重复创建、重复删除、重复计费在重跑时集中出现

数据来源与参考

  • Ansible 官方文档:Playbook 执行、条件与错误处理
  • ITIL 4 服务管理实践:事件管理与问题管理
  • Google SRE 工作手册:自动化与发布工程实践

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/playbook-failure-locating-workflow.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌‌​​‌​‌‌​​​‌​​‌‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌​‌​‌‌​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​‌‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌‌​‌‌‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌​‌‌​‌‌​​‌‌​​‌‌​‌‌​​​‌‌​‌‌‌‌​‌‌‌​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​