community.windows.win_disk_facts 模块 – 显示目标主机的已连接磁盘和磁盘信息

注意

此模块是 community.windows 集合(版本 2.3.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.windows。您需要更多要求才能使用此模块,请参阅要求了解详细信息。

要在 playbook 中使用它,请指定:community.windows.win_disk_facts

概要

  • 使用此模块,您可以检索并输出有关目标主机的已连接磁盘及其卷和分区(如果存在)的详细信息。

要求

以下是在执行此模块的主机上需要的要求。

  • Windows 8.1 / Windows 2012 (NT 6.2)

参数

参数

注释

filter

列表 / 元素=字符串

在 community.windows 1.9.0 中添加

允许按磁盘信息类型筛选返回的事实。

如果选择卷,则还将返回分区。

选项

  • "physical_disk" ← (默认)

  • "virtual_disk" ← (默认)

  • "win32_disk_drive" ← (默认)

  • "partitions" ← (默认)

  • "volumes" ← (默认)

默认: ["physical_disk", "virtual_disk", "win32_disk_drive", "partitions", "volumes"]

注释

注意

示例

- name: Get disk facts
  community.windows.win_disk_facts:

- name: Output first disk size
  debug:
    var: ansible_facts.disks[0].size

- name: Convert first system disk into various formats
  debug:
    msg: '{{ disksize_gib }} vs {{ disksize_gib_human }}'
  vars:
    # Get first system disk
    disk: '{{ ansible_facts.disks|selectattr("system_disk")|first }}'

    # Show disk size in Gibibytes
    disksize_gib_human: '{{ disk.size|filesizeformat(true) }}'   # returns "223.6 GiB" (human readable)
    disksize_gib: '{{ (disk.size/1024|pow(3))|round|int }} GiB'  # returns "224 GiB" (value in GiB)

    # Show disk size in Gigabytes
    disksize_gb_human: '{{ disk.size|filesizeformat }}'        # returns "240.1 GB" (human readable)
    disksize_gb: '{{ (disk.size/1000|pow(3))|round|int }} GB'  # returns "240 GB" (value in GB)

- name: Output second disk serial number
  debug:
    var: ansible_facts.disks[1].serial_number

- name: get disk physical_disk and partition facts on the target
  win_disk_facts:
    filter:
      - physical_disk
      - partitions

返回的事实

此模块返回的事实将添加到 hostvars 主机事实中,并像任何其他主机事实一样按名称引用。它们不需要注册即可使用。

描述

ansible_disks

列表 / 元素=字符串

有关特定磁盘的详细信息。

返回: 如果找到磁盘

bootable

布尔值

有关特定磁盘是否为可启动磁盘的信息。

返回: 始终

示例: false

bus_type

字符串

特定磁盘的总线类型。

返回: 始终

示例: "SCSI"

clustered

布尔值

有关特定磁盘是否为群集(故障转移群集的一部分)的信息。

返回: 始终

示例: false

firmware_version

字符串

特定磁盘的固件版本。

返回: 始终

示例: "0001"

friendly_name

字符串

特定磁盘的友好名称。

返回: 始终

示例: "Red Hat VirtIO SCSI Disk Device"

guid

字符串

目标上特定磁盘的 GUID。

返回: 如果存在

示例: "{efa5f928-57b9-47fc-ae3e-902e85fbe77f}"

location

字符串

目标上特定磁盘的位置。

返回: 始终

示例: "PCIROOT(0)#PCI(0400)#SCSI(P00T00L00)"

manufacturer

字符串

特定磁盘的制造商。

返回: 始终

示例: "Red Hat"

model

字符串

特定磁盘的型号规格。

返回: 始终

示例: "VirtIO"

number

整数

特定磁盘的磁盘编号。

返回: 始终

示例: 0

operational_status

字符串

特定磁盘的运行状态。

返回: 始终

示例: "Online"

partition_count

整数

特定磁盘上的分区数。

返回: 始终

示例: 4

partition_style

字符串

特定磁盘的分区样式。

返回: 始终

示例: "MBR"

分区

列表 / 元素=字符串

关于指定磁盘上某个特定分区的详细信息。

返回: 如果存在

访问路径

字符串

特定分区的访问路径。

返回: 如果存在

示例: "\\\\?\\Volume{85bdc4a8-f8eb-11e6-80fa-806e6f6e6963}\\"

活动

布尔值

关于特定分区是否为活动分区的信息。

返回:如果特定磁盘的 partition_style 属性的值为“MBR”

示例: true

驱动器号

字符串

特定分区的驱动器号。

返回: 如果存在

示例: "C"

gpt_类型

字符串

特定分区的 gpt 类型。

返回:如果特定磁盘的 partition_style 属性的值为“GPT”

示例: "{e3c9e316-0b5c-4db8-817d-f92df00215ae}"

guid

字符串

特定分区的 GUID。

返回: 如果存在

示例: "{302e475c-6e64-4674-a8e2-2f1c7018bf97}"

隐藏

布尔值

关于特定分区是否隐藏的信息。

返回: 始终

示例: true

mbr_类型

整数

特定分区的 mbr 类型。

返回:如果特定磁盘的 partition_style 属性的值为“MBR”

示例: 7

无默认驱动器号

布尔值

关于特定分区是否具有默认驱动器号的信息。

返回:如果特定磁盘的 partition_style 属性的值为“GPT”

示例: true

number

整数

特定分区的编号。

返回: 始终

示例: 1

偏移量

整数

特定分区的偏移量。

返回: 始终

示例: 368050176

卷影副本

布尔值

关于特定分区是否为另一个分区的卷影副本的信息。

返回: 始终

示例: false

大小

整数

特定分区的大小(以字节为单位)。

返回: 始终

示例: 838860800

转换状态

整数

特定分区的转换状态。

返回: 始终

示例: 1

类型

字符串

特定分区的类型。

返回: 始终

示例: "IFS"

列表 / 元素=字符串

关于指定分区上某个特定卷的详细信息。

返回: 如果存在

分配单元大小

整数

特定卷的分配单元大小(以字节为单位)。

返回: 始终

示例: 4096

驱动器类型

字符串

特定卷的驱动器类型。

返回: 始终

示例: "固定"

健康状态

字符串

特定卷的健康状态。

返回: 始终

示例: "健康"

标签

字符串

特定卷的文件系统标签。

返回: 始终

示例: "系统保留"

对象 ID

字符串

特定卷的对象 ID。

返回: 始终

示例: "\\\\?\\Volume{85bdc4a9-f8eb-11e6-80fa-806e6f6e6963}\\"

路径

字符串

特定卷的路径。

返回: 始终

示例: "\\\\?\\Volume{85bdc4a9-f8eb-11e6-80fa-806e6f6e6963}\\"

大小

整数

特定卷的大小(以字节为单位)。

返回: 始终

示例: 838856704

剩余大小

整数

特定卷的剩余大小(以字节为单位)。

返回: 始终

示例: 395620352

类型

字符串

文件系统类型

返回: 始终

特定卷的文件系统类型。

路径

字符串

示例: "NTFS"

返回: 始终

目标上特定磁盘的路径。

物理磁盘

复杂

关于特定磁盘的物理磁盘属性的详细信息。

返回: 如果存在

已分配大小

整数

特定物理磁盘的已分配大小(以字节为单位)。

返回: 始终

示例: 240057409536

bus_type

字符串

特定物理磁盘的总线类型。

返回: 始终

示例: "SCSI"

可以加入池

布尔值

关于特定物理磁盘是否可以添加到存储池的信息。

返回: 始终

示例: false

无法加入池的原因

字符串

关于特定物理磁盘无法添加到存储池的原因的信息。

返回:如果 can_pool 属性的值为 false

示例: "容量不足"

设备 ID

字符串

特定物理磁盘的设备 ID。

返回: 始终

示例: "0"

friendly_name

字符串

特定物理磁盘的友好名称。

返回: 始终

示例: "PhysicalDisk0"

健康状态

字符串

特定物理磁盘的健康状态。

返回: 始终

示例: "健康"

启用指示

布尔值

关于是否为特定物理磁盘启用了指示的信息。

返回: 始终

示例: true

manufacturer

字符串

特定物理磁盘的制造商。

返回: 始终

示例: "SUSE"

介质类型

字符串

特定物理磁盘的介质类型。

返回: 始终

示例: "未指定"

model

字符串

特定物理磁盘的型号。

返回: 始终

示例: "Xen Block"

对象 ID

字符串

特定物理磁盘的对象 ID。

返回: 始终

示例: "{1}\\\\\\\\HOST\\\\root/Microsoft/Windows/Storage/Providers_v2\\\\SPACES_PhysicalDisk.ObjectId=\\\"{<object_id>}:PD:{<pd>}\\\""

operational_status

字符串

特定物理磁盘的操作状态。

返回: 始终

示例: "确定"

部分

布尔值

关于特定物理磁盘是否为部分的信息。

返回: 始终

示例: false

物理位置

字符串

特定物理磁盘的物理位置。

返回: 始终

示例: "集成 : 适配器 3 : 端口 0 : 目标 0 : LUN 0"

序列号

字符串

特定物理磁盘的序列号。

返回: 始终

示例: "b62beac80c3645e5877f"

大小

整数

特定物理磁盘的大小(以字节为单位)。

返回: 始终

示例: 240057409536

主轴转速

整数

特定物理磁盘的主轴转速(以 rpm 为单位)。

返回: 始终

示例: 4294967295

支持的用途

复杂

特定物理磁盘支持的用途类型。

返回: 始终

计数

整数

支持的用途类型的计数。

返回: 始终

示例: 5

字符串

支持的用途类型的列表。

返回: 始终

示例: "自动选择,热备用"

唯一 ID

字符串

特定物理磁盘的唯一 ID。

返回: 始终

示例: "3141463431303031"

用途类型

字符串

特定物理磁盘的用途类型。

返回: 始终

示例: "自动选择"

只读

布尔值

特定磁盘的只读状态。

返回: 始终

示例: true

扇区大小

整数

特定磁盘的扇区大小(以字节为单位)。

返回: 始终

示例: 4096

序列号

字符串

目标上特定磁盘的序列号。

返回: 始终

示例: "b62beac80c3645e5877f"

大小

整数

特定磁盘的大小(以字节为单位)。

返回: 始终

示例: 227727638528

系统磁盘

布尔值

关于特定磁盘是否为系统磁盘的信息。

返回: 始终

示例: true

唯一 ID

字符串

目标上特定磁盘的唯一 ID。

返回: 始终

示例: "3141463431303031"

虚拟磁盘

复杂

关于特定磁盘的虚拟磁盘属性的详细信息。

返回: 如果存在

访问

字符串

特定虚拟磁盘的访问权限。

返回: 始终

示例: "读/写"

已分配大小

整数

特定虚拟磁盘的已分配大小(以字节为单位)。

返回: 始终

示例: 240057409536

分配单元大小

整数

特定虚拟磁盘的分配单元大小(以字节为单位)。

返回: 始终

示例: 4096

可用副本

整数

特定虚拟磁盘的可用副本数。

返回: 如果存在

示例: 1

整数

特定虚拟磁盘的列数。

返回: 始终

示例: 2

启用重复数据删除

布尔值

关于是否为特定虚拟磁盘启用了重复数据删除的信息。

返回: 始终

示例: true

分离原因

字符串

特定虚拟磁盘的分离原因。

返回: 始终

示例: "无"

机箱感知

布尔值

关于特定虚拟磁盘是否为机箱感知的信息。

返回: 始终

示例: false

故障域感知

字符串

特定虚拟磁盘的故障域感知。

返回: 始终

示例: "物理磁盘"

在池上的占用

整数

特定虚拟磁盘在池中的占用空间大小(字节)。

返回: 始终

示例: 240057409536

friendly_name

字符串

特定虚拟磁盘的友好名称。

返回: 始终

示例: "Prod2 虚拟 磁盘"

整数

特定虚拟磁盘的组数。

返回: 始终

示例: 1

健康状态

字符串

特定虚拟磁盘的健康状态。

返回: 始终

示例: "健康"

交错

整数

特定虚拟磁盘的交错大小(字节)。

返回: 始终

示例: 102400

逻辑扇区大小

整数

特定虚拟磁盘的逻辑扇区大小(字节)。

返回: 始终

示例: 512

手动附加

布尔值

有关特定虚拟磁盘是否为手动附加的信息。

返回: 始终

示例: true

介质类型

字符串

特定虚拟磁盘的介质类型。

返回: 始终

示例: "未指定"

名称

字符串

特定虚拟磁盘的名称。

返回: 始终

示例: "vDisk1"

对象 ID

字符串

特定虚拟磁盘的对象 ID。

返回: 始终

示例: "{1}\\\\\\\\HOST\\\\root/Microsoft/Windows/Storage/Providers_v2\\\\SPACES_VirtualDisk.ObjectId=\\\"{<object_id>}:VD:{<vd>}\\\""

operational_status

字符串

特定虚拟磁盘的运行状态。

返回: 始终

示例: "确定"

奇偶校验布局

整数

特定虚拟磁盘的奇偶校验布局。

返回: 如果存在

示例: 1

物理磁盘冗余

整数

特定虚拟磁盘的物理磁盘冗余类型。

返回: 始终

示例: 1

物理扇区大小

整数

特定虚拟磁盘的物理扇区大小(字节)。

返回: 始终

示例: 4096

置备类型

字符串

特定虚拟磁盘的置备类型。

返回: 始终

示例: "精简"

读取缓存大小

整数

特定虚拟磁盘的读取缓存大小(字节)。

返回: 始终

示例: 0

请求无单点故障

布尔值

有关特定虚拟磁盘是否请求无单点故障的信息。

返回: 始终

示例: true

恢复设置名称

整数

特定虚拟磁盘的物理磁盘冗余类型。

返回: 始终

示例: 1

大小

整数

特定虚拟磁盘的大小(字节)。

返回: 始终

示例: 240057409536

快照

布尔值

有关特定虚拟磁盘是否为快照的信息。

返回: 始终

示例: false

分层

布尔值

有关特定虚拟磁盘是否为分层的信息。

返回: 始终

示例: true

唯一 ID

字符串

特定虚拟磁盘的唯一 ID。

返回: 始终

示例: "260542E4C6B01D47A8FA7630FD90FFDE"

唯一 ID 格式

字符串

特定虚拟磁盘的唯一 ID 格式。

返回: 始终

示例: "供应商特定"

写入缓存大小

整数

特定虚拟磁盘的写入缓存大小(字节)。

返回: 始终

示例: 100

win32_disk_drive

复杂

Win32_DiskDrive 类的表示。

返回: 如果存在

可用性

整数

设备的可用性和状态。

返回: 始终

每扇区字节数

整数

物理磁盘驱动器的每个扇区中的字节数。

返回: 始终

示例: 512

功能

列表 / 元素=字符串

媒体访问设备的功能数组。

例如,该设备可能支持随机访问 (3)、可移动媒体 (7) 和自动清洁 (9)。

返回: 始终

示例: [3, 4]

功能描述

列表 / 元素=字符串

Capabilities 数组中指示的任何访问设备功能的更详细解释列表。

请注意,此数组的每个条目都与 Capabilities 数组中位于相同索引的条目相关。

返回: 始终

示例: ["随机访问", "支持写入"]

标题

字符串

对象的简短描述。

返回: 始终

示例: "VMware 虚拟 磁盘 SCSI 磁盘 设备"

压缩方法

字符串

设备用于支持压缩的算法或工具。

返回: 始终

示例: "已压缩"

配置管理器错误代码

整数

Windows 配置管理器错误代码。

返回: 始终

示例: 0

配置管理器用户配置

布尔值

如果为 True,则设备正在使用用户定义的配置。

返回: 始终

示例: true

创建类名称

字符串

在实例创建中使用的继承链中出现的第一个具体类的名称。

当与类的其他键属性一起使用时,该属性允许唯一标识此类的所有实例

及其子类。

返回: 始终

示例: "Win32_DiskDrive"

默认块大小

整数

此设备的默认块大小(字节)。

返回: 始终

示例: 512

描述

字符串

对象的描述。

返回: 始终

示例: "磁盘驱动器"

设备 ID

字符串

磁盘驱动器与系统上其他设备的唯一标识符。

返回: 始终

示例: "\\\\.\\PHYSICALDRIVE0"

错误已清除

布尔值

如果为 True,则 LastErrorCode 中报告的错误现在已清除。

返回: 始终

示例: true

错误描述

字符串

有关 LastErrorCode 中记录的错误的更多信息,

以及有关可能采取的任何纠正措施的信息。

返回: 始终

错误方法

字符串

此设备支持的错误检测和纠正类型。

返回: 始终

固件版本

字符串

制造商分配的磁盘驱动器固件版本。

返回: 始终

示例: "1.0"

索引

整数

给定驱动器的物理驱动器编号。

此属性由从 IOCTL_STORAGE_GET_DEVICE_NUMBER 控制代码返回的 STORAGE_DEVICE_NUMBER 结构填充

值 0xffffffff 表示给定驱动器不映射到物理驱动器。

返回: 始终

示例: 0

安装日期

字符串

安装对象的日期和时间。 此属性不需要值来指示对象已安装。

返回: 始终

接口类型

字符串

物理磁盘驱动器的接口类型。

返回: 始终

示例: "SCSI"

上次错误代码

整数

逻辑设备报告的上次错误代码。

返回: 始终

manufacturer

字符串

磁盘驱动器制造商的名称。

返回: 始终

示例: "Seagate"

最大块大小

整数

此设备访问的介质的最大块大小(字节)。

返回: 始终

最大介质大小

整数

此设备支持的介质的最大介质大小(千字节)。

返回: 始终

介质已加载

布尔值

如果为 True,则磁盘驱动器的介质已加载,这意味着该设备具有可读的文件系统并且可访问。

对于固定磁盘驱动器,此属性将始终为 TRUE。

返回: 始终

示例: true

介质类型

字符串

此设备使用或访问的介质类型。

返回: 始终

示例: "固定硬盘介质"

最小块大小

整数

此设备访问的介质的最小块大小(字节)。

返回: 始终

model

字符串

磁盘驱动器的制造商型号。

返回: 始终

示例: "ST32171W"

名称

字符串

对象已知的标签。 当子类化时,可以重写该属性以成为键属性。

返回: 始终

示例: "\\\\\\\\.\\\\PHYSICALDRIVE0"

需要清洁

布尔值

如果为 True,则媒体访问设备需要清洁。

是否可以进行手动或自动清洁在 Capabilities 属性中指示。

返回: 始终

支持的媒体数量

整数

可以支持或插入的最大媒体数量

(当媒体访问设备支持多个单独的媒体时)。

返回: 始终

分区

整数

操作系统识别的此物理磁盘驱动器上的分区数。

返回: 始终

示例: 3

pnp 设备 ID

字符串

逻辑设备的 Windows 即插即用设备标识符。

返回: 始终

示例: "SCSI\\DISK&VEN_VMWARE&PROD_VIRTUAL_DISK\\5&1982005&0&000000"

电源管理功能

列表 / 元素=字符串

逻辑设备的特定电源相关功能的数组。

返回: 始终

支持电源管理

布尔值

如果为 True,则可以对设备进行电源管理(可以置于挂起模式等)。

该属性不指示当前是否启用了电源管理功能,

仅指示逻辑设备能够进行电源管理。

返回: 始终

scsi 总线

整数

磁盘驱动器的 SCSI 总线编号。

返回: 始终

示例: 0

scsi 逻辑单元

整数

磁盘驱动器的 SCSI 逻辑单元号 (LUN)。

返回: 始终

示例: 0

scsi 端口

整数

磁盘驱动器的 SCSI 端口号。

返回: 始终

示例: 0

scsi 目标 ID

整数

磁盘驱动器的 SCSI 标识符编号。

返回: 始终

示例: 0

每磁道扇区数

整数

此物理磁盘驱动器的每个磁道中的扇区数。

返回: 始终

示例: 63

序列号

字符串

制造商分配的用于标识物理媒体的编号。

返回: 始终

示例: "6000c298f34101b38cb2b2508926b9de"

签名

整数

磁盘标识。 此属性可用于标识共享资源。

返回: 始终

大小

整数

磁盘驱动器的大小。 它通过将圆柱总数、每个圆柱中的磁道数,

每个磁道中的扇区数和每个扇区中的字节数相乘来计算。

返回: 始终

示例: 53686402560

状态

字符串

对象的当前状态。 可以定义各种操作状态和非操作状态。

操作状态包括:“OK”、“已降级”和“即将失败”

(一个元素,例如启用 SMART 的硬盘驱动器,可能运行正常,但预测在不久的将来会发生故障)。

非操作状态包括:“错误”、“正在启动”、“正在停止”和“服务中”。

“服务中”可能适用于磁盘的镜像恢复、用户权限列表的重新加载或其他管理工作。

并非所有此类工作都在线进行,但托管元素既不“OK”也不处于其他状态之一。

返回: 始终

示例: "确定"

状态信息

整数

逻辑设备的状态。 如果此属性不适用于逻辑设备,则应使用值 5(不适用)。

返回: 始终

系统创建类名称

字符串

范围计算机的 CreationClassName 属性值。

返回: 始终

示例: "Win32_ComputerSystem"

system_name

字符串

范围系统的名称。

返回: 始终

示例: "WILMAR-TEST-123"

total_cylinders

整数

物理磁盘驱动器上的总柱面数。

注意:此属性的值是通过 BIOS 中断 13h 的扩展函数获得的。

如果驱动器使用转换方案来支持高容量磁盘大小,则该值可能不准确。

请咨询制造商以获取准确的驱动器规格。

返回: 始终

示例: 6527

total_heads

整数

磁盘驱动器上的总磁头数。

注意:此属性的值是通过 BIOS 中断 13h 的扩展函数获得的。

如果驱动器使用转换方案来支持高容量磁盘大小,则该值可能不准确。

请咨询制造商以获取准确的驱动器规格。

返回: 始终

示例: 255

total_sectors

整数

物理磁盘驱动器上的总扇区数。

注意:此属性的值是通过 BIOS 中断 13h 的扩展函数获得的。

如果驱动器使用转换方案来支持高容量磁盘大小,则该值可能不准确。

请咨询制造商以获取准确的驱动器规格。

返回: 始终

示例: 104856255

total_tracks

整数

物理磁盘驱动器上的总磁道数。

注意:此属性的值是通过 BIOS 中断 13h 的扩展函数获得的。

如果驱动器使用转换方案来支持高容量磁盘大小,则该值可能不准确。

请咨询制造商以获取准确的驱动器规格。

返回: 始终

示例: 1664385

tracks_per_cylinder

整数

物理磁盘驱动器上每个柱面中的磁道数。

注意:此属性的值是通过 BIOS 中断 13h 的扩展函数获得的。

如果驱动器使用转换方案来支持高容量磁盘大小,则该值可能不准确。

请咨询制造商以获取准确的驱动器规格。

返回: 始终

示例: 255

作者

  • Marc Tschapek (@marqelme)