如何展平 Ansible 列表列表并写入文件 - IOS / Nexus (nxos)
How to flatten an Ansible list of lists and write out to file - IOS / Nexus (nxos)
ANSIBLE LOOPS
=============
我有以下任务需要将结果写入文本文件。 Reg 产生 "list of lists"。我似乎只能使用 Jinja2 模板循环样式来获得我想要的东西。是否还有其他 'elegant' 方法可以使用 "with_list:" 命令或其他技术来完成此操作?
- name: Show Commands
nxos_command:
provider: "{{ provider }}"
commands:
- show version | include bin
- show ip int brief
- show ip route
- show run | include logging
- show snmp host
register: reg
- debug: var=reg.stdout_lines
- copy:
content: |
{% for line in reg.stdout %}
{{ line }}
{% endfor %}
dest: ./{{ CRQ }}/{{ inventory_hostname }}_post_{{ CRQ }}.txt
您可以使用join将其转换为字符串:
- copy:
content: '{{ reg.stdout | join("\n") }}'
dest: ./{{ CRQ }}/{{ inventory_hostname }}_post_{{ CRQ }}.txt
ANSIBLE LOOPS
=============
我有以下任务需要将结果写入文本文件。 Reg 产生 "list of lists"。我似乎只能使用 Jinja2 模板循环样式来获得我想要的东西。是否还有其他 'elegant' 方法可以使用 "with_list:" 命令或其他技术来完成此操作?
- name: Show Commands
nxos_command:
provider: "{{ provider }}"
commands:
- show version | include bin
- show ip int brief
- show ip route
- show run | include logging
- show snmp host
register: reg
- debug: var=reg.stdout_lines
- copy:
content: |
{% for line in reg.stdout %}
{{ line }}
{% endfor %}
dest: ./{{ CRQ }}/{{ inventory_hostname }}_post_{{ CRQ }}.txt
您可以使用join将其转换为字符串:
- copy:
content: '{{ reg.stdout | join("\n") }}'
dest: ./{{ CRQ }}/{{ inventory_hostname }}_post_{{ CRQ }}.txt