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。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在剧本中使用它,请指定: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 适配器。

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

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

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

  • sata (dict): 用于将设备连接到虚拟 SATA 适配器的地址。

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

  • 接受的键

  • bus (integer): 设备应连接到的适配器的总线编号。

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

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

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

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

  • 接受的键

  • type (string): 此选项定义虚拟 CD-ROM 设备的有效支持类型。

此字段的接受值

  • CLIENT_DEVICE

  • HOST_DEVICE

  • ISO_FILE

  • iso_file (string): 应作为虚拟 CD-ROM 设备支持的映像文件的路径。

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

  • host_device (string): 应作为虚拟 CD-ROM 设备支持的设备名称。

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

  • device_access_type (string): 此选项定义虚拟 CD-ROM 设备的物理设备支持的有效设备访问类型。

此字段的接受值

  • EMULATION

  • PASSTHRU

  • PASSTHRU_EXCLUSIVE

  • start_connected (bool): 标志,指示虚拟设备是否应在虚拟机开机时连接。

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

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

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

cpu

字典

CPU 配置。

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

有效属性为

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

支持的 CPU 核心数范围受虚拟机的已配置客户操作系统和虚拟硬件版本的约束。

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

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

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

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

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

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

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

  • hot_remove_enabled (bool): 指示是否启用在虚拟机运行时删除 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 (str): 此选项定义可用于将虚拟存储设备连接到虚拟机的有效主机总线适配器类型。(['present'])

  • 接受的值

  • IDE

  • NVME

  • SATA

  • SCSI

  • ide (dict): 用于将设备连接到虚拟 IDE 适配器的地址。

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

  • 接受的键

  • primary (boolean): 标志,指定设备应连接到虚拟机的主 IDE 适配器还是辅助 IDE 适配器。

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

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

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

  • scsi (dict): 用于将设备连接到虚拟 SCSI 适配器的地址。

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

  • 接受的键

  • bus (integer): 设备应连接到的适配器的总线编号。

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

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

  • sata (dict): 用于将设备连接到虚拟 SATA 适配器的地址。

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

  • 接受的键

  • bus (integer): 设备应连接到的适配器的总线编号。

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

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

  • nvme (dict): 用于将设备连接到虚拟 NVMe 适配器的地址。

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

  • 接受的键

  • bus (integer): 设备应连接到的适配器的总线编号。

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

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

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

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

  • 接受的键

  • type (string): 此选项定义虚拟磁盘的有效后备类型。

此字段的接受值

  • VMDK_FILE

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

此字段是可选的,并且仅当 type 的值为 VMDK_FILE 时才相关。

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

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

  • 接受的键

  • name (string): VMDK 文件的基本名称。该名称不应包含“.vmdk”文件扩展名。

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

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

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

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

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

disks_to_remove

list / elements=string

要删除的磁盘集。

如果未设置,则将复制所有磁盘。如果 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 (dict): 虚拟软盘驱动器的物理资源后备。

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

  • 接受的键

  • type (string): 此选项定义虚拟软盘驱动器的有效后备类型。

此字段的接受值

  • CLIENT_DEVICE

  • HOST_DEVICE

  • IMAGE_FILE

  • image_file (string): 应用作虚拟软盘驱动器后备的映像文件路径。

此字段是可选的,并且仅当 type 的值为 IMAGE_FILE 时才相关。

  • host_device (string): 应用作虚拟软盘驱动器后备的设备名称。

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

  • start_connected (bool): 标志,指示虚拟设备是否应在虚拟机开机时连接。

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

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

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

guest_customization_spec

字典

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

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

有效属性为

  • name (str): 自定义规范的名称。

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

guest_OS

字符串

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"

hardware_version

字符串

version 枚举类型定义虚拟机的有效虚拟硬件版本。请参见 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): 新的内存大小,以兆字节为单位。

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

如果虚拟机正在运行,只有当 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): 标志,指示是否在此虚拟以太网适配器上启用了网络唤醒。

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

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

如果未设置,系统可能会尝试查找合适的后备资源。如果找不到,则请求将失败。 (['present'])

  • 接受的键

  • 类型(字符串):此选项定义虚拟以太网适配器的有效后备类型。

此字段的接受值

  • 分布式端口组

  • HOST_DEVICE

  • 不透明网络

  • 标准端口组

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

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

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

  • distributed_port(字符串):支持虚拟以太网适配器的分布式虚拟端口的密钥。 根据端口组的类型,可以使用此字段指定端口。 如果端口组类型是早期绑定(也称为静态),则当以太网适配器配置为使用端口时,将分配一个端口。 可以根据此字段的值自动或专门分配端口。 如果端口组类型是临时的,则会在虚拟机开机并连接以太网适配器时创建端口并将其分配给虚拟机。 此字段不能指定,因为在使用前不存在空闲端口。

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

  • start_connected (bool): 标志,指示虚拟设备是否应在虚拟机开机时连接。

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

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

如果未设置,则默认为 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'])

parallel_ports

列表 / 元素=字典

并行端口列表。

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

有效属性为

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

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

  • 接受的键

  • 类型(字符串):此选项定义虚拟并行端口的有效后备类型。

此字段的接受值

  • 文件

  • HOST_DEVICE

  • 文件(字符串):应用作虚拟并行端口后备的文件的路径。

此字段是可选的,并且仅当 type 的值为 FILE 时才相关。

  • host_device(字符串):应用于虚拟并行端口后备的设备名称。

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

  • start_connected (bool): 标志,指示虚拟设备是否应在虚拟机开机时连接。

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

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

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

parallel_ports_to_update

字典

要更新的并行端口映射。

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

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

路径

字符串

虚拟机在与 {@link #datastore) 对应的 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): PCI 总线上 SCSI 适配器的地址。如果 PCI 地址无效,服务器将在虚拟机启动或热添加设备时更改它。

如果未设置,服务器将在虚拟机开机时选择一个可用地址。 (['present'])

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

  • 接受的值

  • 物理

  • 虚拟

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 (bool): 标志,指示虚拟设备是否应在虚拟机开机时连接。

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

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

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

serial_ports_to_update

字典

要更新的串行端口的映射。

如果未设置,则不会更新串行端口。

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

session_timeout

float

在 vmware.vmware_rest 2.1.0 中添加

客户端会话的超时设置。

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

默认值为 300 秒。

source

字符串

从中进行 InstantClone 的虚拟机。

当客户端将此结构的value作为参数传递时,该字段必须是由 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): 应与虚拟机关联的存储策略的标识符。

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

此键是 ['present'] 所必需的。

vcenter_hostname

string / required

vSphere vCenter 的主机名或 IP 地址

如果未在任务中指定该value,则将改为使用环境变量 VMWARE_HOST 的value。

vcenter_password

string / required

vSphere vCenter 密码

如果未在任务中指定该value,则将改为使用环境变量 VMWARE_PASSWORD 的value。

vcenter_rest_log_file

字符串

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

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

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

如果未在任务中指定该value,则将使用

环境变量 VMWARE_REST_LOG_FILE 的value。

vcenter_username

string / required

vSphere vCenter 用户名

如果未在任务中指定该value,则将改为使用环境变量 VMWARE_USER 的value。

vcenter_validate_certs

布尔值

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

如果未在任务中指定该value,则将改为使用环境变量 VMWARE_VALIDATE_CERTS 的value。

选择

  • 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

返回值

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

描述

id

字符串

资源的 moid

返回: 成功时

示例: "vm-1104"

value

字典

创建虚拟机的即时克隆

返回: 成功时

示例: {"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": "VM 网络", "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)