实验 8:变量体系与 Facts
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 题)
        • 七、综合设计题(4 题)
        • 八、深度原理题(4 题)
    • 十一、练习题参考答案
      • A 组答案
      • B 组答案
      • C 组答案(评分要点)

实验 8:变量体系与 Facts


一、本章学习目标

完成本实验后,你将能够:

  1. 掌握5 种变量定义方式(内联 vars、group_vars、host_vars、vars_files、命令行 -e),理解各自的适用场景
  2. 精通Ansible 变量优先级体系,能够准确判断变量冲突时的最终生效值
  3. 熟练使用Facts 变量,从系统自动收集的信息中提取所需数据并用于配置
  4. 理解"数据与逻辑分离"的设计思想,能够将 Playbook 中的硬编码值抽取为可配置变量
  5. 构建多环境(开发/测试/生产)变量管理方案,实现一套 Playbook 适配多套环境

二、实验背景:为什么需要变量?

2.1 硬编码的问题

如果没有变量,Playbook 中所有的值都要写死:

# ❌ 硬编码,不可复用 - name: 安装 Nginx dnf: name: nginx - name: 配置端口 copy: content: "listen 80;" dest: /etc/nginx/conf.d/default.conf

问题来

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询