vmware.vmware_rest.vcenter_vm 模块 – 创建虚拟机。

注意

此模块是 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

vmware.vmware_rest 0.1.0 中的新增功能

概要

  • 创建虚拟机。

要求

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

  • vSphere 7.0.3 或更高版本

  • python >= 3.6

  • aiohttp

参数

参数

注释

bios_uuid

字符串

虚拟机的 128 位 SMBIOS UUID,表示为“12345678-abcd-1234-cdef-123456789abc”格式的十六进制字符串。

如果未设置,将生成。

boot

字典

引导配置。

如果未设置,将使用特定于客户机的默认值。

有效属性为

  • type (str): 此选项定义虚拟机的有效固件类型。([‘present’])

  • 可接受的值

  • BIOS

  • EFI

  • efi_legacy_boot (bool): 指示是否使用 EFI 传统引导模式的标志。

如果未设置,则默认为推荐用于客户机操作系统并受虚拟硬件版本支持的值。([‘present’])

  • network_protocol (str): 此选项定义通过网络使用 EFI 固件引导虚拟机时支持的有效网络引导协议。([‘present’])

  • 可接受的值

  • IPV4

  • IPV6

  • delay (int): 以毫秒为单位的延迟,在虚拟机启动后开始固件引导过程之前。此延迟可用于为用户提供连接到虚拟机控制台并进入 BIOS 设置模式的时间窗口。

如果未设置,则默认值为 0。([‘present’])

  • retry (bool): 指示虚拟机在失败后是否应自动重试引导过程的标志。

如果未设置,则默认值为 false。([‘present’])

  • retry_delay (int): 失败后重试引导过程之前的延迟(以毫秒为单位);仅当 *retry* 为 true 时适用。

如果未设置,则默认值为 10000。([‘present’])

  • enter_setup_mode (bool): 指示固件引导过程是否应在虚拟机下次引导时自动进入设置模式的标志。请注意,一旦虚拟机进入设置模式,此标志将自动重置为 false。

如果未设置,则值保持不变。([‘present’])

boot_devices

列表 / 元素=字典

引导设备配置。

如果未设置,将使用特定于服务器的引导序列。

有效属性为

  • type (str): 此选项定义可作为可引导设备使用的有效设备类型。([‘present’])

此键与 [‘present’] 一起是必需的。

  • 可接受的值

  • CDROM

  • DISK

  • ETHERNET

  • FLOPPY

cdroms

列表 / 元素=字典

CD-ROM 列表。

如果未设置,则不会创建任何 CD-ROM 设备。

有效属性为

  • type (str): 此选项定义可用于将 Cdrom 附加到虚拟机的有效主机总线适配器类型。([‘present’])

  • 可接受的值

  • IDE

  • SATA

  • ide (dict): 将设备附加到虚拟 IDE 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,则请求将失败。([‘present’])

  • 可接受的键

  • primary (boolean): 指定设备是否应附加到虚拟机的初级或次级 IDE 适配器的标志。

如果未设置,服务器将选择具有可用连接的适配器。如果没有任何 IDE 连接可用,则请求将被拒绝。

  • master (boolean): 指定设备是否应为 IDE 适配器上的主设备或从设备的标志。

如果未设置,服务器将选择可用的连接类型。如果没有任何 IDE 连接可用,则请求将被拒绝。

  • sata (dict): 将设备附加到虚拟 SATA 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,则请求将失败。([‘present’])

  • 可接受的键

  • bus (integer): 应将设备附加到的适配器的总线号。

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

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

  • backing (dict): 虚拟 CD-ROM 设备的物理资源支持。

如果未设置,则默认为自动检测合适的宿主设备。([‘present’])

  • 可接受的键

  • 类型 (字符串): 此选项定义虚拟 CD-ROM 设备的有效后端类型。

此字段的接受值

  • CLIENT_DEVICE

  • HOST_DEVICE

  • ISO_FILE

  • iso_file (字符串): 应作为虚拟 CD-ROM 设备后端使用的镜像文件的路径。

此字段是可选的,只有当type的值为 ISO_FILE 时才相关。

  • host_device (字符串): 应作为虚拟 CD-ROM 设备后端使用的设备名称。

如果未设置,则虚拟 CD-ROM 设备将配置为自动检测合适的宿主设备。

  • device_access_type (字符串): 此选项定义虚拟 CD-ROM 设备物理设备封包的有效设备访问类型。

此字段的接受值

  • EMULATION

  • PASSTHRU

  • PASSTHRU_EXCLUSIVE

  • start_connected (布尔值): 指示虚拟机启动时是否应连接虚拟设备的标志。

如果未设置,则默认为 false。([‘present’])

  • allow_guest_control (布尔值): 指示客户机是否可以连接和断开设备的标志。

如果未设置,则默认为 false。([‘present’])

cpu

字典

CPU 配置。

如果未设置,将使用特定于客户机的默认值。

有效属性为

  • count (整数): 新的 CPU 核心数。虚拟机中的 CPU 核心数必须是每个插槽核心数的倍数。

