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

时间:2016-02-15 13:10:54

标签: amazon-web-services ansible ansible-facts

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

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

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

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

1 个答案:

答案 0 :(得分:1)

/etc/ansible/facts.d与<{1}}整合起来应该不难。

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

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

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