Agent Skills
返回列表
💻

Ansible 剧本检查器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md 的说明,将 @user_3c6cb52e/ansible-playbook-linter-2 安装到 AI 助手中。

技能介绍

问题背景

Ansible 的 playbook 和 role 本质上是声明式配置,一个不起眼的拼写错误、一次不完整的 handlers 定义,都可能在目标主机上表现为难以定位的执行失败。更麻烦的是,这类问题往往不在语法层面:yamllint 能拦住缩进错误,却拦不住「同一个 task 重复执行结果不同」这类幂等性问题,也拦不住 var_name、VariableName、variable_name 三种命名风格混用带来的维护成本。等到流水线跑完才发现,排查成本已经很高了。

核心能力与工作流程

这个技能把两类检查整合到一个入口:

  • 双引擎校验:通过 ansible-lint 与 yamllint 的 API 分别处理语义规则和 YAML 结构问题,而不是简单地在命令行跑一遍 lint。
  • 自定义规则配置文件:重点落在三条实践上——幂等性、变量命名规范、handlers 的正确使用。规则集中在配置文件中,团队可以按自己的约定调整,而不必修改 lint 工具本身。
  • 校验对象:同时覆盖 playbook 文件和 role,role 内部的 task、defaults、handlers 都在检查范围内。

典型的工作流是:把技能指向仓库中的 playbook 或 role,它加载自定义规则配置,调用两个 lint API 并聚合结果,然后按规则输出违规项。

适用边界与注意事项

需要说清楚它不能做什么:

  • 技能只做静态检查,不会真正连接到目标主机执行 playbook。运行时才暴露的问题——比如某个模块对特定系统版本的依赖——不在覆盖范围内。
  • 如果 playbook 大量依赖动态 inventory 或临时任务,静态分析能看到的范围是有限的。
  • 想跟上 Ansible 上游最新行为的开发者可以关注 devel 分支,它包含最新特性;但生产环境通常建议锁定稳定分支。
  • 另外,Ansible 的模块并不要求只能用 Python 写,用其他动态语言开发的模块同样可以接入,这类自定义模块自身的规范性仍需团队自行把关。

使用场景

  • 团队负责人编写自动化部署的 playbook,提交前需要确认是否包含会导致重复执行的非幂等任务。
  • 开发者编写 role 时使用了多种变量命名风格,提交前需要批量检查是否符合统一的命名规范。
  • 运维工程师完成 handler 定义后,需要验证其能否被 task 正确触发且无语法错误。
  • CI 流水线需要在代码合并前自动拦截 YAML 缩进错误和不规范的 playbook 结构。

适合人员

  • 基础设施即代码工程师,需要确保 playbook 符合团队规范和最佳实践,避免生产环境故障。
  • DevOps 平台开发者,要在 CI/CD 环节引入自动化代码检查,拦截结构错误和命名混乱问题。
  • 开源项目维护者,需要帮助社区贡献者快速发现处理器定义和变量命名方面的基础错误。
  • 云原生架构师,在迁移或扩展 Ansible 配置时,需要验证大量现有 role 的幂等性和规范性。