CPU 计数的支持范围受虚拟机的已配置客户机操作系统和虚拟硬件版本的限制。

如果虚拟机正在运行,则只有在hot_add_enabled为 true 时才能增加 CPU 核心数,只有在hot_remove_enabled为 true 时才能减少 CPU 核心数。

如果未设置,则值保持不变。([‘present’])

  • cores_per_socket (整数): 每个插槽新的 CPU 核心数。虚拟机中的 CPU 核心数必须是每个插槽核心数的倍数。

如果未设置,则值保持不变。([‘present’])

  • hot_add_enabled (布尔值): 指示虚拟机运行时是否启用添加 CPU 的标志。

只有在虚拟机关闭时才能修改此字段。

如果未设置,则值保持不变。([‘present’])

  • hot_remove_enabled (布尔值): 指示虚拟机运行时是否启用移除 CPU 的标志。

只有在虚拟机关闭时才能修改此字段。

如果未设置,则值保持不变。([‘present’])

数据存储

字符串

存储虚拟机配置状态的数据存储的标识符。

如果未设置,则path也必须未设置,并且必须设置datastore_path

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

datastore_path

字符串

虚拟机配置文件的数据存储路径,格式为“[数据存储名称] 路径”。例如“[storage1] Test-VM/Test-VM.vmx”。

如果未设置,则必须同时设置datastorepath

disconnect_all_nics

布尔值

指示是否应将目标虚拟机上的所有 NIC 从网络断开连接。

如果未设置,则目标虚拟机上所有 NIC 的连接状态将与源虚拟机上的连接状态相同。

选项

  • false

  • true

磁盘

列表 / 元素=字典

单个磁盘重新定位映射。

如果未设置,则所有磁盘都将迁移到datastore字段中指定的数据存储。

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

有效属性为

  • type (字符串): 此选项定义可用于将虚拟存储设备附加到虚拟机的有效主机总线适配器类型。([‘present’])

  • 可接受的值

  • IDE

  • NVME

  • SATA

  • SCSI

  • ide (dict): 将设备附加到虚拟 IDE 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,则请求将失败。([‘present’])

  • 可接受的键

  • primary (boolean): 指定设备是否应附加到虚拟机的初级或次级 IDE 适配器的标志。

如果未设置,服务器将选择具有可用连接的适配器。如果没有任何 IDE 连接可用,则请求将被拒绝。

  • master (boolean): 指定设备是否应为 IDE 适配器上的主设备或从设备的标志。

如果未设置,服务器将选择可用的连接类型。如果没有任何 IDE 连接可用,则请求将被拒绝。

  • scsi (字典): 将设备附加到虚拟 SCSI 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,则请求将失败。([‘present’])

  • 可接受的键

  • bus (integer): 应将设备附加到的适配器的总线号。

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

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

  • sata (dict): 将设备附加到虚拟 SATA 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,则请求将失败。([‘present’])

  • 可接受的键

  • bus (integer): 应将设备附加到的适配器的总线号。

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

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

  • nvme (字典): 将设备附加到虚拟 NVMe 适配器的地址。

如果未设置,服务器将选择可用的地址;如果没有可用的地址,则请求将失败。([‘present’])

  • 可接受的键

  • bus (integer): 应将设备附加到的适配器的总线号。

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

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

  • backing (字典): 虚拟磁盘的现有物理资源后端。必须指定backingnew_vmdk中的一个。

如果未设置,则虚拟磁盘将不会连接到现有后端。([‘present’])

  • 可接受的键

  • 类型 (字符串): 此选项定义虚拟磁盘的有效后端类型。

此字段的接受值

  • VMDK_FILE

  • vmdk_file (字符串): 支持虚拟磁盘的 VMDK 文件的路径。

此字段是可选的,只有当type的值为 VMDK_FILE 时才相关。

  • new_vmdk (字典): 用于为虚拟磁盘创建新的 VMDK 后端的规范。必须指定backingnew_vmdk中的一个。

如果未设置,则不会创建新的 VMDK 后端。([‘present’])

  • 可接受的键

  • 名称 (字符串): VMDK 文件的基名称。名称不应包含“.vmdk”文件扩展名。

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

  • 容量 (整数): 虚拟磁盘后端的容量(以字节为单位)。

如果未设置,则默认为特定于客户机的容量。

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

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

disks_to_remove

列表 / 元素=字符串

要移除的磁盘集。

如果未设置,则所有磁盘都将被复制。如果相同的标识符位于disks_to_update中,则将返回 InvalidArgument 错误。

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

disks_to_update

字典

要更新的磁盘映射。

如果未设置,则所有磁盘都将复制到datastore字段中指定的数据存储。如果相同的标识符位于disks_to_remove中,则将引发 InvalidArgument 错误。

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

软盘

列表 / 元素=字典

软盘驱动器的列表。

如果未设置,则不会创建软盘驱动器。

有效属性为

  • backing (字典): 虚拟软盘驱动器的物理资源后端。

