vmware.vmware_rest.vcenter_vmtemplate_libraryitems 模块 – 从虚拟机在内容库中创建库项目
注意
此模块是 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_vmtemplate_libraryitems
。
vmware.vmware_rest 2.2.0 中的新增功能
概要
从虚拟机在内容库中创建库项目。此操作在内容库中创建一个库项目,其内容是使用提供的创建规范从源虚拟机创建的虚拟机模板。虚拟机模板存储在新创建的库项目中。
要求
执行此模块的主机需要以下要求。
vSphere 7.0.3 或更高版本
python >= 3.6
aiohttp
参数
参数 |
注释 |
---|---|
已部署虚拟机的描述。 如果未设置,则已部署的虚拟机与源库项目具有相同的描述。 |
|
已部署虚拟机的磁盘的存储规范。 如果 disk_storage_overrides 和 disk_storage 均未设置,则已部署的虚拟机的磁盘将使用与库项目中包含的源虚拟机模板中的相应磁盘相同的存储规范创建。 如果未设置 disk_storage_overrides 并且指定了 disk_storage,则所有已部署的虚拟机的磁盘都将使用 disk_storage 指定的存储规范创建。 如果指定了 disk_storage_overrides 并且未设置 disk_storage,则标识符不在 disk_storage_overrides 中的磁盘将使用与库项目中包含的源虚拟机模板中的相应磁盘相同的存储规范创建。 如果 disk_storage_overrides 和 disk_storage 都指定了,则标识符不在 disk_storage_overrides 中的磁盘将使用 disk_storage 指定的存储规范创建。 有效属性为
此字段当前为必填项。 如果还指定了 storage_policy 并且与 datastore 不兼容,则该磁盘将被标记为与指定的存储策略不合规。 当客户端传递此结构的参数值时,该字段必须是 vmware.vmware_rest.vcenter_datastore_info 返回的资源的 ID。(['deploy', 'present'])
如果未设置,则必须指定 datastore,并且已部署的虚拟机的磁盘将使用与 datastore 关联的默认存储策略创建。(['deploy', 'present'])
此字段的接受值
此字段是可选的,只有当 type 的值为 USE_SPECIFIED_POLICY 时才相关。 当客户端传递此结构的参数值时,该字段必须是 vmware.vmware_rest.vcenter_storage_policies_info 返回的资源的 ID。 |
|
已部署虚拟机中各个磁盘的存储规范。这是指定为库项目中包含的源虚拟机模板中的磁盘标识符及其存储规范之间的映射。 如果 disk_storage_overrides 和 disk_storage 均未设置,则已部署的虚拟机的磁盘将使用与库项目中包含的源虚拟机模板中的相应磁盘相同的存储规范创建。 如果未设置 disk_storage_overrides 并且指定了 disk_storage,则所有已部署的虚拟机的磁盘都将使用 disk_storage 指定的存储规范创建。 如果指定了 disk_storage_overrides 并且未设置 disk_storage,则标识符不在 disk_storage_overrides 中的磁盘将使用与库项目中包含的源虚拟机模板中的相应磁盘相同的存储规范创建。 如果 disk_storage_overrides 和 disk_storage 都指定了,则标识符不在 disk_storage_overrides 中的磁盘将使用 disk_storage 指定的存储规范创建。 当客户端传递此结构的参数值时,字段映射中的键必须是 vmware.vmware_rest.vcenter_vm_hardware_disk 返回的资源的 ID。 |
|
要应用于已部署虚拟机的客户机自定义规范。 如果未设置,则部署后不会自定义客户机操作系统。 有效属性为
如果未设置,则不执行客户机自定义。(['deploy']) |
|
硬件自定义规范,指定对已部署虚拟机的更新。 如果未设置,则已部署的虚拟机与库项目中包含的源虚拟机模板具有相同的硬件配置。 有效属性为
如果未设置,所有以太网适配器将保持与源虚拟机模板中相同的网络连接。MacAddressType 为 MANUAL 的以太网适配器不会更改。MacAddressType 为 GENERATED 或 ASSIGNED 的以太网适配器将接收一个新的地址。 当客户端将此结构的值作为参数传递时,字段映射中的键必须是 vmware.vmware_rest.vcenter_vm_hardware_ethernet 返回的资源的 ID。([‘deploy’])
如果未设置,将复制所有磁盘。 当客户端将此结构的值作为参数传递时,该字段必须包含 vmware.vmware_rest.vcenter_vm_hardware_disk 返回的资源的 ID。([‘deploy’])
如果未设置,部署的虚拟机中的磁盘将具有与库项目中包含的源虚拟机模板中相应磁盘相同的设置。 当客户端将此结构的值作为参数传递时,字段映射中的键必须是 vmware.vmware_rest.vcenter_vm_hardware_disk 返回的资源的 ID。([‘deploy’])
如果 {@term.unset},则部署的虚拟机的 CPU 设置与库项目中包含的源虚拟机模板相同。([‘deploy’])
如果 {@term.unset},则部署的虚拟机的 CPU 计数与库项目中包含的源虚拟机模板相同。
如果 {@term.unset},则部署的虚拟机的每个插槽的内核数与库项目中包含的源虚拟机模板相同。
如果 {@term.unset},则部署的虚拟机的内存设置与库项目中包含的源虚拟机模板相同。([‘deploy’])
如果 {@term.unset},则部署的虚拟机的内存大小与源虚拟机模板相同。 |
|
应在其中创建新库项目的库的标识符。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.content_library_info 返回的资源的 ID。使用 state=[‘present’] 时是必需的 |
|
部署的虚拟机的名称。此参数是必需的。 |
|
用于放置部署的虚拟机的信息。 此字段当前是必需的。将来,如果未设置此字段,系统将使用库项目中包含的源虚拟机模板中的值。 如果指定,每个字段将用于放置。如果字段导致不相交的放置,则操作将失败。如果字段与源虚拟机模板的放置值导致不相交的放置,则操作将失败。 有效属性为
此字段当前为必填项。 如果未设置,系统将尝试为虚拟机选择合适的文件夹;如果无法选择文件夹,则虚拟机部署操作将失败。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_folder_info 返回的资源的 ID。([‘deploy’, ‘present’])
如果未设置,系统将尝试为虚拟机选择合适的资源池;如果无法选择资源池,则虚拟机部署操作将失败。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_resourcepool_info 返回的资源的 ID。([‘deploy’, ‘present’])
如果指定了 resource_pool 或 cluster,则可以取消设置此字段。如果未设置,系统将尝试为虚拟机选择合适的主机;如果无法选择主机,则虚拟机部署操作将失败。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_host_info 返回的资源的 ID。([‘deploy’, ‘present’])
如果指定了 resource_pool 或 host,建议取消设置此字段。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_cluster_info 返回的资源的 ID。([‘deploy’, ‘present’]) |
|
指定部署后是否应打开部署的虚拟机的电源。 如果未设置,则部署后将不会打开虚拟机的电源。 选项
|
|
客户端会话的超时设置。 包括连接建立、请求发送和响应在内的整个操作的最长秒数。 默认值为 300 秒。 |
|
从中创建库项目的源虚拟机的标识符。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_vm_info 返回的资源的 ID。使用 state=[‘present’] 时是必需的 |
|
选项
|
|
包含要部署的源虚拟机模板的内容库项目的标识符。 该参数必须是 vmware.vmware_rest.content_library_item_info 返回的资源的 ID。使用 state=[‘deploy’] 时是必需的 |
|
vSphere vCenter 的主机名或 IP 地址 如果任务中未指定该值,则将改为使用环境变量 |
|
vSphere vCenter 密码 如果任务中未指定该值,则将改为使用环境变量 |
|
您可以使用此可选参数来设置日志文件的位置。 此文件将用于记录 HTTP REST 交互。 该文件将存储在运行模块的主机上。 如果任务中未指定该值,则将使用 环境变量 |
|
vSphere vCenter 用户名 如果任务中未指定该值,则将改为使用环境变量 |
|
当 SSL 证书无效时允许连接。当证书不受信任时,设置为 如果任务中未指定该值,则将改为使用环境变量 选项
|
|
虚拟机模板的配置和日志文件的存储位置。 如果未设置,虚拟机模板的配置和日志文件将放置在 指定的库关联的默认存储后备上。 有效属性为
此字段当前为必填项。 当还指定了 storage_policy 并且与 datastore 不兼容时,部署的虚拟机将被标记为不符合指定的存储策略。 当客户端传递此结构的参数值时,该字段必须是 vmware.vmware_rest.vcenter_datastore_info 返回的资源的 ID。(['deploy', 'present'])
如果未设置,则必须指定 datastore,并且已部署虚拟机的配置和日志文件将使用与 datastore 关联的默认存储策略创建。 ([‘deploy’, ‘present’])
此字段的接受值
此字段是可选的,只有当 type 的值为 USE_SPECIFIED_POLICY 时才相关。 当客户端传递此结构的参数值时,该字段必须是 vmware.vmware_rest.vcenter_storage_policies_info 返回的资源的 ID。 |
注释
注意
在 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/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: Create a VM template on the library
vmware.vmware_rest.vcenter_vmtemplate_libraryitems:
name: golden-template
library: '{{ nfs_lib.id }}'
source_vm: '{{ my_vm.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') }}"
register: mylib_item
- 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
返回值
通用返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
资源的 MOID 返回: 成功时 示例: |
|
在库中创建 VM 模板 返回: 成功时 示例: |