首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘'dict对象’没有属性'address_prefixes‘

‘'dict对象’没有属性'address_prefixes‘
EN

Stack Overflow用户
提问于 2022-04-16 04:02:13
回答 1查看 68关注 0票数 -2

无法获得输出的address_prefixes。如果出现错误,“dict object”没有属性‘address_前缀’。{前缀_list‘’name‘}}似乎有效,但前缀_list’‘address_前缀’%}中的前缀{%引发错误

任务:

代码语言:javascript
复制
  tasks:
    - name: Gather Junos prefix-lists
      junipernetworks.junos.junos_prefix_lists:
        state: gathered
      register: prefix_response

    - name: parse info
      set_fact:
        test: "{{ prefix_response.gathered }}"

    - copy:
        content: >-
          {% for prefix_list in test %}
          - prefix_list_name: {{ prefix_list['name'] }}
            prefix:
            {% for prefix in prefix_list['address_prefixes'] %}
              - {{ prefix }}
            {% endfor %}
            {% endfor %}
        dest: output.yaml

prefix_response:

代码语言:javascript
复制
[
        {
            "address_prefixes": [
                "10.0.0.0/8",
                "172.16.0.0/12",
                "192.168.0.0/16"
            ],
            "name": "test1"
        },
        {
            "address_prefixes": [
                "1.1.1.1/32",
                "2.2.2.2/32",
                "3.3.3.3/32"
            ],
            "name": "test2"
        }
]

预期:

代码语言:javascript
复制
- prefix_list_name: TEST1
  prefix:
    - 10.0.0.0/8
    - 172.16.0.0/12
    - 192.168.0.0/16

- prefix_list_name: TEST2
  prefix:
    - 1.1.1.1/32
    - 2.2.2.2/32
    - 3.3.3.3/32
EN

回答 1

Stack Overflow用户

发布于 2022-04-16 05:01:03

而不是花哨的循环vars,保持简单愚蠢。以下任务

代码语言:javascript
复制
    - copy:
        content: |-
          {% for i in test %}
          - prefix_list_name: {{ i.name|upper }}
            prefix:
          {% for j in i.address_prefixes %}
              - {{ j }}
          {% endfor %}

          {% endfor %}
        dest: output.yaml
      vars:
        test: "{{ prefix_response.gathered }}"

创建文件

代码语言:javascript
复制
shell> cat output.yaml
- prefix_list_name: TEST1
  prefix:
    - 10.0.0.0/8
    - 172.16.0.0/12
    - 192.168.0.0/16

- prefix_list_name: TEST2
  prefix:
    - 1.1.1.1/32
    - 2.2.2.2/32
    - 3.3.3.3/32
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71890996

复制
相关文章

相似问题

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