首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ansible中使用jinja模板时遇到循环的情况

在Ansible中使用jinja模板时遇到循环的情况
EN

Stack Overflow用户
提问于 2021-01-20 03:40:50
回答 1查看 36关注 0票数 0

我在使用Ansible的jinja模板时遇到了循环的情况。

我的jinja模板:

代码语言:javascript
复制
{% for int in interfaces | difference(existing_conf) %}
interface {{ int }}
{% for ip in dhcp_servers | difference(existing_conf) %}
  ip dhcp relay address {{ ip }}
{% endfor %}
{% endfor %}
代码语言:javascript
复制
TASK [view the existing config] *******************************************************************************************************************************************************************************************************************************************************************************
ok: [nxos-1] => {
    "existing_conf": [
        "Vlan1",
        "10.1.1.2",
        "10.1.1.3",
        "10.1.1.4",
        "Ethernet1/49",
        "10.1.1.2",
        "Ethernet1/50",
        "10.1.1.2"
    ]
}
TASK [Needed config] *****************************************************************************************************************************************************************************************************************************************************************
ok: [nxos-1]
TASK [View the needed config] ************************************************************************************************************************************************************************************************************************************************************************************
ok: [nxos-1] => {
    "needed_conf": [
        "Vlan1",
        "10.1.1.2",
        "10.1.1.3",
        "10.1.1.4",
        "Ethernet1/49",
        "10.1.1.2",
        "10.1.1.3",
        "10.1.1.4",
        "Ethernet1/50",
        "10.1.1.2",
        "10.1.1.3",
        "10.1.1.4"
    ]
}

我的变量:

代码语言:javascript
复制
interfaces=["Vlan1", "Ethernet1/49", "Ethernet1/50"]
dhcp_servers=["10.1.1.2", "10.1.1.3", "10.1.1.4"]

使用我的模板,我得到了一个空的配置。

我需要的配置:

代码语言:javascript
复制
interface Ethernet1/49
  ip dhcp relay address 10.1.1.3
  ip dhcp relay address 10.1.1.4
interface Ethernet1/50
  ip dhcp relay address 10.1.1.3
  ip dhcp relay address 10.1.1.4

注意:我只想添加交换机的running-config中没有的配置。

EN

回答 1

Stack Overflow用户

发布于 2021-01-20 06:32:46

问:"...我得到一个空的config."

答:没有要迭代的项。区别在于

代码语言:javascript
复制
    - debug:
        msg: "{{ interfaces|difference(existing_conf) }}"

给出一个空列表

代码语言:javascript
复制
  msg: []
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65798371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档