【问题标题】:Ansible jinja2 template get current IP file being constructedAnsible jinja2 模板获取当前正在构建的 IP 文件
【发布时间】:2020-09-22 16:01:01
【问题描述】:

在我的 ansible 主机清单中,我得到了 3 个主机 ip,如下所示

[host-group-1]
123.23.23.21
123.23.23.22

我有一个变量如下

host_list:
  - { fileName: "master.xml", IP: {{ get_current_Execution_ip }} }
  - { fileName: "slave.xml", IP: {{ get_current_Execution_ip }} }

我有一个任务将根据从 IP 获取的值在 jinja2 模板中执行一些逻辑。我的问题是我如何使用这个 {{ get_current_Execution_ip }} 来获取当前 IP,即基于相应服务器通过 jinja2 模板构建的文件。例如,如果文件在 123.23.23.21 中构建,IP 值应该是 123.23.23.21,如果在服务器 123.23.23.22 中构建,IP 值应该是 123.23.23.22

【问题讨论】:

  • 请在您的 Jinja 模板中使用“逻辑”更新问题。但是,您可以直接使用 ansible_default_ipv4.address 魔术变量来引用它正在运行的相应主机。

标签: ansible jinja2


【解决方案1】:

这样设置库存后,您只需访问变量inventory_hostname。如果您将库存更改为类似于

[host_group_1]
host1 ansible_host=123.23.23.21
host2 ansible_host=123.23.23.22

那么您可以改为使用ansible_host 变量访问IP(在第一种情况下也可用)。

如果您将清单更改为根本不列出 IP 地址(而是依靠通过 DNS 解析名称),那么您可能需要查看this question 的一些答案。

【讨论】:

    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多