如果未设置,则默认为自动检测合适的宿主设备。([‘present’])

  • 可接受的键

  • 类型 (字符串): 此选项定义虚拟软盘驱动器的有效后端类型。

此字段的接受值

  • CLIENT_DEVICE

  • HOST_DEVICE

  • IMAGE_FILE

  • image_file (字符串): 应作为虚拟软盘驱动器后端使用的镜像文件的路径。

此字段是可选的,只有当type的值为 IMAGE_FILE 时才相关。

  • host_device (字符串): 应作为虚拟软盘驱动器后端使用的设备名称。

如果未设置,则虚拟软盘驱动器将配置为自动检测合适的宿主设备。

  • start_connected (布尔值): 指示虚拟机启动时是否应连接虚拟设备的标志。

如果未设置,则默认为 false。([‘present’])

  • allow_guest_control (布尔值): 指示客户机是否可以连接和断开设备的标志。

如果未设置,则默认为 false。([‘present’])

guest_customization_spec

字典

部署虚拟机后要应用于虚拟机的客户机自定义规范。

如果未设置,则克隆后不会自定义客户机操作系统。

有效属性为

  • name (字符串): 自定义规范的名称。

如果未设置,则不执行客户机自定义。([‘clone’])

客户操作系统

字符串

GuestOS 枚举类型定义用于配置虚拟机的有效客户机操作系统类型。state=[‘present’]时必需。

选项

  • "ALMALINUX_64"

  • "AMAZONLINUX2_64"

  • "AMAZONLINUX3_64"

  • "ASIANUX_3"

  • "ASIANUX_3_64"

  • "ASIANUX_4"

  • "ASIANUX_4_64"

  • "ASIANUX_5_64"

  • "ASIANUX_7_64"

  • "ASIANUX_8_64"

  • "ASIANUX_9_64"

  • "CENTOS"

  • "CENTOS_6"

  • "CENTOS_64"

  • "CENTOS_6_64"

  • "CENTOS_7"

  • "CENTOS_7_64"

  • "CENTOS_8_64"

  • "CENTOS_9_64"

  • "COREOS_64"

  • "CRXPOD_1"

  • "DARWIN"

  • "DARWIN_10"

  • "DARWIN_10_64"

  • "DARWIN_11"

  • "DARWIN_11_64"

  • "DARWIN_12_64"

  • "DARWIN_13_64"

  • "DARWIN_14_64"

  • "DARWIN_15_64"

  • "DARWIN_16_64"

  • "DARWIN_17_64"

  • "DARWIN_18_64"

  • "DARWIN_19_64"

  • "DARWIN_20_64"

  • "DARWIN_21_64"

  • "DARWIN_22_64"

  • "DARWIN_23_64"

  • "DARWIN_64"

  • "DEBIAN_10"

  • "DEBIAN_10_64"

  • "DEBIAN_11"

  • "DEBIAN_11_64"

  • "DEBIAN_12"

  • "DEBIAN_12_64"

  • "DEBIAN_4"

  • "DEBIAN_4_64"

  • "DEBIAN_5"

  • "DEBIAN_5_64"

  • "DEBIAN_6"

  • "DEBIAN_6_64"

  • "DEBIAN_7"

  • "DEBIAN_7_64"

  • "DEBIAN_8"

  • "DEBIAN_8_64"

  • "DEBIAN_9"

  • "DEBIAN_9_64"

  • "DOS"

  • "ECOMSTATION"

  • "ECOMSTATION_2"

  • "FEDORA"

  • "FEDORA_64"

  • "FREEBSD"

  • "FREEBSD_11"

  • "FREEBSD_11_64"

  • "FREEBSD_12"

  • "FREEBSD_12_64"

  • "FREEBSD_13"

  • "FREEBSD_13_64"

  • "FREEBSD_14"

  • "FREEBSD_14_64"

  • "FREEBSD_64"

  • "GENERIC_LINUX"

  • "MANDRAKE"

  • "MANDRIVA"

  • "MANDRIVA_64"

  • "NETWARE_4"

  • "NETWARE_5"

  • "NETWARE_6"

  • "NLD_9"

  • "OES"

  • "OPENSERVER_5"

  • "OPENSERVER_6"

  • "OPENSUSE"

  • "OPENSUSE_64"

  • "ORACLE_LINUX"

  • "ORACLE_LINUX_6"

  • "ORACLE_LINUX_64"

  • "ORACLE_LINUX_6_64"

  • "ORACLE_LINUX_7"

  • "ORACLE_LINUX_7_64"

  • "ORACLE_LINUX_8_64"

  • "ORACLE_LINUX_9_64"

  • "OS2"

  • "OTHER"

  • "OTHER_24X_LINUX"

  • "OTHER_24X_LINUX_64"

  • "OTHER_26X_LINUX"

  • "OTHER_26X_LINUX_64"

  • "OTHER_3X_LINUX"

  • "OTHER_3X_LINUX_64"

  • "OTHER_4X_LINUX"

  • "OTHER_4X_LINUX_64"

  • "OTHER_5X_LINUX"

  • "OTHER_5X_LINUX_64"

  • "OTHER_64"

  • "OTHER_6X_LINUX"

  • "OTHER_6X_LINUX_64"

  • "OTHER_LINUX"

  • "OTHER_LINUX_64"

  • "REDHAT"

  • "RHEL_2"

  • "RHEL_3"

  • "RHEL_3_64"

  • "RHEL_4"

  • "RHEL_4_64"

  • "RHEL_5"

  • "RHEL_5_64"

  • "RHEL_6"

  • "RHEL_6_64"

  • "RHEL_7"

  • "RHEL_7_64"

  • "RHEL_8_64"

  • "RHEL_9_64"

  • "ROCKYLINUX_64"

  • "SJDS"

  • "SLES"

  • "SLES_10"

  • "SLES_10_64"

  • "SLES_11"

  • "SLES_11_64"

  • "SLES_12"

  • "SLES_12_64"

  • "SLES_15_64"

  • "SLES_16_64"

  • "SLES_64"

  • "SOLARIS_10"

  • "SOLARIS_10_64"

  • "SOLARIS_11_64"

  • "SOLARIS_6"

  • "SOLARIS_7"

  • "SOLARIS_8"

  • "SOLARIS_9"

  • "SUSE"

  • "SUSE_64"

  • "TURBO_LINUX"

  • "TURBO_LINUX_64"

  • "UBUNTU"

  • "UBUNTU_64"

  • "UNIXWARE_7"

  • "VMKERNEL"

  • "VMKERNEL_5"

  • "VMKERNEL_6"

  • "VMKERNEL_65"

  • "VMKERNEL_7"

  • "VMKERNEL_8"

  • "VMWARE_PHOTON_64"

  • "WINDOWS_11_64"

  • "WINDOWS_12_64"

  • "WINDOWS_7"

  • "WINDOWS_7_64"

  • "WINDOWS_7_SERVER_64"

  • "WINDOWS_8"

  • "WINDOWS_8_64"

  • "WINDOWS_8_SERVER_64"

  • "WINDOWS_9"

  • "WINDOWS_9_64"

  • "WINDOWS_9_SERVER_64"

  • "WINDOWS_HYPERV"

  • "WINDOWS_SERVER_2019"

  • "WINDOWS_SERVER_2021"

  • "WINDOWS_SERVER_2025"

  • "WIN_2000_ADV_SERV"

  • "WIN_2000_PRO"

  • "WIN_2000_SERV"

  • "WIN_31"

  • "WIN_95"

  • "WIN_98"

  • "WIN_LONGHORN"

  • "WIN_LONGHORN_64"

  • "WIN_ME"

  • "WIN_NET_BUSINESS"

  • "WIN_NET_DATACENTER"

  • "WIN_NET_DATACENTER_64"

  • “WIN_NET_ENTERPRISE”

  • “WIN_NET_ENTERPRISE_64”

  • “WIN_NET_STANDARD”

  • “WIN_NET_STANDARD_64”

  • “WIN_NET_WEB”

  • “WIN_NT”

  • “WIN_VISTA”

  • “WIN_VISTA_64”

  • “WIN_XP_HOME”

  • “WIN_XP_PRO”

  • “WIN_XP_PRO_64”

