【发布时间】:2019-10-10 20:41:07
【问题描述】:
如何在 jinja 模板中使用项目的嵌套变量?我正在运行 ansible 来为网络交换机生成配置。
试图让if语句基于bgp_peer_version,
我有以下变量文件
---
switches:
- ansible_hostname: Core1
bgp_neighbors:
- bgp_peer_version: both
bgp_peer_ipv4: 10.1.1.1
bgp_peer_ipv6: 2001::1
bgp_vrf:
- bgp_peer_version: v4
bgp_peer_ipv4: 10.1.1.2
bgp_peer_ipv6:
bgp_vrf:
- ansible_hostname: Core2
bgp_neighbors:
- bgp_peer_version: 'both'
bgp_peer_ipv4: 10.1.1.2
bgp_peer_ipv6: 2001::1
bgp_vrf:
- bgp_peer_version: 'v4'
bgp_peer_ipv4: 10.1.1.2
bgp_peer_ipv6:
bgp_vrf:
到目前为止有以下代码
{% if item[bgp_peer_version] == "v4" %}
BGP Peer
IPv4 address {{ bgp_peer_ipv4 }}
{% else %}
BGP Peer
IPv4 address {{ bgp_peer_ipv64 }}
IPv6 address {{ bgp_peer_ipv6 }}
{% endif %}
我正在尝试构建一个模板,该模板使用每个交换机的 bgp 邻居中的变量。我正在寻找第一个模板的输出。 模板 1 输出
BGP 对等体 IPv4 地址 10.1.1.1 IPv6 地址 2001::1 BGP对等体 IPv4 地址 10.1.1.1
模板 2 输出
BGP 对等体 IPv4 地址 10.1.1.2 IPv6 地址 2001::2 BGP对等体 IPv4 地址 10.1.1.1
【问题讨论】: