2026/9/5 19:02:43
网站建设
项目流程
文章目录
- 实验 8:变量体系与 Facts
- 一、本章学习目标
- 二、实验背景:为什么需要变量?
- 2.1 硬编码的问题
- 2.2 变量的价值:数据与逻辑分离
- 三、5 种变量定义方式双视角解析
- 方式 1:Playbook 内联变量(vars)
- 方式 2:group_vars 组变量
- 方式 3:host_vars 主机变量
- 方式 4:外部变量文件(vars_files)
- 方式 5:命令行传参(-e / --extra-vars)
- 四、变量优先级体系(核心重难点)
- 4.1 完整优先级排序(从低到高)
- 4.2 必须记住的关键优先级
- 4.3 优先级冲突示例
- 4.4 查看变量实际值
- 五、Facts 变量深度解析
- 5.1 什么是 Facts
- 5.2 常用 Facts 变量速查表
- 5.3 Facts 演示 Playbook
- 5.4 Facts 的高级用法
- 六、Jinja2 变量语法
- 6.1 基本语法
- 6.2 常用过滤器
- 6.3 变量定义中的引用
- 七、企业级扩展:多环境变量管理
- 7.1 多环境目录结构
- 7.2 不同环境的变量差异
- 7.3 敏感变量管理(Vault)
- 八、常见坑点与排错指南
- 坑点 1:变量未定义报错
- 坑点 2:变量优先级混淆
- 坑点 3:YAML 中变量未加引号
- 坑点 4:group_vars/host_vars 目录位置不对
- 坑点 5:Facts 变量不可用
- 坑点 6:变量名使用了保留字
- 九、本章小结
- 十、配套练习题(共 35 题,分三个难度梯度)
- 【A 组:基础巩固题】(15 题)
- 一、填空题(5 题)
- 二、判断题(5 题)
- 三、单项选择题(5 题)
- 【B 组:进阶应用题】(12 题)
- 四、不定项选择题(7 题)
- 五、简答题(3 题)
- 六、排错题(2 题)
- 【C 组:企业级实战题】(8 题)
- 十一、练习题参考答案
实验 8:变量体系与 Facts
一、本章学习目标
完成本实验后,你将能够:
- 掌握5 种变量定义方式(内联 vars、group_vars、host_vars、vars_files、命令行 -e),理解各自的适用场景
- 精通Ansible 变量优先级体系,能够准确判断变量冲突时的最终生效值
- 熟练使用Facts 变量,从系统自动收集的信息中提取所需数据并用于配置
- 理解"数据与逻辑分离"的设计思想,能够将 Playbook 中的硬编码值抽取为可配置变量
- 构建多环境(开发/测试/生产)变量管理方案,实现一套 Playbook 适配多套环境
二、实验背景:为什么需要变量?
2.1 硬编码的问题
如果没有变量,Playbook 中所有的值都要写死:
# ❌ 硬编码,不可复用 - name: 安装 Nginx dnf: name: nginx - name: 配置端口 copy: content: "listen 80;" dest: /etc/nginx/conf.d/default.conf
问题来