You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Ansible采集的ONTAP节点版本信息导出为CSV

提取NetApp ONTAP节点版本并导出CSV(支持转置)

假设你的ontap_version_info变量结构类似下面的示例(不同集群下包含节点列表及版本信息):

ontap_version_info:
  - cluster: cluster01
    nodes:
      - name: node01-cluster01
        version:
          full: "9.10.1P5"
      - name: node02-cluster01
        version:
          full: "9.10.1P5"
  - cluster: cluster02
    nodes:
      - name: node01-cluster02
        version:
          full: "9.9.1P8"

1. 提取目标字段

使用Ansible的json_query过滤器快速提取所有节点的name和version.full字段:

- name: 提取节点名称与完整版本号
  set_fact:
    filtered_node_data: "{{ ontap_version_info | json_query('[].nodes[].{node_name: name, os_version: version.full}') }}"

执行后filtered_node_data会是一个包含所有节点信息的列表,格式为:

[
  {"node_name": "node01-cluster01", "os_version": "9.10.1P5"},
  {"node_name": "node02-cluster01", "os_version": "9.10.1P5"},
  {"node_name": "node01-cluster02", "os_version": "9.9.1P8"}
]

2. 生成CSV内容

常规格式(每行一个节点)

直接拼接表头与数据,若字段含逗号可添加双引号包裹:

- name: 生成常规格式CSV内容
  set_fact:
    csv_normal_content: |
      Node Name,OS Version
      {% for item in filtered_node_data %}
      "{{ item.node_name }}","{{ item.os_version }}"
      {% endfor %}

转置格式(节点名为表头,版本为对应列值)

先将数据转换为字典,再生成转置后的CSV:

- name: 生成转置格式CSV内容
  set_fact:
    node_version_map: "{{ filtered_node_data | items2dict(key_name='node_name', value_name='os_version') }}"
    csv_transposed_content: |
      Item,{{ node_version_map.keys() | join(',') }}
      OS Version,{{ node_version_map.values() | join(',') }}

转置后的CSV表头为所有节点名称,仅一行数据对应各节点的版本号。

3. 导出CSV文件

用copy模块将生成的内容写入本地文件:

- name: 导出常规格式CSV
  copy:
    content: "{{ csv_normal_content }}"
    dest: "/tmp/ontap_node_versions.csv"
    mode: '0644'

- name: 导出转置格式CSV
  copy:
    content: "{{ csv_transposed_content }}"
    dest: "/tmp/ontap_node_versions_transposed.csv"
    mode: '0644'

注意事项

  • 如果ontap_version_info的结构与示例不同,只需调整json_query的路径即可适配。
  • 若版本号或节点名包含特殊字符(如逗号、双引号),可在模板中添加转义逻辑处理。

内容的提问来源于stack exchange,提问作者George

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:53:16