gpt4 book ai didi

jinja2 - ansible 无法获取 inventory_hostname

转载 作者:行者123 更新时间:2023-12-02 07:17:02 25 4
gpt4 key购买 nike

我正在尝试获取正在使用的服务器的短名称。

我在 jinja2 中有这个:

ServerAlias graphite.{{ hostvars[inventory_hostname] }}
ServerAlias graphite.{{ hostvars[inventory_hostname] }}.{{dc}}.{{subnet}}

上面只是泄露了全部事实,而不仅仅是简称。

hosts.yaml 如下所示:

graphite.experimental.com dc=lv1 subnet=coupons.lan

最佳答案

您想要使用的只是 {{ inventory_hostname }} (或 {{ inventory_hostname_short }} 表示简称)。

hostvars 对象是一种访问 Ansible 知道的每个主机的变量的方法。因此,hostvars[inventory_hostname]将为您提供包含有关当前主机的所有已知事实的对象,hostvars['foo']将为您提供包含有关当前主机的所有已知事实的对象主机“foo”等。

假设您有一组名为“db_servers”的主机,并且您希望在模板中生成所有这些主机的 IP 地址列表。您可以这样做:

{% for host in groups['db_servers'] %}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}

关于jinja2 - ansible 无法获取 inventory_hostname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686571/

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