主机变量和远程变量

主机变量和远程变量

我有一本设置 web 服务器的剧本。在这个剧本中,我想知道数据库服务器的本地网络 ip 地址。

所有这些服务器都在我的库存文件中。

我怎样才能做到这一点?

我尝试使用 hostvars,但它们只有本地服务器事实。

答案1

主机变量和远程变量

可以使用 hostvars 引用远程服务器上的变量。例如,假设您正在 web-servers 组中的服务器上运行一个剧本。您可以在剧本中引用 db-server 上的变量,如下所示:

{{ hostvars['db-server.example.com']['ansible_default_ipv4']['address'] }}

请注意,要使此功能正常工作,您必须已经在当前剧本或剧本中更高级别的剧本中与 db-server.example.com 进行了对话。 Ansible 1.8(在撰写本文时仍在开发中)将通过实现可选的事实缓存,这将允许您在剧本运行之间保存事实。

相关内容