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"

partitions

列表 / 元素=字符串

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

返回:如果存在

access_paths

字符串

特定分区的访问路径。

返回:如果存在

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

active

布尔值

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

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

示例: true

drive_letter

字符串

特定分区的驱动器盘符。

返回:如果存在

示例: "C"

gpt_type

字符串

特定分区的GPT类型。

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

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

guid

字符串

特定分区的GUID。

返回:如果存在

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

hidden

布尔值

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

返回:始终

示例: true

mbr_type

整数

特定分区的MBR类型。

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

示例: 7

no_default_driveletter

布尔值

特定分区是否具有默认驱动器盘符的信息。

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

示例: true

number

整数

特定分区的编号。

返回:始终

示例: 1

offset

整数

特定分区的偏移量。

返回:始终

示例: 368050176

shadow_copy

布尔值

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

返回:始终

示例: false

size

整数

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

返回:始终

示例: 838860800

transition_state

整数

特定分区的转换状态。

返回:始终

示例: 1

type

字符串

特定分区的类型。

返回:始终

示例: "IFS"

volumes

列表 / 元素=字符串

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

返回:如果存在

allocation_unit_size

整数

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

返回:始终

示例: 4096

drive_type

字符串

特定卷的驱动器类型。

返回:始终

示例: "Fixed"

health_status

字符串

特定卷的健康状态。

返回:始终

示例: "Healthy"

label

字符串

特定卷的文件系统标签。

返回:始终

示例: "System Reserved"

object_id

字符串

特定卷的对象ID。

返回:始终

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

path

字符串

特定卷的路径。

返回:始终

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

size

整数

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

返回:始终

示例: 838856704

size_remaining

整数

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

返回:始终

示例: 395620352

type

字符串

特定卷的文件系统类型。

返回:始终

示例: "NTFS"

path

字符串

目标上特定磁盘的路径。

返回:始终

示例: "\\\\?\\scsi#disk&ven_red_hat&prod_virtio#4&23208fd0&1&000000#{<id>}"

physical_disk

复杂

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

返回:如果存在

allocated_size

整数

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

返回:始终

示例: 240057409536

bus_type

字符串

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

返回:始终

示例: "SCSI"

can_pool

布尔值

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

返回:始终

示例: false

cannot_pool_reason

字符串

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

返回:如果can_pool属性值为false

示例: "Insufficient Capacity"

device_id

字符串

特定物理磁盘的设备ID。

返回:始终

示例: "0"

friendly_name

字符串

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

返回:始终

示例: "PhysicalDisk0"

health_status

字符串

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

返回:始终

示例: "Healthy"

indication_enabled

布尔值

特定物理磁盘是否启用指示信息。

返回:始终

示例: true

manufacturer

字符串

特定物理磁盘的制造商。

返回:始终

示例: "SUSE"

media_type

字符串

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

返回:始终

示例: "UnSpecified"

model

字符串

特定物理磁盘的型号。

返回:始终

示例: "Xen Block"

object_id

字符串

特定物理磁盘的对象ID。

返回:始终

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

operational_status

字符串

特定物理磁盘的运行状态。

返回:始终

示例: "OK"

partial

布尔值

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

返回:始终

示例: false

physical_location

字符串

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

返回:始终

示例: "Integrated : Adapter 3 : Port 0 : Target 0 : LUN 0"

serial_number

字符串

特定物理磁盘的序列号。

返回:始终

示例: "b62beac80c3645e5877f"

size

整数

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

返回:始终

示例: 240057409536

spindle_speed

整数

特定物理磁盘的转速(rpm)。

返回:始终

示例: 4294967295

supported_usages

复杂

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

返回:始终

Count

整数

支持的使用类型的数量。

返回:始终

示例: 5

value

字符串

支持的使用类型的列表。

返回:始终

示例: "Auto-Select, Hot Spare"

unique_id

字符串

特定物理磁盘的唯一ID。

返回:始终

示例: "3141463431303031"

usage_type

字符串

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

返回:始终

示例: "Auto-Select"

read_only

布尔值

特定磁盘的只读状态。

返回:始终

示例: true

sector_size

整数

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

返回:始终

示例: 4096

serial_number

字符串

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

返回:始终

示例: "b62beac80c3645e5877f"

size

整数

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

返回:始终

示例: 227727638528

system_disk

布尔值

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

返回:始终

示例: true

unique_id

字符串

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

返回:始终

示例: "3141463431303031"

virtual_disk

复杂

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

返回:如果存在

access

字符串

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

返回:始终

示例: "Read/Write"

allocated_size

整数

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

返回:始终

示例: 240057409536

allocation_unit_size

整数

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

返回:始终

示例: 4096

available_copies

整数

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

返回:如果存在

示例: 1

columns

整数

特定虚拟磁盘的列数。

返回:始终

示例: 2

deduplication_enabled

布尔值

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

返回:始终

示例: true

detached_reason

字符串

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

返回:始终

示例: "None"

enclosure_aware

布尔值

特定虚拟磁盘是否支持机箱感知的信息。

返回:始终

示例: false

fault_domain_awareness

字符串

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

返回:始终

示例: "PhysicalDisk"

footprint_on_pool

整数

特定虚拟磁盘在池中的占用空间(以字节为单位)。

返回:始终

示例: 240057409536

friendly_name

字符串

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

返回:始终

示例: "Prod2 Virtual Disk"

groups

整数

特定虚拟磁盘的组数。

返回:始终

示例: 1

health_status

字符串

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

返回:始终

示例: "Healthy"

inter_leave

整数

特定虚拟磁盘的交错字节数。

