Ansible 变量和事实
💡
原文中文,约1700字,阅读约需4分钟。
📝
内容提要
本文介绍了Ansible中变量和Fact的使用,包括变量定义、敏感变量加密方法、Fact收集及魔法变量应用。变量可在playbook中定义并引用,敏感信息可通过ansible-vault加密。Fact用于自动收集主机信息,魔法变量提供额外主机相关信息。
🎯
关键要点
- 变量可以在多个地方定义,作用域不同。
- 在playbook中使用变量时,使用 '{{ var_name }}' 引用。
- 使用寄存器可以将上一次执行结果存储到新变量中。
- 敏感变量可以通过 ansible-vault 加密,避免明文存储。
- 运行引用加密变量的playbook时需使用 --ask-vault-pass 或 --vault-password-file。
- Fact用于自动收集主机的基本信息,常用的Fact包括主机名、FQDN和默认IPv4地址。
- 可以通过设置 gather_facts:no 禁用Fact收集。
- 自定义Fact可以在目标主机的 /etc/ansible/facts.d/ 目录下创建。
- 魔法变量提供额外的主机相关信息,如 groups、group_names 和 inventory_hostname。
- hostvars 允许引用其他主机的变量,但需确保目标主机已获取Fact。
❓
延伸问答
如何在Ansible中定义变量?
变量可以在playbook中定义、使用变量文件、在host_vars/group_vars目录下定义,或通过命令行使用-e选项定义。
Ansible中如何引用变量?
在playbook中使用变量时,使用 '{{ var_name }}' 来引用变量。
如何加密Ansible中的敏感变量?
可以使用ansible-vault命令对变量文件进行加密,执行playbook时需输入密码或使用密钥文件解密。
什么是Ansible中的Fact?
Fact是Ansible在运行时自动收集的主机基本信息,如主机名、FQDN和默认IPv4地址。
如何禁用Fact收集?
在play中添加 gather_facts:no 可以禁用Fact的收集。
什么是魔法变量,它们有什么用?
魔法变量是Ansible自动设置的变量,用于获取与特定受管主机相关的信息,如groups和inventory_hostname。
➡️