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

Mik*_*ski 7 amazon-web-services ansible ansible-facts

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

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

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

include_vars模块仅从控制计算机获取文件.我可以使用fetch模块,但这似乎是一个不必要的步骤.

udo*_*dan 3

将其与 集成应该不难/etc/ansible/facts.d

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

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

请参阅文档中的本地事实 (Facts.d) 。