硬件版本

字符串

版本枚举类型定义了虚拟机的有效虚拟硬件版本。请参见 https://kb.vmware.com/s/article/1003746(虚拟机硬件版本 (1003746))。

选项

  • “VMX_03”

  • “VMX_04”

  • “VMX_06”

  • “VMX_07”

  • “VMX_08”

  • “VMX_09”

  • “VMX_10”

  • “VMX_11”

  • “VMX_12”

  • “VMX_13”

  • “VMX_14”

  • “VMX_15”

  • “VMX_16”

  • “VMX_17”

  • “VMX_18”

  • “VMX_19”

  • “VMX_20”

  • “VMX_21”

内存

字典

内存配置。

如果未设置,将使用特定于客户机的默认值。

有效属性为

  • size_MiB (int): 以MiB为单位的新内存大小。

内存大小的支持范围受虚拟机的已配置客户操作系统和虚拟硬件版本限制。

如果虚拟机正在运行,则只有在hot_add_enabled 为 true 时才能更改此值,并且新的内存大小必须满足hot_add_increment_size_mib 和 指定的约束。

如果未设置,则值保持不变。([‘present’])

  • hot_add_enabled (bool): 指示是否应启用在虚拟机运行时添加内存的标志。

某些客户操作系统在运行支持在机器运行时添加内存的硬件上时,可能会消耗更多资源或效率降低。

只有在虚拟机未启动时才能修改此字段。

如果未设置,则值保持不变。([‘present’])

名称

字符串

虚拟机名称。

如果未设置,将使用虚拟机配置文件中的显示名称。

网卡

列表 / 元素=字典

以太网适配器的列表。

如果未设置,则不会创建任何以太网适配器。

