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。

➡️

继续阅读