Ansible - 包含来自远程主机的 vars 文件

Ansible - include vars file from remote host

我想从远程主机上的文件中包含变量,而不是 Ansible 运行 上的控制机器。

例如我有一个文件 /var/database_credentials.yml(在我的网络服务器上)

将该文件中的变量添加到 hostvars 以便我可以在模板中使用它们的最佳方法是什么?

include_vars模块只从中控机取文件。我可以使用获取模块,但这似乎是一个不必要的步骤。

将其与 /etc/ansible/facts.d 整合应该不难。

您可以在该目录中存储 JSON 个文件、INI 文件或可执行脚本,并且 content/output 将在执行安装模块后作为服务器事实可用。

我不确定它是否需要 YAML。您可能很幸运,只需将符号链接添加到您的文件 /var/database_credentials.yml 就可以了。 (文档中未提及 YAML,但如果不支持 YAML 会很奇怪,因为 Ansible 中几乎所有内容都基于 YAML)如果不支持,您可以使用您喜欢的语言创建一个脚本,该脚本读取该文件并输出 JSON对象。

请参阅文档中的 Local Facts (Facts.d)