有效属性为

  • type (str): 此选项定义了虚拟以太网适配器的有效仿真类型。([‘present’])

  • 可接受的值

  • E1000

  • E1000E

  • PCNET32

  • VMXNET

  • VMXNET2

  • VMXNET3

  • upt_compatibility_enabled (bool): 指示在此虚拟以太网适配器上是否启用了通用直通 (UPT) 兼容性的标志。

如果未设置,则不会在新创建的虚拟以太网适配器上启用 UPT。([‘present’])

  • mac_type (str): 此选项定义了虚拟以太网适配器的有效 MAC 地址来源。([‘present’])

  • 可接受的值

  • 已分配

  • 已生成

  • 手动

  • mac_address (str): MAC 地址。

PR1459647 的解决方法([‘present’])

  • pci_slot_number (int): 虚拟以太网适配器在 PCI 总线上的地址。如果 PCI 地址无效,则服务器将在虚拟机启动时或设备热添加时更改。

如果未设置,服务器将在虚拟机启动时选择可用的地址。([‘present’])

  • wake_on_lan_enabled (bool): 指示在此虚拟以太网适配器上是否启用了 Wake-on-LAN 的标志。

如果未设置,则默认为 false。([‘present’])

  • backing (dict): 虚拟以太网适配器的物理资源支持。

如果未设置,系统可能会尝试查找合适的支持。如果没有找到,请求将失败。([‘present’])

  • 可接受的键

  • type (string): 此选项定义了虚拟以太网适配器的有效支持类型。

此字段的接受值

  • DISTRIBUTED_PORTGROUP

  • HOST_DEVICE

  • OPAQUE_NETWORK

  • STANDARD_PORTGROUP

  • network (string): 支持虚拟以太网适配器的网络的标识符。

此字段是可选的,只有当type的值是STANDARD_PORTGROUP、DISTRIBUTED_PORTGROUP或OPAQUE_NETWORK之一时才相关。

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

  • distributed_port (string): 支持虚拟以太网适配器的分布式虚拟端口的键。根据端口组的类型,可以使用此字段指定端口。如果端口组类型是早期绑定(也称为静态),则在将以太网适配器配置为使用该端口时分配端口。端口可以根据此字段的值自动或专门分配。如果端口组类型是短暂的,则在虚拟机启动并连接以太网适配器时创建端口并将其分配给虚拟机。由于在使用前不存在可用端口,因此不能指定此字段。

可用于在network字段中指定的网络是静态或早期绑定分布式端口组时指定端口。如果未设置,则端口将根据端口组类型体现的策略自动分配给以太网适配器。

  • start_connected (布尔值): 指示虚拟机启动时是否应连接虚拟设备的标志。

如果未设置,则默认为 false。([‘present’])

  • allow_guest_control (布尔值): 指示客户机是否可以连接和断开设备的标志。

如果未设置,则默认为 false。([‘present’])

nics_to_update

字典

要更新的网卡映射。

如果未设置,则不会更新任何网卡。

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

nvme_adapters

列表 / 元素=字典

NVMe 适配器的列表。

如果未设置,则将创建连接虚拟机的存储设备所需的任何适配器;这包括明确指定 NVMe 主机总线适配器的任何设备,以及如果客户机的首选适配器类型是 NVMe,则不指定主机总线适配器的任何设备。

有效属性为

  • bus (int): NVMe 总线号。

如果未设置,服务器将选择可用的总线号;如果没有可用,请求将失败。([‘present’])

  • pci_slot_number (int): NVMe 适配器在 PCI 总线上的地址。

如果未设置,服务器将在虚拟机启动时选择可用的地址。([‘present’])

并口

列表 / 元素=字典

并口列表。

如果未设置,则不会创建任何并口。

有效属性为

  • backing (dict): 虚拟并口的物理资源支持。

如果未设置,则默认为自动检测合适的宿主设备。([‘present’])

  • 可接受的键

  • type (string): 此选项定义了虚拟并口的有效支持类型。

此字段的接受值

  • 文件

  • HOST_DEVICE

  • file (string): 应用作虚拟并口支持的文件的路径。

此字段是可选的,只有当type的值为FILE时才相关。

  • host_device (string): 应用作虚拟并口支持的设备的名称。

如果未设置,虚拟并口将被配置为自动检测合适的主机设备。

  • start_connected (布尔值): 指示虚拟机启动时是否应连接虚拟设备的标志。

如果未设置,则默认为 false。([‘present’])

  • allow_guest_control (布尔值): 指示客户机是否可以连接和断开设备的标志。

如果未设置,则默认为 false。([‘present’])

parallel_ports_to_update

字典

要更新的并口映射。

如果未设置,则不会更新任何并口。

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

路径

字符串