返回:始终

示例: 102400

logical_sector_size

整数

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

返回:始终

示例: 512

manual_attach

布尔值

指示特定虚拟磁盘是否手动附加。

返回:始终

示例: true

media_type

字符串

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

返回:始终

示例: "Unspecified"

name

字符串

特定虚拟磁盘的名称。

返回:始终

示例: "vDisk1"

object_id

字符串

特定虚拟磁盘的对象 ID。

返回:始终

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

operational_status

字符串

特定虚拟磁盘的操作状态。

返回:始终

示例: "OK"

parity_layout

整数

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

返回:如果存在

示例: 1

physical_disk_redundancy

整数

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

返回:始终

示例: 1

physical_sector_size

整数

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

返回:始终

示例: 4096

provisioning_type

字符串

特定虚拟磁盘的预配类型。

返回:始终

示例: "Thin"

read_cache_size

整数

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

返回:始终

示例: 0

request_no_spof

布尔值

指示特定虚拟磁盘是否请求无单点故障。

返回:始终

示例: true

resiliency_setting_name

整数

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

返回:始终

示例: 1

size

整数

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

返回:始终

示例: 240057409536

snapshot

布尔值

指示特定虚拟磁盘是否为快照。

返回:始终

示例: false

tiered

布尔值

指示特定虚拟磁盘是否分层。

返回:始终

示例: true

unique_id

字符串

特定虚拟磁盘的唯一 ID。

返回:始终

示例: "260542E4C6B01D47A8FA7630FD90FFDE"

unique_id_format

字符串

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

返回:始终

示例: "Vendor Specific"

write_cache_size

整数

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

返回:始终

示例: 100

win32_disk_drive

复杂

Win32_DiskDrive 类的表示。

返回:如果存在

availability

整数

设备的可用性和状态。

返回:始终

bytes_per_sector

整数

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

返回:始终

示例: 512

capabilities

列表 / 元素=字符串

介质访问设备的功能数组。

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

返回:始终

示例: [3, 4]

capability_descriptions

列表 / 元素=字符串

Capabilities 数组中任何访问设备功能的更详细说明列表。

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

返回:始终

示例: ["Random Access", "Supports Writing"]

caption

字符串

对象的简短描述。

返回:始终

示例: "VMware Virtual disk SCSI Disk Device"

compression_method

字符串

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

返回:始终

示例: "Compressed"

config_manager_error_code

整数

Windows 配置管理器错误代码。

返回:始终

示例: 0

config_manager_user_config

布尔值

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

返回:始终

示例: true

creation_class_name

字符串

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

与类的其他关键属性一起使用时,该属性允许此类及其子类的所有实例

都被唯一标识。

返回:始终

示例: "Win32_DiskDrive"

default_block_size

整数

此设备的默认块大小(以字节为单位)。

返回:始终

示例: 512

description

字符串

对象的描述。

返回:始终

示例: "Disk drive"

device_id

字符串

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

返回:始终

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

error_cleared

布尔值

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

返回:始终

示例: true

error_description

字符串

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

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

返回:始终

error_methodology

字符串

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

返回:始终

firmware_revision

字符串

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

返回:始终

示例: "1.0"

index

整数

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

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

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

返回:始终

示例: 0

install_date

字符串

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

返回:始终

interface_type

字符串

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

返回:始终

示例: "SCSI"

last_error_code

整数

逻辑设备报告的最后一个错误代码。

返回:始终

manufacturer

字符串

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

返回:始终

示例: "Seagate"

max_block_size

整数

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

返回:始终

max_media_size

整数

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

返回:始终

media_loaded

布尔值

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

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

返回:始终

示例: true

media_type

字符串

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

返回:始终

示例: "Fixed hard disk media"

min_block_size

整数

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

返回:始终

model

字符串

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

返回:始终

示例: "ST32171W"

name

字符串

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

返回:始终

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

needs_cleaning

布尔值

如果为 True,则介质访问设备需要清洁。

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

返回:始终

number_of_media_supported

整数

可以支持或插入的最大介质数量

(当介质访问设备支持多个单个介质时)。

返回:始终

partitions

整数

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

返回:始终

示例: 3

pnp_device_id

字符串

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

返回:始终

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

power_management_capabilities

列表 / 元素=字符串

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

返回:始终

power_management_supported

布尔值

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

此属性并不表示当前启用了电源管理功能,

而只是表示逻辑设备能够进行电源管理。

返回:始终

scsi_bus

整数

磁盘驱动器的 SCSI 总线号。

返回:始终

示例: 0

scsi_logical_unit

整数

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

返回:始终

示例: 0

scsi_port

整数

磁盘驱动器的 SCSI 端口号。

返回:始终

示例: 0

scsi_target_id

整数

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

返回:始终

示例: 0

sectors_per_track

整数

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

返回:始终

示例: 63

serial_number

字符串

制造商分配的用于标识物理介质的编号。

返回:始终

示例: "6000c298f34101b38cb2b2508926b9de"

signature

整数

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

返回:始终

size

整数

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

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

返回:始终

示例: 53686402560

status

字符串

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

运行状态包括:“OK”、“Degraded”和“Pred Fail”(

元素(例如支持 SMART 的硬盘驱动器)可能运行正常,但在不久的将来可能会出现故障)。

非运行状态包括:“Error”、“Starting”、“Stopping”和“Service”。

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

并非所有此类工作都在线,但被管理的元素既不是“OK”,也不是其他状态之一。

返回:始终

示例: "OK"

status_info

整数

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

返回:始终

system_creation_class_name

字符串

范围计算机的 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)