【发布时间】:2020-03-23 19:33:42
【问题描述】:
我试图在 Ansible 中使用 jinja2 模板找出一个复杂的变量结构。我在“for”循环中使用 dictsort 和“if”循环尝试了不同的解决方案,但我没有看到任何进展。任何帮助将不胜感激。
我正在尝试根据ansible_hostname 打印virtual_ro_id。主机名是 server1.dc1.com 和 server2.dc1.com,与 dc2 相同。 var 文件如下所示。
datacenters:
dc1:
server1:
- virtual_ro_id: "60"
server2:
- virtual_ro_id: "60"
dc2:
server1:
- virtual_ro_id: "61"
server2:
- virtual_ro_id: "61"
这就是我的模板语法:
{% for dc in lookup('dict', datacenters) %}
{% set dc_name=ansible_fqdn.split(.)[1] %}
{% if 'dc' == dc_name %}
ID: {{ dc.ansible_hostname.virtual_ro_id }}
{% endif %}
{% endfor %}
我通常会收到语法错误或模板没有获取任何值。提前致谢。
【问题讨论】:
标签: ansible jinja2 ansible-template