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 适配器。

如果未设置,服务器将选择一个具有可用连接的适配器。如果没有任何 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 (字符串): 此选项定义了虚拟 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'])

datastore

字符串

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

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

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

datastore_path

字符串

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

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

disconnect_all_nics

布尔值

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

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

选项

  • false

  • true

disks

列表 / 元素=字典

各个磁盘的重定位映射。

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

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

有效属性为

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

  • 接受的值

  • IDE

  • NVME

  • SATA

  • SCSI

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

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

  • 接受的键

  • primary (boolean): 标志,指定设备应连接到虚拟机的主 IDE 适配器还是辅助 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’])

  • 接受的键

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

此字段的接受值

  • VMDK_FILE

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

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

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

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

  • 接受的键

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

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

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

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

  • storage_policy (对象): 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。

floppies

列表 / 元素=字典

软盘驱动器列表。

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

有效属性为

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

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

  • 接受的键

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

此字段的接受值

  • 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’])

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"

memory

字典

内存配置。

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

有效属性为

  • size_MiB (整数): 新的内存大小(以兆字节为单位)。

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

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

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

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

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

只有当虚拟机未开启时,才能修改此字段。

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

名称

字符串

虚拟机名称。

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

网卡

列表 / 元素=字典

以太网适配器列表。

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

有效属性为

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

  • 接受的值

  • E1000

  • E1000E

  • PCNET32

  • VMXNET

  • VMXNET2

  • VMXNET3

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

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

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

  • 接受的值

  • ASSIGNED(已分配)

  • GENERATED(已生成)

  • MANUAL(手动)

  • mac_address (str): MAC 地址。

PR1459647 的解决方法 (['present'])

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

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

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

如果未设置,则默认为 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): PCI 总线上 NVMe 适配器的地址。

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

parallel_ports

列表 / 元素=字典

并行端口列表。

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

有效属性为

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

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

  • 接受的键

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

此字段的接受值

  • FILE

  • 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): 应将虚拟机放置到的主机。

如果同时指定了 *host* 和 *resource_pool*,则 *resource_pool* 必须属于 *host*。

如果同时指定了 *host* 和 *cluster*,则 *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): 应将虚拟机放置到的群集。

如果同时指定了 *cluster* 和 *resource_pool*,则 *resource_pool* 必须属于 *cluster*。

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

如果指定了 *resource_pool* 或 *host*,建议不要设置此字段。

当客户端传递此结构的参数值时,该字段必须是由 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 (字符串): 此选项定义虚拟 SATA 适配器的有效模拟类型。 (['present'])

  • 接受的值

  • AHCI

  • bus (整数): SATA 总线号。

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

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

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

scsi_adapters

列表 / 元素=字典

SCSI 适配器列表。

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

有效属性为

  • type (字符串): 此选项定义虚拟 SCSI 适配器的有效模拟类型。 (['present'])

  • 接受的值

  • BUSLOGIC

  • LSILOGIC

  • LSILOGICSAS

  • PVSCSI

  • bus (整数): SCSI 总线号。

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

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

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

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

  • 接受的值

  • NONE

  • PHYSICAL

  • VIRTUAL

serial_ports

列表 / 元素=字典

串行端口列表。

如果未设置,则不会创建串行端口。

有效属性为

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

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

  • backing (字典): 虚拟串行端口的物理资源后备。

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

  • 接受的键

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

此字段的接受值

  • FILE

  • HOST_DEVICE

  • NETWORK_CLIENT

  • NETWORK_SERVER

  • PIPE_CLIENT

  • PIPE_SERVER

  • file (字符串): 支持虚拟串行端口的文件的路径。

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

  • host_device (字符串): 支持虚拟串行端口的设备的名称。

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

  • pipe (字符串): 支持虚拟串行端口的管道的名称。

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

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

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

  • network_location (字符串): 指定支持虚拟串行端口的网络服务位置的 URI。

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

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

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

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

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

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

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

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

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

serial_ports_to_update

字典

要更新的串行端口映射。

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

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

session_timeout

浮点数

在 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 (字符串): 应与虚拟机关联的存储策略的标识符。

当客户端传递此结构的某个值作为参数时,该字段必须是由 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"

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)