gpt4 book ai didi

ansible - 读取另一组的 Ansible 变量

转载 作者:行者123 更新时间:2023-12-04 06:16:59 28 4
gpt4 key购买 nike

这是库存文件的示例:

[web_servers]
web_server-1 ansible_ssh_host=xxx ansible_ssh_user=yyy

[ops_servers]
ops_server-1 ansible_ssh_host=xxx ansible_ssh_user=zzz

此外, web_servers 组在 group_vars/web_servers 中具有特定的变量:
tomcat_jmx_port: 123456

处理 tomcat_jmx_port 时如何访问 ops_servers var?

有些人可能会说我需要一个公共(public)祖先组(如 all )来放置常见的变量,但这只是一个例子,在现实生活中,我想从 ops_servers 访问很多变量,我想保持清楚,所以 tomcat_jmx_port 有留在 web_servers group_vars 文件中。

事实上,我需要一种本地查找。

有什么想法吗?

谢谢你的帮助。

最佳答案

要访问任意组中的变量,您可以使用全局变量 groups这使您可以访问组中主机的所有变量。所以这样的事情会返回 web_servers 中第一个主机的名称。团体:

{{ groups['web_servers'][0] }}

要访问主机的各个变量,您可以执行以下操作:
{{ hostvars['somehost']['ansible_default_ipv4']['address'] }}

这将返回名为 somehost 的主机的默认 IP 地址。 .

您可以轻松组合 hostvars & groups如果您需要更复杂的东西:
{{ hostvars[groups['web_servers'][0]]['ansible_default_ipv4']['address'] }}

这将为您提供 web_servers 中第一台主机的默认 IP 地址。团体。

关于ansible - 读取另一组的 Ansible 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33438617/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com