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 返回:成功时 示例: |
|
在库中创建虚拟机模板 返回:成功时 示例: |