Ansible Generator

Polar Sponsor
爱发电 赞助
.NET 9.0

生成、创建或搭建 Ansible playbook、role、task、handler、inventory、vars。

Ansible 生成器 : 调试器 : 语言词

功能概述

Ansible 生成器 : 调试器 : 语言词是一项面向实际任务的技能,主要用于当请求生成或脚手架 的可操作内容时, 请使用此技能, 例如 : “ 创建一个游戏本, 以部署 nginx 与 TLS;“ Geneate a Ansblect 角色。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Ansible 生成器

触发短语

当用户请求生成或搭建 Ansible 内容时,使用本技能,例如:

  • “创建一个用于部署启用 TLS 的 nginx 的 playbook。”
  • “为 PostgreSQL 备份生成一个 Ansible role。”
  • “编写生产环境和预发布环境的 inventory 文件。”
  • “构建可复用的 Ansible 用户配置任务。”
  • “使用 ansible.cfg 和 requirements.yml 初始化一个 Ansible 项目。”
  • “给我一个快速安装 Docker 的 Ansible 代码片段。”

当请求仅涉及验证/调试(如语法错误、lint 失败、Molecule/测试失败)时,**不得**将本技能作为主工作流。此类场景请使用 ansible-validator。

确定性执行流程

按顺序执行以下阶段。除非 验证异常矩阵 明确允许,否则不得跳过任一阶段。

阶段 0:识别请求模式

首先确定唯一一种模式:

模式 典型用户意图 交付物
full-generation “创建/构建/生成”完整的 playbook/role/inventory/项目文件集 完整文件(生产就绪)
snippet-only 仅需“快速代码片段/示例”,无需完整文件上下文 聚焦于特定任务/Play 的代码片段
docs-only 仅需解释说明、模式对比或概念性指导 说明性内容,可选附带示例

阶段 1:收集最小输入

若缺少必要细节,请简要询问;若用户未提供,则采用安全默认值,并明确声明所做假设。

资源类型 必需输入 缺失时的安全默认值
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

阶段 2:参考内容提取检查清单

在起草内容前,需从本地参考文档/模板中提取以下内容。

必需参考文档

  • references/best-practices.md
    • 提取:FQCN 使用要求、幂等性规则、命名规范、安全预期。
  • references/module-patterns.md
    • 提取:针对该具体任务类型的正确模块/参数模式。

按输出类型所需的模板

  • Playbook:assets/templates/playbook/basic_playbook.yml
  • Role:assets/templates/role/(含 meta/argument_specs.yml 及用于测试脚手架的 molecule/default/)
  • Inventory(INI 格式):assets/templates/inventory/hosts
  • Inventory(YAML 格式):assets/templates/inventory/hosts.yml
  • 项目配置:assets/templates/project/ansible.cfg、assets/templates/project/requirements.yml、assets/templates/project/.ansible-lint

提取检查项

  • 识别所有必须替换的 [PLACEHOLDER]。
  • 确定模块选择优先级(首选 ansible.builtin.*)。
  • 当需要 OS 特定行为时,至少捕获一种适配该 OS 的软件包安装模式。
  • 捕获所需前置条件(collections、二进制依赖、目标环境假设)。

阶段 3:生成

遵循以下生成标准:

  1. 使用 FQCN 模块名称(首选 ansible.builtin.*)。
  2. 确保任务幂等(合理使用 state、creates/removes、changed_when 等)。
  3. 任务名称采用动词开头、描述清晰的风格。
  4. 布尔值使用 true/false(而非 yes/no)。
  5. 对敏感值添加 no_log: true。
  6. 在输出前完成所有占位符替换。
  7. RHEL 8+/CentOS 8+ 环境优先使用 ansible.builtin.dnf(仅旧系统才回退至 yum)。

阶段 4:验证(默认)或应用异常(回退)

使用下方矩阵确保验证过程确定且非阻塞。

验证异常矩阵

场景 默认行为 允许的回退方式 需报告内容
full-generation 生成后及每次修复后均运行 ansible-validator 若 validator/工具不可用,则执行手动静态检查(YAML 结构校验、占位符扫描、FQCN/幂等性/安全性审查),并提供精确的延迟验证命令 明确列出已执行的检查项、跳过的检查项及其原因
snippet-only 默认跳过完整 validator;仅执行内联合理性检查 仅当用户明确要求,或该代码片段被升级为完整文件时,才运行完整 validator 声明验证受限,因输出仅为代码片段
docs-only 不执行任何运行时验证 无需回退 声明未生成任何可执行产物
离线环境(无法访问网络/文档) 继续使用本地参考文档与模板 跳过外部文档查询;优先采用内置模块实现;注明后续需人工进行外部验证 声明离线约束及其影响的检查项/查询项

