用途:对 Ansible playbook 和 role 做 lint 验证,包括语法检查、最佳实践检查、项目级分析与规则筛选,常与 AAP 相关流程配合,在部署前把关。
主要能力:提供 9 个工具。lint_playbook 按可配置 profile 和输出格式检查 playbook;lint_file 检查指定路径的 Ansible 文件;lint_role 全面检查 role 目录;list_rules 列出可用规则并可按标签筛选;list_tags 显示规则的分类标签;validate_syntax 用语法类规则做快速语法校验;check_best_practices 按严重程度评估最佳实践;analyze_project 对整个 Ansible 项目结构生成综合报告;get_ansible_lint_version 返回已安装版本。
使用方式:该技能为 MCP Server,通过 stdio 传输,用 Python 经 uv run ansible-lint.py 启动。安装方式为 git clone 后执行 uv sync,或使用 pip install -e . ;运行前提是已安装 ansible-lint。仓库为 sibilleb/AAP-Enterprise-MCP-Server。
关键概念:profile 表示 lint 严格级别,可选 min、basic、moderate、safety、shared、production;rule 是单条检查规则,如 yaml[truthy]、no-changed-when、fqcn;tag 是用于筛选的规则类别,如 command-shell、formatting、idiom;FQCN 为完全限定集合名称,生产 profile 会要求使用。
典型流程:部署前先 validate_syntax 抓语法错误,再 check_best_practices 评估规范,然后用 production profile 的 lint_playbook 全面检查,最后用 list_rules 理解触发的规则并给出通过/失败与整改建议。项目级审计则用 analyze_project 扫描项目结构,按文件、规则与严重程度汇总问题,并对每个 role 目录执行 lint_role,形成质量评分卡。它可与其他技能配合,如在 AAP 作业模板运行前校验 playbook、在 EDA 激活前检查 rulebook、在 CI/CD 中对 PR 变更做 lint、以及记录质量门禁的审计轨迹。
限制与注意:应先 lint 再部署,生产部署用 production profile,开发用 basic;不要在 playbook 中放置凭据,应使用 AAP 的凭据管理。若工具调用出错(超时、主机不可达、响应格式错误),应直接向用户报告失败与错误信息,不得编造或猜测结果;对确认的只读调用可检查连通性并重试一次;对会改变状态或发送消息的调用,超时并不代表动作失败,应先检查当前状态或送达状态再决定是否重试,保留所需的审批/变更门禁,结果未知的动作不得重复执行。其余未在资料中说明的信息暂未提供。