虚拟机在对应于 {@link #datastore) 的数据存储上的配置文件的路径。

如果未设置,则datastore也必须未设置,并且必须设置datastore_path

位置

字典

虚拟机位置信息。

如果此字段未设置,系统将使用源虚拟机的值。如果指定,则每个字段都将用于放置。如果字段导致不相交的放置,则操作将失败。如果字段与虚拟机的其他现有位置一起导致不相交的放置,则操作将失败。

有效属性为

  • folder (str): 应将虚拟机放置到的虚拟机文件夹。

如果此字段未设置,则虚拟机将保留在当前文件夹中。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_folder_info 返回的资源的 ID。([‘clone’, ‘instant_clone’, ‘present’, ‘register’, ‘relocate’])

  • resource_pool (str): 应将虚拟机放置到的资源池。

如果此字段未设置,则虚拟机将保留在当前资源池中。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_resourcepool_info 返回的资源的 ID。([‘clone’, ‘instant_clone’, ‘present’, ‘register’, ‘relocate’])

  • host (str): 应将虚拟机放置到的主机。

如果同时指定了hostresource_pool,则resource_pool必须属于host

如果同时指定了hostcluster,则host必须是cluster的成员。

如果此字段未设置,如果resource_pool未设置,则虚拟机将保留在当前主机上。如果resource_pool已设置,并且目标是独立主机,则使用该主机。如果resource_pool已设置,并且目标是 DRS 集群,则 DRS 将选择一个主机。如果resource_pool已设置,并且目标是无 DRS 的集群,则将抛出 InvalidArgument。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_host_info 返回的资源的 ID。([‘clone’, ‘present’, ‘register’, ‘relocate’])

  • cluster (str): 应将虚拟机放置到的集群。

如果同时指定了clusterresource_pool,则resource_pool必须属于cluster

如果同时指定了clusterhost,则host必须是cluster的成员。

如果指定了resource_poolhost,建议此字段不设置。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_cluster_info 返回的资源的 ID。([‘clone’, ‘present’, ‘register’, ‘relocate’])

  • datastore (str): 虚拟机的配置状态应存储到的数据存储。除非单独覆盖,否则此数据存储也将用于与虚拟机关联的任何虚拟磁盘。

如果未设置此字段,虚拟机将保留在当前数据存储中。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_datastore_info 返回的资源 ID。([‘clone’, ‘instant_clone’, ‘present’, ‘relocate’])

power_on

布尔值

尝试在克隆后执行power_on

如果未设置,则不会启动虚拟机。

选项

  • false

  • true

sata_adapters

列表 / 元素=字典

SATA 适配器列表。

如果未设置,则将创建连接虚拟机存储设备所需的任何适配器;这包括明确指定 SATA 主机总线适配器的任何设备,以及如果客户机的首选适配器类型为 SATA,则包括任何未指定主机总线适配器的设备。

有效属性为

  • type (str): 此选项定义虚拟 SATA 适配器的有效仿真类型。([‘present’])

  • 可接受的值

  • AHCI

  • bus (int): SATA 总线编号。

如果未设置,服务器将选择可用的总线号;如果没有可用,请求将失败。([‘present’])

  • pci_slot_number (int): SATA 适配器在 PCI 总线上的地址。

如果未设置,服务器将在虚拟机启动时选择可用的地址。([‘present’])

scsi_adapters

列表 / 元素=字典

SCSI 适配器列表。

如果未设置,则将创建连接虚拟机存储设备所需的任何适配器;这包括明确指定 SCSI 主机总线适配器的任何设备,以及如果客户机的首选适配器类型为 SCSI,则包括任何未指定主机总线适配器的设备。SCSI 适配器的类型将是特定于客户机的默认类型。

有效属性为

  • type (str): 此选项定义虚拟 SCSI 适配器的有效仿真类型。([‘present’])

  • 可接受的值

  • BUSLOGIC

  • LSILOGIC

  • LSILOGICSAS

  • PVSCSI

  • bus (int): SCSI 总线编号。

如果未设置,服务器将选择可用的总线号;如果没有可用,请求将失败。([‘present’])

  • pci_slot_number (int): SCSI 适配器在 PCI 总线上的地址。如果 PCI 地址无效,则服务器将在虚拟机启动时或设备热添加时更改它。

如果未设置,服务器将在虚拟机启动时选择可用的地址。([‘present’])

  • sharing (str): 此选项定义虚拟 SCSI 适配器的有效总线共享模式。([‘present’])

  • 可接受的值

  • NONE

  • PHYSICAL

  • VIRTUAL

serial_ports

列表 / 元素=字典

串口列表。

如果未设置,则不会创建任何串口。

有效属性为

  • yield_on_poll (bool): CPU 屈服行为。如果设置为 true,则虚拟机如果其唯一任务是轮询虚拟串口,则会定期释放处理器。重新获得处理器所需的时间将取决于主机上其他虚拟机活动的程度。

如果未设置,则默认为 false。([‘present’])

  • backing (dict): 虚拟串口的物理资源后端。

如果未设置,则默认为自动检测合适的宿主设备。([‘present’])

  • 可接受的键

  • type (string): 此选项定义虚拟串口的有效后端类型。

此字段的接受值

  • 文件

  • HOST_DEVICE

  • NETWORK_CLIENT

  • NETWORK_SERVER

  • PIPE_CLIENT

  • PIPE_SERVER

  • file (string): 虚拟串口后端文件的路径。

此字段是可选的,只有当type的值为FILE时才相关。

  • host_device (string): 虚拟串口后端设备的名称。

如果未设置,则虚拟串口将配置为自动检测合适的宿主设备。

  • pipe (string): 虚拟串口后端管道的名称。

此字段是可选的,仅当type的值为PIPE_SERVER或PIPE_CLIENT之一时才相关。

  • no_rx_loss (boolean): 启用通过管道优化数据传输的标志。当值为 true 时,主机缓冲数据以防止数据溢出。这允许虚拟机读取通过管道传输的所有数据而不会丢失数据。

如果未设置,则默认为 false。

  • network_location (string): 指定虚拟串口后端网络服务位置的 URI。

  • 如果type为NETWORK_SERVER,则此字段是客户端用于连接到此服务器的位置。URI 的主机名部分应为空或应指定运行虚拟机的宿主机地址。

  • 如果type为NETWORK_CLIENT,则此字段是虚拟机用于连接到远程服务器的位置。

此字段是可选的,仅当type的值为NETWORK_SERVER或NETWORK_CLIENT之一时才相关。

  • proxy (string): 提供对网络后端的网络访问的代理服务。如果设置,虚拟机将与代理服务启动连接并将流量转发到代理。

如果未设置,则不应使用代理服务。

  • start_connected (布尔值): 指示虚拟机启动时是否应连接虚拟设备的标志。

如果未设置,则默认为 false。([‘present’])

  • allow_guest_control (布尔值): 指示客户机是否可以连接和断开设备的标志。

如果未设置,则默认为 false。([‘present’])

serial_ports_to_update

字典

要更新的串口映射。

如果未设置,则不会更新任何串口。

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

session_timeout

float

添加到 vmware.vmware_rest 2.1.0 中

客户端会话的超时设置。

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

默认值为 300 秒。

source

字符串

要从中进行瞬间克隆的虚拟机。

当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_vm_info 返回的资源 ID。在state=[‘clone’, ‘instant_clone’]中需要。

state

字符串

选项

  • "absent"

  • "clone"

  • "instant_clone"

  • "present" ← (默认)

  • "register"

  • "relocate"

  • "unregister"

storage_policy

字典

storage_policy_spec 结构包含有关要与虚拟机主目录(包含配置和日志文件)关联的存储策略的信息。

如果未设置,则应用数据存储的默认存储策略(如果适用)。目前,默认存储策略仅受对象数据存储支持:VVol 和 vSAN。对于非对象数据存储,如果未设置,则虚拟机主目录将不与任何存储策略关联。在state=[‘present’]中需要。

有效属性为

  • policy (str): 应与虚拟机关联的存储策略的标识符。

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

此键与 [‘present’] 一起是必需的。

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。在state=[‘absent’, ‘relocate’, ‘unregister’]中需要。

注释

注意

  • 在 vSphere 7.0.3 上测试

示例

- name: Create a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/my_dc/host/my_cluster') }}"
      datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/rw_datastore') }}"
      folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/vm') }}"
      resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/my_dc/host/my_cluster/Resources') }}"
    name: test_vm1
    guest_OS: RHEL_7_64
    hardware_version: VMX_11
    memory:
      hot_add_enabled: true
      size_MiB: 1024
  register: my_vm

- name: Create a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/my_dc/host/my_cluster') }}"
      datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/local') }}"
      folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/vm') }}"
      resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/my_dc/host/my_cluster/Resources') }}"
    name: test_vm1
    guest_OS: RHEL_7_64
    hardware_version: VMX_11
    memory:
      hot_add_enabled: true
      size_MiB: 1024
    disks:
    - type: SATA
      backing:
        type: VMDK_FILE
        vmdk_file: '[local] test_vm1/{{ disk_name }}.vmdk'
    - type: SATA
      new_vmdk:
        name: second_disk
        capacity: 32000000000
    cdroms:
    - type: SATA
      sata:
        bus: 0
        unit: 2
    nics:
    - backing:
        type: STANDARD_PORTGROUP
        network: "{{ lookup('vmware.vmware_rest.network_moid', '/my_dc/network/VM Network') }}"
  register: my_vm

- name: Create a content library based on a DataStore
  vmware.vmware_rest.content_locallibrary:
    name: my_library_on_datastore
    description: automated
    publish_info:
      published: true
      authentication_method: NONE
    storage_backings:
    - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/local') }}"
      type: DATASTORE
    state: present
  register: nfs_lib

- name: Get the list of items of the NFS library
  vmware.vmware_rest.content_library_item_info:
    library_id: '{{ nfs_lib.id }}'
  register: lib_items

- name: Use the name to identify the item
  set_fact:
    my_template_item: "{{ lib_items.value | selectattr('name', 'equalto', 'golden-template')|first }}"

- name: Deploy a new VM based on the template
  vmware.vmware_rest.vcenter_vmtemplate_libraryitems:
    name: vm-from-template
    library: '{{ nfs_lib.id }}'
    template_library_item: '{{ my_template_item.id }}'
    placement:
      cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/my_dc/host/my_cluster') }}"
      folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/vm') }}"
      resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/my_dc/host/my_cluster/Resources') }}"
    state: deploy
  register: my_new_vm

- name: Retrieve all the details about the new VM
  vmware.vmware_rest.vcenter_vm:
    vm: '{{ my_new_vm.value }}'
  register: my_new_vm_info

- name: Create an instant clone of a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/local') }}"
      folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/vm') }}"
      resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/my_dc/host/my_cluster/Resources') }}"
    source: '{{ my_vm.id }}'
    name: test_vm2
    state: instant_clone
  register: my_instant_clone

- name: Create a clone of a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/local') }}"
      folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/vm') }}"
      resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/my_dc/host/my_cluster/Resources') }}"
    source: '{{ my_vm.id }}'
    name: test_vm3
    state: clone
  register: my_clone_vm

- name: Build a list of all the clusters
  vmware.vmware_rest.vcenter_cluster_info:
  register: all_the_clusters

- name: Retrieve details about the first cluster
  vmware.vmware_rest.vcenter_cluster_info:
    cluster: '{{ all_the_clusters.value[0].cluster }}'
  register: my_cluster_info

- name: Build a list of all the folders with the type VIRTUAL_MACHINE and called vm
  vmware.vmware_rest.vcenter_folder_info:
    filter_type: VIRTUAL_MACHINE
    filter_names:
    - vm
  register: my_folders

- name: Set my_virtual_machine_folder
  ansible.builtin.set_fact:
    my_virtual_machine_folder: '{{ my_folders.value|first }}'

- name: Create a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      cluster: '{{ my_cluster_info.id }}'
      datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/local') }}"
      folder: '{{ my_virtual_machine_folder.folder }}'
      resource_pool: '{{ my_cluster_info.value.resource_pool }}'
    name: test_vm1
    guest_OS: DEBIAN_7_64
    hardware_version: VMX_10
    memory:
      hot_add_enabled: true
      size_MiB: 1024
  register: my_vm

返回值

常见的返回值已记录在 此处,以下是此模块特有的字段

描述

id

字符串

资源的 moid

返回:成功时

示例: "vm-1104"

字典

创建虚拟机的瞬间克隆

返回:成功时

示例: {"boot": {"delay": 0, "enter_setup_mode": 0, "retry": 0, "retry_delay": 10000, "type": "BIOS"}, "boot_devices": [], "cdroms": {"16002": {"allow_guest_control": 0, "backing": {"auto_detect": 1, "device_access_type": "EMULATION", "type": "HOST_DEVICE"}, "label": "CD/DVD 驱动器 1", "sata": {"bus": 0, "unit": 2}, "start_connected": 0, "state": "NOT_CONNECTED", "type": "SATA"}}, "cpu": {"cores_per_socket": 1, "count": 1, "hot_add_enabled": 0, "hot_remove_enabled": 0}, "disks": {"16000": {"backing": {"type": "VMDK_FILE", "vmdk_file": "[local] test_vm2/test_vm2_2.vmdk"}, "capacity": 16106127360, "label": "硬盘 1", "sata": {"bus": 0, "unit": 0}, "type": "SATA"}, "16001": {"backing": {"type": "VMDK_FILE", "vmdk_file": "[local] test_vm2/test_vm2_1.vmdk"}, "capacity": 32000000000, "label": "硬盘 2", "sata": {"bus": 0, "unit": 1}, "type": "SATA"}}, "floppies": {}, "guest_OS": "RHEL_7_64", "hardware": {"upgrade_policy": "NEVER", "upgrade_status": "NONE", "version": "VMX_11"}, "identity": {"bios_uuid": "4231bf8b-3cb4-3a3f-1bfb-18c857ce95b6", "instance_uuid": "5031b322-6030-a020-8e73-1a9ad0fd03ce", "name": "test_vm2"}, "instant_clone_frozen": 0, "memory": {"hot_add_enabled": 1, "hot_add_increment_size_MiB": 128, "hot_add_limit_MiB": 3072, "size_MiB": 1024}, "name": "test_vm2", "nics": {"4000": {"allow_guest_control": 0, "backing": {"network": "network-1095", "network_name": "虚拟机网络", "type": "STANDARD_PORTGROUP"}, "label": "网络适配器 1", "mac_address": "00:50:56:b1:26:0c", "mac_type": "ASSIGNED", "pci_slot_number": 160, "start_connected": 0, "state": "NOT_CONNECTED", "type": "VMXNET3", "upt_compatibility_enabled": 0, "wake_on_lan_enabled": 0}}, "nvme_adapters": {}, "parallel_ports": {}, "power_state": "POWERED_ON", "sata_adapters": {"15000": {"bus": 0, "label": "SATA控制器 0", "pci_slot_number": 32, "type": "AHCI"}}, "scsi_adapters": {}, "serial_ports": {}}

作者

  • Ansible 云团队 (@ansible-collections)