资源生成指南

Playbook

  • 以 assets/templates/playbook/basic_playbook.yml 为结构基础。
  • 包含:头部注释、按需使用的 pre_tasks/tasks/post_tasks、handlers、tags。
  • 若涉及服务部署/配置,应添加健康检查逻辑。

Role

  • 基于 assets/templates/role/ 结构构建。
  • 将默认变量置于 defaults/main.yml;将高优先级 role 变量置于 vars/main.yml。
  • 在必要时,添加 OS 特定变量文件(如 vars/Debian.yml、vars/RedHat.yml)。
  • 通过 meta/argument_specs.yml 实现变量校验。
  • 为生产就绪的 role 添加 molecule/default/ 脚手架(源自 assets/templates/role/molecule/)。

Task 文件

  • 保持作用域窄、可复用性强。
  • 在注释中明确定义所需输入变量。
  • 对环境/OS 敏感的操作使用条件判断(when)。

Inventory

  • 构建逻辑清晰的主机组,可选支持组层级关系。
  • 有意使用变量分层机制:group_vars/all.yml → 组级变量 → 主机级变量。
  • 简单拓扑默认使用 INI 格式(hosts);当用户明确要求或层级复杂时,改用 YAML 格式(hosts.yml)。

项目配置

  • 提供基础 ansible.cfg、requirements.yml 和 .ansible-lint。
  • 默认值应实用且易于编辑。

自定义模块与 Collections

当请求依赖非内置模块/collections 时:

  1. 识别所需 collection + module 及其版本敏感性要求。
  2. 优先查阅本地 references/module-patterns.md。
  3. 若仍无法解决,且网络/工具可用,则调用 Context7 查询:
    • mcp__context7__resolve-library-id
    • mcp__context7__query-docs
  4. 若 Context7 不可用,则查阅官方 Ansible 文档或 Ansible Galaxy 页面。
  5. 若无法进行外部查询,则提供内置模块的回退方案,并明确说明限制。

凡使用 collection 模块,均须附带 collection 安装指引。

典型流程示例

流程 A:完整生成(Playbook)

用户提示:“在 Ubuntu 和 RHEL 上创建一个部署启用 TLS 的 nginx 的 playbook。”

  1. 判定为 full-generation 模式。
  2. 收集/确认必需输入(目标主机、证书路径、become 设置、服务名)。
  3. 提取必需参考文档(best-practices.md、module-patterns.md)及 playbook 模板。
  4. 生成完整 playbook,含 OS 条件分支(apt/dnf)、handlers、配置模板校验逻辑。
  5. 运行 ansible-validator。
  6. 修复问题并重试,直至全部检查通过(或在工具不可用时应用矩阵回退策略)。
  7. 输出结果需包含验证摘要、使用命令及前置条件。

流程 B:快速代码片段(Task Block)

用户提示:“给我一个创建用户并配置 SSH 密钥的代码片段。”

  1. 判定为 snippet-only 模式。
  2. 提取 ansible.builtin.user 和 ansible.builtin.authorized_key 的最小模块模式。
  3. 生成简洁代码片段,含 FQCN、幂等性保障及变量占位符。
  4. 执行内联合理性检查(YAML 结构、FQCN、明显幂等性/安全性)。
  5. 输出代码片段,并注明因处于 snippet-only 模式而跳过了完整 validator 运行。

输出要求

对于生成的可执行产物,须采用如下响应结构:

## 生成的 [资源类型]:[名称]

**验证状态:** [通过 / 部分验证 / 因原因跳过]
- YAML 语法:[状态]
- Ansible 语法:[状态]
- Lint:[状态]

**摘要:**
- [生成了什么]
- [关键实现决策]

**假设:**
- [默认值或推断值]

**使用方法:**
```bash
[精确命令]
```

前置条件:

  • [collections、二进制依赖、环境需求]
## 完成标准

本技能执行仅在满足以下全部条件时视为完成:

- 触发决策明确(为 full-generation、snippet-only 或 docs-only 之一)。
- 已针对选定产物类型查阅必需的参考文档/模板。
- 生成输出中无未解析的占位符。
- 验证过程遵循默认行为,或严格依据矩阵中记录的例外情形执行。
- 所有跳过的检查均附带具体原因及对应的延迟验证命令。
- 最终输出包含摘要、假设、使用方法及前置条件。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习