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

vmware_datastore_info模块无法采集数据存储信息返回空数组问题

问题现象

使用Ansible的community.vmware.vmware_datastore_info模块采集VMware vCenter指定数据存储信息时,任务执行状态显示成功,但返回的datastores字段为空数组,和模块文档描述的返回规则不符,相同任务配置此前可以正常获取包含容量、可用空间等属性的完整数据。

复现代码

- name: Gather info from datacenter about specific datastore
  community.vmware.vmware_datastore_info:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ username }}'
    password: '{{ password }}'
    datacenter_name: '{{ datacenter_name }}'
    name: ENV04
    validate_certs: False
  delegate_to: localhost
  register: info

- debug:
    msg: "{{ info }}"

实际返回输出

TASK [Gather info from datacenter about specific datastore] ************************************************************************************************************
ok: [172.17.92.2 -> localhost]

TASK [debug] ***********************************************************************************************************************************************************
ok: [172.17.92.2] => {
    "msg": {
        "changed": false,
        "datastores": [],
        "failed": false
    }
}

文档预期返回规则

根据模块官方文档说明,datastores字段始终会返回匹配范围内可用数据存储的元数据,示例返回包含accessible、capacity、freeSpace等核心属性,参考如下:

RETURN VALUES:
- datastores
        metadata about the available datastores

        returned: always
        sample:
        - accessible: true
          capacity: 5497558138880
          datastore_cluster: datacluster0
          freeSpace: 4279000641536
          maintenanceMode: normal
          multipleHostAccess: true
          name: datastore3
          nfs_path: /vol/datastore3
          nfs_server: nfs_server1
          provisioned: 1708109410304
          type: NFS
          uncommitted: 489551912960
          url: ds:///vmfs/volumes/420b3e73-67070776/
排查解决步骤

按优先级依次排查以下问题即可定位根因:

  • 名称匹配校验:模块的name参数为大小写敏感的精确匹配规则,首先确认填写的ENV04和vCenter内数据存储的实际名称完全一致,重点排查是否存在前后缀空格、大小写偏差、形似字符混淆(比如数字0和字母O)。最稳妥的验证方式是临时移除任务中的name参数,拉取指定数据中心下所有数据存储的列表,从返回结果中核对目标存储的真实名称后再填回参数。
  • 账号权限校验:确认当前使用的vCenter服务账号近期是否做过权限调整。该模块存在已知的静默失败逻辑:如果账号对目标数据存储没有只读浏览权限,不会直接抛出权限类报错,只会返回空数组。可以直接用该账号登录vSphere Client,手动验证是否能看到ENV04数据存储、是否能查看它的容量等基础信息。
  • 集合版本bug修复:检查本地安装的community.vmware集合版本,1.x系列的部分中间版本存在过滤逻辑缺陷:当目标数据存储归属于某个数据存储集群时,同时传入datacenter_name和name参数会出现匹配失效,直接返回空结果。执行命令ansible-galaxy collection install community.vmware --upgrade升级到最新稳定版即可修复这类问题。
  • 参数适配调整:如果使用的是较新版本的community.vmware集合,当目标数据存储属于数据存储集群时,建议额外增加datastore_cluster_name参数指定所属存储集群,不要仅靠数据中心范围做过滤,避免跨层级遍历导致匹配失效。
  • 链路连通性校验:确认执行Ansible任务的主机到vCenter的443端口通信没有被中间防火墙、代理设备拦截。存在部分API请求被拦截的场景时,模块不会直接抛出连接错误,只会返回空结果集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:48:30