community.vmware.vmware_guest_disk 模块 – 管理给定 vCenter 基础架构中虚拟机的相关磁盘
注意
此模块是 community.vmware 集合 (版本 5.2.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.vmware
。
要在 playbook 中使用它,请指定:community.vmware.vmware_guest_disk
。
概要
此模块可用于添加、删除和更新属于给定虚拟机的磁盘。
此模块具有破坏性,请在继续操作之前仔细阅读文档。
删除指定的磁盘时请务必小心,因为这可能会导致数据丢失。
参数
参数 |
注释 |
---|---|
虚拟机所属的数据中心名称。 |
|
要添加或删除的磁盘列表。 使用此列表提供虚拟磁盘的相关信息。 默认值: |
|
仅适用于 Paravirtual SCSI 控制器。 允许在两台虚拟机之间共享 SCSI 总线。 选项
|
|
此值允许在两台机器之间共享 RDM。 持有 RDM 的主机器使用默认值 持有 RDM 的辅助机器使用 选项
|
|
添加此参数是为了管理连接其他类型控制器的磁盘,例如 SATA 或 NVMe。 如果未指定 选项
|
|
要用于磁盘的数据存储或数据存储集群的名称。 当磁盘 |
|
磁盘模式的类型。如果未指定,则对新磁盘使用 如果设置为 如果设置为 如果设置为 当磁盘 选项
|
|
要使用的现有磁盘映像。文件名必须已存在于数据存储中。 请使用 当磁盘 |
|
此部分指定存储 I/O 资源的份额和限制。 当 |
|
此部分指定限制值,即使有可用资源,虚拟机的使用率也不会超过此限制。 |
|
指定用户可以为给定磁盘添加的不同类型的份额。 |
|
指定份额部分的不同级别。 选项
|
|
当 |
|
对于 仅当 |
|
SCSI 控制器编号。每个虚拟机最多允许 4 个 SCSI 控制器。 选项
|
|
SCSI 控制器的类型。此值仅在第一次出现 SCSI 控制器时才需要。 如果 SCSI 控制器已存在或 选项
|
|
iolimit 部分说明用户可以为磁盘添加的所有不同类型的份额。 当磁盘 |
|
说明份额部分的不同级别。 选项
|
|
当 |
|
虚拟磁盘的共享模式。 设置共享意味着多个虚拟机可以写入虚拟磁盘。 仅当 选项
|
|
磁盘存储大小。 如果指定了大小,则必须指定单位。大小数字和单位之间不允许有空格。 即使有多个 size* 参数可用,也只考虑磁盘元素中的第一次出现。 |
|
以 GB 为单位的磁盘存储大小。 |
|
以 KB 为单位的磁盘存储大小。 |
|
以 MB 为单位的磁盘存储大小。 |
|
以 TB 为单位的磁盘存储大小。 |
|
磁盘状态。 如果设置为 如果设置为 或者磁盘存在但大小不同,则会增加磁盘大小,不允许减小磁盘大小。 选项
|
|
磁盘类型,如果未指定,则对新磁盘使用 选项
|
|
磁盘单元号。 有效值范围为 0 到 15,SCSI 控制器除外,其值为 7。 对于虚拟硬件版本 14 或更高的虚拟 SCSI 控制器,有效值范围为 0 到 64,SCSI 控制器除外,其值为 7。 SATA 控制器的有效值范围为 0 到 29。 NVME 控制器的有效值范围为 0 到 14。 IDE 控制器的有效值范围为 0 到 1。 |
|
目标文件夹,查找现有客户机的绝对路径或相对路径。 如果找到多个名称相同的虚拟机,则此参数为必需参数。 文件夹应包含数据中心。ESX 的数据中心是 ha-datacenter 示例 folder: /ha-datacenter/vm folder: ha-datacenter/vm folder: /datacenter1/vm folder: datacenter1/vm folder: /datacenter1/vm/folder1 folder: datacenter1/vm/folder1 folder: /folder1/datacenter1/vm folder: folder1/datacenter1/vm folder: /folder1/datacenter1/vm/folder2 |
|
vSphere vCenter 或 ESXi 服务器的主机名或 IP 地址。 如果任务中未指定此值,则将使用环境变量 |
|
vSphere vCenter 或 ESXi 服务器的密码。 如果任务中未指定此值,则将使用环境变量 |
|
将接收所有 HTTPS 请求并转发它们的 HTTP 代理的端口。 如果任务中未指定此值,则将使用环境变量 |
|
是否使用 VMware 实例 UUID 而不是 BIOS UUID。 选项
|
|
vSphere vCenter 或 ESXi 服务器的用户名。 如果任务中未指定此值,则将使用环境变量 |
|
允许在 SSL 证书无效时进行连接。当证书不受信任时,将其设置为 如果任务中未指定此值,则将使用环境变量 选项
|
注释
注意
所有模块都需要 API 写入访问权限,因此不受免费 ESXi 许可证支持。
所有变量和 VMware 对象名称都区分大小写。
示例
- name: Add disks to virtual machine using UUID
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
uuid: 421e4592-c069-924d-ce20-7e7533fab926
disk:
- size_mb: 10
type: thin
datastore: datacluster0
state: present
scsi_controller: 1
unit_number: 1
scsi_type: 'paravirtual'
disk_mode: 'persistent'
- size_gb: 10
type: eagerzeroedthick
state: present
autoselect_datastore: true
scsi_controller: 2
scsi_type: 'buslogic'
unit_number: 12
disk_mode: 'independent_persistent'
- size: 10Gb
type: eagerzeroedthick
state: present
autoselect_datastore: true
scsi_controller: 2
scsi_type: 'buslogic'
unit_number: 1
disk_mode: 'independent_nonpersistent'
- filename: "[datastore1] path/to/existing/disk.vmdk"
delegate_to: localhost
register: disk_facts
- name: Add disks with specified shares to the virtual machine
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
disk:
- size_gb: 1
type: thin
datastore: datacluster0
state: present
scsi_controller: 1
unit_number: 1
disk_mode: 'independent_persistent'
shares:
level: custom
level_value: 1300
delegate_to: localhost
register: test_custom_shares
- name: Add physical raw device mapping to virtual machine using name
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: false
name: "Test_VM"
disk:
- type: rdm
state: present
scsi_controller: 1
unit_number: 5
rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453
compatibility_mode: 'physicalMode'
- name: Add virtual raw device mapping to virtual machine using name and virtual mode
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: false
name: "Test_VM"
disk:
- type: rdm
state: present
scsi_controller: 1
unit_number: 5
rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453
compatibility_mode: 'virtualMode'
disk_mode: 'persistent'
- name: Add raw device mapping to virtual machine with Physical bus sharing
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: false
name: "Test_VM"
disk:
- type: rdm
state: present
scsi_controller: 1
unit_number: 5
rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453
compatibility_mode: 'virtualMode'
disk_mode: 'persistent'
bus_sharing: physicalSharing
- name: Add raw device mapping to virtual machine with Physical bus sharing and clustered disk
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: false
name: "Test_VM"
disk:
- type: rdm
state: present
scsi_controller: 1
unit_number: 5
compatibility_mode: 'virtualMode'
disk_mode: 'persistent'
bus_sharing: physicalSharing
filename: "[datastore1] path/to/rdm/disk-marker.vmdk"
- name: create new disk with custom IO limits and shares in IO Limits
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
disk:
- size_gb: 1
type: thin
datastore: datacluster0
state: present
scsi_controller: 1
unit_number: 1
disk_mode: 'independent_persistent'
iolimit:
limit: 1506
shares:
level: custom
level_value: 1305
delegate_to: localhost
register: test_custom_IoLimit_shares
- name: Remove disks from virtual machine using name
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
name: VM_225
disk:
- state: absent
scsi_controller: 1
unit_number: 1
delegate_to: localhost
register: disk_facts
- name: Remove disk from virtual machine using moid
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
moid: vm-42
disk:
- state: absent
scsi_controller: 1
unit_number: 1
delegate_to: localhost
register: disk_facts
- name: Remove disk from virtual machine but keep the VMDK file on the datastore
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
name: VM_225
disk:
- state: absent
scsi_controller: 1
unit_number: 2
destroy: false
delegate_to: localhost
register: disk_facts
- name: Add disks to virtual machine using UUID to SATA and NVMe controller
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: false
uuid: 421e4592-c069-924d-ce20-7e7533fab926
disk:
- size_mb: 256
type: thin
datastore: datacluster0
state: present
controller_type: sata
controller_number: 1
unit_number: 1
disk_mode: 'persistent'
- size_gb: 1
state: present
autoselect_datastore: true
controller_type: nvme
controller_number: 2
unit_number: 3
disk_mode: 'independent_persistent'
delegate_to: localhost
register: disk_facts
- name: Add a new vPMem disk to virtual machine to SATA controller
community.vmware.vmware_guest_disk:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: false
name: VM_226
disk:
- type: vpmemdisk
size_gb: 1
state: present
controller_type: sata
controller_number: 1
unit_number: 2
delegate_to: localhost
register: disk_facts
返回值
常见的返回值已在此处记录,以下是此模块独有的字段
键 |
描述 |
---|---|
每个任务的结果,键是基于0的索引,与定义任务的顺序相同 返回值:始终返回 示例: |
|
管理虚拟机的磁盘后,关于磁盘的元数据 返回值:始终返回 示例: |
作者
Abhijeet Kasurde (@Akasurde)