我想包含远程主机上文件中的变量,而不是运行 Ansible 的控制机器。
例如,我有一个文件 /var/database_credentials.yml (在我的网络服务器上)
将该文件中的变量添加到主机变量以便我可以在模板中使用它们的最佳方法是什么?
include_vars 模块仅从控制机器获取文件。我可以使用 fetch 模块,但这似乎是一个不必要的步骤。
我想包含远程主机上文件中的变量,而不是运行 Ansible 的控制机器。
例如,我有一个文件 /var/database_credentials.yml (在我的网络服务器上)
将该文件中的变量添加到主机变量以便我可以在模板中使用它们的最佳方法是什么?
include_vars 模块仅从控制机器获取文件。我可以使用 fetch 模块,但这似乎是一个不必要的步骤。
将其与/etc/ansible/facts.d
.
您可以在该目录中存储 JSON 文件、INI 文件或可执行脚本,并且在执行设置模块后,内容/输出将作为服务器事实可用。
我不确定它是否需要 YAML。您可能很幸运,只需将符号链接添加到您的文件即可/var/database_credentials.yml
。(文档中没有提到 YAML,但如果不支持 YAML 会很奇怪,因为 Ansible 中的几乎所有内容都基于 YAML)如果没有,您可以使用您喜欢的语言创建一个脚本,该脚本读取该文件并输出 JSON目的。
请参阅文档中的本地事实 (Facts.d)。