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

使用Ansible Playbook计算列表变量中的存储使用率

Ansible处理聚合体使用率输出方案

场景1:通过命令行文本输出处理(以NetApp aggr show命令为例)

如果你的聚合体信息是通过执行命令获取的文本输出,可使用以下Playbook提取并计算:

---
- name: 处理聚合体使用率数据
  hosts: your_target_hosts
  gather_facts: no
  tasks:
    - name: 获取聚合体基础信息(TSV格式便于字段分割)
      command: aggr show -fields name,size,used -output tsv
      register: aggr_raw_output

    - name: 解析数据并生成目标格式
      debug:
        msg: "aggr_name: {{ parts[0] }};aggr_used%: {{ (parts[2]|int / parts[1]|int * 100)|int }} ==> ({{ (parts[2]|int / parts[1]|int * 100)|int }}%)"
      loop: "{{ aggr_raw_output.stdout_lines[1:] }}"
      vars:
        parts: "{{ item.split('\t') }}"

关键说明:

  • -output tsv 让命令输出以制表符分隔,避免空格分割的歧义
  • stdout_lines[1:] 跳过第一行表头,只处理数据行
  • 强制转换size和used为整数后计算使用率,最后取整得到整数百分比

场景2:通过NetApp官方模块获取结构化JSON数据

如果使用NetApp的Ansible集合,可直接调用模块获取结构化数据,处理更简单:

---
- name: 处理聚合体使用率数据
  hosts: netapp_clusters
  gather_facts: no
  collections:
    - netapp.ontap
  tasks:
    - name: 获取聚合体结构化信息
      na_ontap_aggregate:
        state: info
        hostname: "{{ inventory_hostname }}"
        username: "{{ netapp_user }}"
        password: "{{ netapp_pass }}"
        https: true
        validate_certs: false
      register: aggr_structured_data

    - name: 输出目标格式结果
      debug:
        msg: "aggr_name: {{ item.name }};aggr_used%: {{ (item.space.used / item.space.size * 100)|int }} ==> ({{ (item.space.used / item.space.size * 100)|int }}%)"
      loop: "{{ aggr_structured_data.aggregates }}"

前置准备:

  • 安装NetApp集合:ansible-galaxy collection install netapp.ontap
  • 确保目标主机可通过Ansible访问,且NetApp账户有足够权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:36:38