生成、创建或搭建 Ansible playbook、role、task、handler、inventory、vars。
Ansible 生成器 : 调试器 : 语言词是一项面向实际任务的技能,主要用于当请求生成或脚手架 的可操作内容时, 请使用此技能, 例如 : “ 创建一个游戏本, 以部署 nginx 与 TLS;“ Geneate a Ansblect 角色。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
当用户请求生成或搭建 Ansible 内容时,使用本技能,例如:
当请求仅涉及验证/调试(如语法错误、lint 失败、Molecule/测试失败)时,**不得**将本技能作为主工作流。此类场景请使用 ansible-validator。
按顺序执行以下阶段。除非 验证异常矩阵 明确允许,否则不得跳过任一阶段。
首先确定唯一一种模式:
| 模式 | 典型用户意图 | 交付物 |
|---|---|---|
full-generation |
“创建/构建/生成”完整的 playbook/role/inventory/项目文件集 | 完整文件(生产就绪) |
snippet-only |
仅需“快速代码片段/示例”,无需完整文件上下文 | 聚焦于特定任务/Play 的代码片段 |
docs-only |
仅需解释说明、模式对比或概念性指导 | 说明性内容,可选附带示例 |
若缺少必要细节,请简要询问;若用户未提供,则采用安全默认值,并明确声明所做假设。
| 资源类型 | 必需输入 | 缺失时的安全默认值 |
|---|---|---|
| Playbook | 目标主机、特权提升设置(become)、操作系统家族、目标功能 |
hosts: all、become: false、跨 OS 兼容模块 |
| Role | role 名称、主服务/包名、支持的操作系统 | 从任务领域推导 role 名称;Debian + RedHat 变量模板 |
| Tasks 文件 | 操作范围、所需变量、执行上下文 | 独立可复用的任务,含文档化变量说明 |
| Inventory | 环境划分、主机组、主机名/IP 地址 | production/staging 主机组,含占位符 |
| 项目配置 | collections/roles 依赖项、lint 策略 | 最小化 ansible.cfg、requirements.yml、.ansible-lint |
在起草内容前,需从本地参考文档/模板中提取以下内容。
references/best-practices.mdreferences/module-patterns.mdassets/templates/playbook/basic_playbook.ymlassets/templates/role/(含 meta/argument_specs.yml 及用于测试脚手架的 molecule/default/)assets/templates/inventory/hostsassets/templates/inventory/hosts.ymlassets/templates/project/ansible.cfg、assets/templates/project/requirements.yml、assets/templates/project/.ansible-lint[PLACEHOLDER]。ansible.builtin.*)。遵循以下生成标准:
ansible.builtin.*)。state、creates/removes、changed_when 等)。true/false(而非 yes/no)。no_log: true。ansible.builtin.dnf(仅旧系统才回退至 yum)。使用下方矩阵确保验证过程确定且非阻塞。
| 场景 | 默认行为 | 允许的回退方式 | 需报告内容 |
|---|---|---|---|
full-generation |
生成后及每次修复后均运行 ansible-validator |
若 validator/工具不可用,则执行手动静态检查(YAML 结构校验、占位符扫描、FQCN/幂等性/安全性审查),并提供精确的延迟验证命令 | 明确列出已执行的检查项、跳过的检查项及其原因 |
snippet-only |
默认跳过完整 validator;仅执行内联合理性检查 | 仅当用户明确要求,或该代码片段被升级为完整文件时,才运行完整 validator | 声明验证受限,因输出仅为代码片段 |
docs-only |
不执行任何运行时验证 | 无需回退 | 声明未生成任何可执行产物 |
| 离线环境(无法访问网络/文档) | 继续使用本地参考文档与模板 | 跳过外部文档查询;优先采用内置模块实现;注明后续需人工进行外部验证 | 声明离线约束及其影响的检查项/查询项 |
assets/templates/playbook/basic_playbook.yml 为结构基础。pre_tasks/tasks/post_tasks、handlers、tags。assets/templates/role/ 结构构建。defaults/main.yml;将高优先级 role 变量置于 vars/main.yml。vars/Debian.yml、vars/RedHat.yml)。meta/argument_specs.yml 实现变量校验。molecule/default/ 脚手架(源自 assets/templates/role/molecule/)。when)。group_vars/all.yml → 组级变量 → 主机级变量。hosts);当用户明确要求或层级复杂时,改用 YAML 格式(hosts.yml)。ansible.cfg、requirements.yml 和 .ansible-lint。当请求依赖非内置模块/collections 时:
references/module-patterns.md。mcp__context7__resolve-library-idmcp__context7__query-docs凡使用 collection 模块,均须附带 collection 安装指引。
用户提示:“在 Ubuntu 和 RHEL 上创建一个部署启用 TLS 的 nginx 的 playbook。”
full-generation 模式。best-practices.md、module-patterns.md)及 playbook 模板。apt/dnf)、handlers、配置模板校验逻辑。ansible-validator。用户提示:“给我一个创建用户并配置 SSH 密钥的代码片段。”
snippet-only 模式。ansible.builtin.user 和 ansible.builtin.authorized_key 的最小模块模式。对于生成的可执行产物,须采用如下响应结构:
## 生成的 [资源类型]:[名称] **验证状态:** [通过 / 部分验证 / 因原因跳过] - YAML 语法:[状态] - Ansible 语法:[状态] - Lint:[状态] **摘要:** - [生成了什么] - [关键实现决策] **假设:** - [默认值或推断值] **使用方法:** ```bash [精确命令] ```
前置条件:
## 完成标准 本技能执行仅在满足以下全部条件时视为完成: - 触发决策明确(为full-generation、snippet-only或docs-only之一)。 - 已针对选定产物类型查阅必需的参考文档/模板。 - 生成输出中无未解析的占位符。 - 验证过程遵循默认行为,或严格依据矩阵中记录的例外情形执行。 - 所有跳过的检查均附带具体原因及对应的延迟验证命令。 - 最终输出包含摘要、假设、使用方法及前置条件。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章