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)。
我想从远程主机上的文件中包含变量,而不是 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)。