SuperAPI AI 工具集

ansible-error-handling

部署与运维

查看项目

更新于 10-16 04:32

技能介绍

用途:为 Ansible playbook 和 role 提供错误处理与恢复的编写模式,提升部署与自动化任务的健壮性。

主要能力:

  1. block/rescue/always:block 内任务顺序执行,任一失败触发 rescue,always 无论成败都执行;常用于部署失败回滚与临时文件清理。
  2. 重试:用 until 配合 retries 与 delay 处理瞬时故障,例如轮询健康检查直到 status==200,或等待集群状态稳定。
  3. 断言校验:用 ansible.builtin.assert 校验必填变量、数值范围、正则匹配、列表非空与枚举取值,并给出 fail_msg 与 success_msg。
  4. 精确失败:通过 register 采集结果,用 failed_when 结合条件(如忽略“服务不存在”“已在集群中”等特定错误)区分可接受失败;ignore_errors 仅用于非关键清理,并建议优先用 failed_when。
  5. 上下文报错:先以 failed_when: false 检查前置条件,再用 fail 输出可操作提示,如缺失依赖与安装命令。
  6. 错误恢复与委派:rescue 中尝试备用端点;用 delegate_to: localhost 从控制机检测 API 端点连通性后再决定是否失败。

使用方式:将上述模式写入 tasks 与 roles;重试参数为 until、retries、delay;校验用 assert 的 that 条件列表。

适用场景:应用部署与回滚、集群加入与状态等待、服务健康检查、前置依赖检查以及需要明确失败原因的自动化流程。

限制:资料未提供具体运行环境版本、依赖要求与完整测试结果;ignore_errors 应谨慎使用。