vmware.vmware_rest.vcenter_vm_hardware_disk 模块 – 向虚拟机添加精简配置的虚拟磁盘

注意

此模块是 vmware.vmware_rest 集合 (版本 4.3.0) 的一部分。

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

要安装它,请使用:ansible-galaxy collection install vmware.vmware_rest。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:vmware.vmware_rest.vcenter_vm_hardware_disk

vmware.vmware_rest 0.1.0 中的新增功能

概要

  • 向虚拟机添加虚拟磁盘。磁盘(配置)类型始终为“精简”。添加虚拟磁盘时,可能会创建一个新的 VMDK 文件,或者可以使用现有的 VMDK 文件作为虚拟磁盘的备份。

要求

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

  • vSphere 7.0.3 或更高版本

  • python >= 3.6

  • aiohttp

参数

参数

注释

backing

字典

虚拟磁盘的现有物理资源备份。必须指定 *backing* 或 *new_vmdk* 中的一个。

如果未设置,则虚拟磁盘将不会连接到现有备份。在 *state=[‘present’]* 中需要。

有效属性为:

  • type (str): 此选项定义虚拟磁盘的有效备份类型。([‘present’])

此键在 [‘present’] 中是必需的。

  • 可接受的值

  • VMDK_FILE

  • vmdk_file (str): 作为虚拟磁盘备份的 VMDK 文件的路径。

此字段是可选的,仅当 *type* 的值为 VMDK_FILE 时才相关。([‘present’])

disk

字符串

虚拟磁盘标识符。

该参数必须是 vmware.vmware_rest.vcenter_vm_hardware_disk 返回的资源的 ID。在 *state=[‘absent’, ‘present’]* 中需要。

ide

字典

用于将设备连接到虚拟 IDE 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,请求将失败。

有效属性为:

  • primary (bool): 指定应将设备连接到虚拟机的 primary IDE 适配器还是 secondary IDE 适配器的标志。

如果未设置,服务器将选择具有可用连接的适配器。如果没有可用的 IDE 连接,请求将被拒绝。([‘present’])

  • master (bool): 指定设备应是 IDE 适配器上的主设备还是从设备的标志。

如果未设置,服务器将选择可用的连接类型。如果没有可用的 IDE 连接,请求将被拒绝。([‘present’])

label

字符串

项目的名称

new_vmdk

字典

用于为虚拟磁盘创建新的 VMDK 备份的规范。必须指定 *backing* 或 *new_vmdk* 中的一个。

如果未设置,则不会创建新的 VMDK 备份。

有效属性为:

  • name (str): VMDK 文件的基本名称。名称不应包含 ‘.vmdk’ 文件扩展名。

如果未设置,服务器将选择一个名称(从虚拟机的名称派生)。([‘present’])

  • capacity (int): 虚拟磁盘备份的容量(以字节为单位)。

如果未设置,则默认为特定于来宾的容量。([‘present’])

  • storage_policy (dict): *storage_policy_spec* 结构包含有关要与 VMDK 文件关联的存储策略的信息。

如果未设置,则应用目标数据存储的默认存储策略(如果适用)。目前,基于对象的存储:VVol 和 vSAN 仅支持默认存储策略。对于非对象数据存储,如果未设置,则不会将任何存储策略与 VMDK 文件关联。([‘present’])

  • 可接受的键

  • policy (string): 应与 VMDK 文件关联的存储策略的标识符。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_storage_policies_info 返回的资源的 ID。

nvme

字典

用于将设备连接到虚拟 NVMe 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,请求将失败。在 *state=[‘present’]* 中需要。

有效属性为:

  • bus (int): 应将设备连接到的适配器的总线号。([‘present’])

此键在 [‘present’] 中是必需的。

  • unit (int): 设备的单元号。

如果未设置,服务器将选择指定适配器上可用的单元号。如果适配器上没有可用的连接,请求将被拒绝。([‘present’])

sata

字典

用于将设备连接到虚拟 SATA 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,请求将失败。在 *state=[‘present’]* 中需要。

