type
status
date
slug
summary
tags
category
icon
password
书籍
 

Ansible 变量管理:提升自动化效率的关键

Ansible 是一款强大的自动化工具,通过使用变量简化任务管理并减少错误。本文将介绍 Ansible 中变量的定义、命名规则、优先级管理,以及如何在 Playbook 中高效使用这些变量。

变量的定义与使用

通过使用变量,我们可以定义一些常用信息,例如:
  • 要创建的用户
  • 要安装的软件包
  • 要启动或停止的服务
  • 要删除的文件

变量命名规则

  1. 变量名必须以字母开头。
  1. 变量名只能包含字母、数字和下划线。
无效名称web server, remote.file, 1st file
有效名称web_server, remote_file, file_1

变量的定义方式

在 Ansible Playbook 中,变量可以通过多种方式定义:
  • Playbook 中的 vars:全局定义变量。
  • 外部文件:通过 vars_files 引入。

示例:定义简单变量

示例:引用外部文件的变量

Playbook
外部变量文件 vars/users.yml

变量优先级管理

在 Ansible 中,不同的变量定义方式具有不同的优先级,优先级从低到高依次为:
  1. 清单中定义的变量(最低优先级)
  1. Playbook 的 group_vars 中定义的变量
  1. Playbook 的 host_vars 中定义的变量
  1. 主机事实(自动发现的变量)
  1. Playbook 中的 varsvars_files
  1. 任务变量(定义在具体任务中的变量)
  1. 命令行传递的变量(最高优先级,例如使用 e 参数传递的变量)

注意事项

尽量选择唯一的变量名称,以避免混淆优先级规则。当同一个变量名在多个地方定义时,Ansible 将使用优先级最高的变量值。例如,任务中的变量会优先于 Playbook 中的变量。

示例:优先级示范

Ansible 变量优先级及示例

在 Ansible 中,变量的定义和使用有多种层级,每个层级都有不同的优先级。了解这些优先级有助于我们有效地管理配置。以下是 Ansible 变量的优先级顺序,从最低优先级到最高优先级,以及每个层级的示例。

1. 清单中定义的变量(最低优先级)

在清单文件中定义的变量将具有最低的优先级。
清单文件inventory.ini):

2. Playbook 的 group_vars 中定义的变量

group_vars 目录中定义的变量将覆盖清单中定义的变量。文件名需要是组名
group_vars/webservers.yml
Playbook
输出

3. Playbook 的 host_vars 中定义的变量

host_vars 目录中定义的变量将覆盖 group_vars 中的变量。文件名需要是主机名
host_vars/server1.yml
Playbook
输出

4. 主机事实(自动发现的变量)

Ansible 自动收集的主机信息,如操作系统、IP 地址等,将在变量优先级中优先于 group_varshost_vars
Playbook
输出(假设服务器为 Ubuntu):

5. Playbook 中的 varsvars_files

在 Playbook 中通过 varsvars_files 定义的变量将优先于主机事实。
Playbook
输出

6. 任务变量(定义在具体任务中的变量)

在任务中定义的变量将覆盖所有其他层级的变量。
Playbook
输出

7. 命令行传递的变量(最高优先级)

使用 -e--extra-vars 选项在命令行传递的变量将覆盖所有其他变量。
命令行运行
Playbook
输出

练习:

相关文章
RHCE 9版本考试资料
Lazy loaded image
40.总复习-4 实验手册:galaxy角色配置与部署
Lazy loaded image
39.总复习-3 实验手册:配置 RHEL 系统角色和用户管理
Lazy loaded image
38.总复习-2 实验手册:Ansible Web 服务器配置和测试
Lazy loaded image
37.总复习-1 实验手册:配置和运行Ansible脚本
Lazy loaded image
36:总复习
Lazy loaded image
08:管理变量和事实-2 管理机密06:实施Playbook-5 开放实验
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
TOKYO自習島
2025-5-8
営業保証金-21問
2025-5-6
平成26年秋期 午後問1
2025-5-6
令和5年秋期 午後問1
2025-5-3
令和2年秋期 午後問1
2025-5-2
第1回:オリエンテーション/意思決定と会計情報
2025-4-30
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
📖 博客语言使用比例
🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!