用途:帮助设计结构清晰、易维护的 Ansible playbook,覆盖状态化设计、play 组织与变量作用域。
主要能力:
- 状态化模式:用 state 变量(present/absent)让同一剧本同时处理创建与删除,减少重复代码,统一接口。
- Play 结构:建议固定顺序组织 hosts、become、gather_facts、vars、vars_files、pre_tasks、roles、tasks、post_tasks、handlers。
- 变量组织:说明优先级从低到高为 role defaults、group_vars、host_vars、play vars、task vars、-e extra vars;并给出 group_vars/host_vars 目录布局与命名建议。
- 任务拆分:任务超过 50 行或出现逻辑分组时拆分为独立文件;区分 import_tasks(静态、解析期、不支持循环)与 include_tasks(动态、运行期、支持循环与条件)。
- 多 play 剧本:按主机组或权限级别拆分 play,可用 serial 控制逐台执行。
- Handler:在 play 级定义,按定义顺序在 play 末尾执行且只执行一次;可用 meta: flush_handlers 强制立即执行。
- 校验:用 assert 做前置检查,如必填变量、版本格式、环境取值、磁盘空间。
使用方式:示例命令为 uv run ansible-playbook playbooks/manage-admin.yml -e "admin_name=alice" -e "admin_state=absent"。
适用场景:需要统一管理主机资源创建与删除、组织多主机组部署、控制变量覆盖顺序的运维剧本。
限制:资料未提供具体版本要求、平台支持范围、性能数据或收费信息;部分示例代码在原文中缩进不完整,实际使用需按 Ansible 语法补全。