有效属性为:

  • bus (int): 应将设备连接到的适配器的总线号。([‘present’])

此键在 [‘present’] 中是必需的。

  • unit (int): 设备的单元号。

如果未设置,服务器将选择指定适配器上可用的单元号。如果适配器上没有可用的连接,请求将被拒绝。([‘present’])

scsi

字典

用于将设备连接到虚拟 SCSI 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,请求将失败。在 *state=[‘present’]* 中需要。

有效属性为:

  • bus (int): 应将设备连接到的适配器的总线号。([‘present’])

此键在 [‘present’] 中是必需的。

  • unit (int): 设备的单元号。

如果未设置,服务器将选择指定适配器上可用的单元号。如果适配器上没有可用的连接,请求将被拒绝。([‘present’])

session_timeout

浮点数

在 vmware.vmware_rest 2.1.0 中添加

客户端会话的超时设置。

整个操作(包括连接建立、请求发送和响应)的最大秒数。

默认值为 300 秒。

state

字符串

选项

  • "absent"

  • "present" ← (默认)

类型

字符串

host_bus_adapter_type 枚举类型定义了可用于将虚拟存储设备连接到虚拟机的有效主机总线适配器类型。

选项

  • "IDE"

  • "NVME"

  • "SATA"

  • "SCSI"

vcenter_hostname

字符串 / 必填

vSphere vCenter 的主机名或 IP 地址

如果任务中未指定此值,则将使用环境变量 VMWARE_HOST 的值。

vcenter_password

字符串 / 必填

vSphere vCenter 密码

如果任务中未指定此值,则将使用环境变量 VMWARE_PASSWORD 的值。

vcenter_rest_log_file

字符串

您可以使用此可选参数来设置日志文件的位置。

此文件将用于记录 HTTP REST 交互。

该文件将存储在运行模块的主机上。

如果任务中未指定此值,则将使用

环境变量 VMWARE_REST_LOG_FILE 的值。

vcenter_username

字符串 / 必填

vSphere vCenter 用户名

如果任务中未指定此值,则将使用环境变量 VMWARE_USER 的值。

vcenter_validate_certs

布尔值

允许在 SSL 证书无效时连接。当证书不受信任时,设置为 false

如果任务中未指定此值,则将使用环境变量 VMWARE_VALIDATE_CERTS 的值。

选项

  • false

  • true ← (默认)

vm

字符串 / 必填

虚拟机标识符。

此参数必须是 vmware.vmware_rest.vcenter_vm_info 返回的资源 ID。此参数是必需的。

备注

注意

  • 在 vSphere 7.0.3 上测试

示例

- name: Look up the VM called test_vm1 in the inventory
  register: search_result
  vmware.vmware_rest.vcenter_vm_info:
    filter_names:
    - test_vm1

- name: Collect information about a specific VM
  vmware.vmware_rest.vcenter_vm_info:
    vm: '{{ search_result.value[0].vm }}'
  register: test_vm1_info

- name: Create a new disk
  vmware.vmware_rest.vcenter_vm_hardware_disk:
    vm: '{{ test_vm1_info.id }}'
    type: SATA
    new_vmdk:
      capacity: 320000
  register: my_new_disk

- name: Delete the disk
  vmware.vmware_rest.vcenter_vm_hardware_disk:
    vm: '{{ test_vm1_info.id }}'
    disk: '{{ my_new_disk.id }}'
    state: absent
  register: _result

返回值

常用返回值已在 此处 文档中说明,以下是此模块特有的字段

描述

id

字符串

资源的 moid

返回:成功时

示例: "16000"

字典

创建新的磁盘

返回:成功时

示例: {"backing": {"type": "VMDK_FILE", "vmdk_file": "[local] test_vm1/test_vm1_1.vmdk"}, "capacity": 320000, "label": "Hard disk 2", "sata": {"bus": 0, "unit": 0}, "type": "SATA"}

作者

  • Ansible 云团队 (@ansible-collections)