文章目录Ansible Playbook 语法全解(Nginx实战版)一、Playbook 整体结构与核心规范1. 最基础的结构规则2. 最简 Nginx Playbook 示例3. Playbook 标准完整结构二、Play 级核心字段语法详解1. `name`:Play 描述2. `hosts`:指定目标主机3. `become`:权限提升4. `gather_facts`:Facts 采集开关5. `vars`:Play 内变量定义6. `vars_files`:引入外部变量文件三、任务(Tasks)编写语法1. 任务标准格式2. 模块参数的两种写法3. 任务执行核心原则4. Nginx 全流程任务示例5. 最佳实践四、变量体系完整语法1. 变量命名规则2. 5种变量定义方式(Nginx场景)方式1:Play 内 vars 段落定义方式2:外部变量文件引入方式3:命令行传入(`-e` 参数)方式4:主机清单变量方式5:Facts 内置变量3. 变量引用规则4. 实用过滤器与默认值五、Handlers 处理器语法1. 核心特性2. 定义与触发语法定义:写在 `handlers` 段落,和 tasks 同级触发:普通任务中用 `notify` 关键字3. Nginx 经典场景:配置变更才重启4. 高频踩坑六、Templates 模板语法1. 核心作用2. template 模块基础用法3. Jinja2 三大核心语法(Nginx配置示例)(1)变量渲染:`{ { 变量名 }}`(2)条件判断:`{% if %} ... {% endif %}`(3)循环:`{% for %} ... {% endfor %}`4. 模板注释七、条件判断与循环语法1. 条件判断:`when` 语句(1)单条件判断(2)多条件组合2. 循环:`loop` 语句(1)简单列表循环:批量开放端口(2)字典循环:批量创建站点目录3. 循环 + 条件组合八、完整综合实战:企业级 Nginx 部署 Playbook1. 模板文件 `/root/nginx.conf.j2`2. Playbook 文件 `/home/yaml/nginx_deploy.yml`3. 标准执行流程九、高频语法错误排查十、进阶实用语法补充1. `tags` 标签:指定执行部分任务2. `register` + `debug`:捕获并打印任务输出3. `ignore_errors: yes`:忽略非关键任务失败Ansible Playbook 语法全解(Nginx实战版)适配环境:CentOS 7.9 +test主机分组(172.16.15.137/180)+ 全局sudo提权 + Python3 解释器所有代码可直接复制运行,全程以「Nginx 企业级部署」为实战场景,从基础结构到进阶语法逐层拆解,每个语法点都对应可落地的业务场景。一、Playbook 整体结构与核心规范1. 最基础的结构规则Playbook 采用 YAML 格式,有两条不可突破的底层规则:顶层必须是列表:文件最外层是-开头的列表,每个列表元素是一个「Play」;缩进代表层级:统一用 2 个空格表示子层级,禁止使用 Tab 键,同层级元素必须左对齐。你之前遇到的got a AnsibleMapping报错,本质就是顶层写成了字典,不符合 Playbook 「顶层为列表」的强制要求。2. 最简 Nginx Playbook 示例先看一个最小可运行的 Playboo