无法获得输出的address_prefixes。如果出现错误,“dict object”没有属性‘address_前缀’。{前缀_list‘’name‘}}似乎有效,但前缀_list’‘address_前缀’%}中的前缀{%引发错误
任务:
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.yamlprefix_response:
[
{
"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"
}
]预期:
- 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发布于 2022-04-16 05:01:03
而不是花哨的循环vars,保持简单愚蠢。以下任务
- 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 }}"创建文件
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/32https://stackoverflow.com/questions/71890996
复制相似问题