community.vmware.vmware_guest_instant_clone 模块 – 即时克隆虚拟机
注意
此模块是 community.vmware 集合 (版本 5.2.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.vmware
。
要在 playbook 中使用它,请指定: community.vmware.vmware_guest_instant_clone
。
概要
此模块可用于创建虚拟机的已启动即时克隆。
community.vmware.vmware_guest 模块需要用于创建处于已启动状态的虚拟机,该虚拟机将用作父虚拟机。
community.vmware.vmware_guest_powerstate 模块还需要关闭即时克隆模块的电源。
然后,将再次使用 community.vmware.vmware_guest 模块删除已关闭电源的虚拟机。
因此,在测试环境中创建虚拟机时,community.vmware.vmware_guest 模块对于删除即时克隆虚拟机是必要的。
此外,现在已添加了 GuestOS 自定义功能,并使用 guestinfo_vars 参数。
父虚拟机必须具有 Guest Customization Engine,即时克隆才能自定义 Guest OS。
只有父虚拟机中的 Linux 操作系统才支持 vSphere 7 中即时克隆的原生 vSphere Guest Customization。
参数
参数 |
注释 |
---|---|
要部署虚拟机的虚拟中心名称。 |
|
数据存储或数据存储集群的名称。 如果指定了数据存储集群名称,模块将在该集群中查找存储 DRS 推荐的数据存储。 |
|
目标文件夹,部署克隆虚拟机的绝对路径。 示例 folder: ha-datacenter/vm folder: /datacenter1/vm |
|
在即时克隆的虚拟机中提供 GuestOS 自定义功能。 将传递到目标虚拟机的键值对列表。 这些对应该用于提供用户定义的自定义,以将目标虚拟机与源虚拟机区分开来。 |
|
dns 用于在即时克隆的客户操作系统中设置 dns。 |
|
domain 用于为即时克隆的客户操作系统设置完全限定域名 (FQDN) 或完整域名。 |
|
netmask 用于在即时克隆的客户操作系统中设置子网掩码。 |
|
hostname 用于获取 DNS(域名系统)名称并设置客户系统的 hostname。 |
|
ipaddress 用于在即时克隆的客户操作系统中设置 ipaddress。 |
|
netmask 用于在即时克隆的客户操作系统中设置子网掩码。 |
|
vSphere vCenter 或 ESXi 服务器的主机名或 IP 地址。 如果任务中未指定该值,则将改为使用环境变量 |
|
克隆虚拟机的名称。 |
|
vSphere vCenter 或 ESXi 服务器的密码。 如果任务中未指定此值,则将使用环境变量 |
|
将接收所有 HTTPS 请求并转发它们的 HTTP 代理的端口。 如果任务中未指定此值,则将使用环境变量 |
|
要放置已部署虚拟机的资源池的名称。
|
|
是否使用 VMware 实例 UUID 而不是 BIOS UUID。 选项
|
|
vSphere vCenter 或 ESXi 服务器的用户名。 如果任务中未指定此值,则将使用环境变量 |
|
当 SSL 证书无效时允许连接。当证书不受信任时,将其设置为 如果任务中未指定此值,则将使用环境变量 选项
|
|
用于登录虚拟机的密码。 仅在使用客户机自定义功能时才需要。 |
|
用于登录虚拟机的用户。 仅在使用客户机自定义功能时才需要。 |
|
是否在重新启动瞬时克隆虚拟机后等待虚拟机工具启动。 选项
|
|
为 默认值: |
备注
注意
所有模块都需要 API 写入访问权限,因此在免费 ESXi 许可证上不受支持。
所有变量和 VMware 对象名称都区分大小写。
示例
- name: Instant Clone a VM
community.vmware.vmware_guest_instant_clone:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
folder: "{{ f0 }}"
datastore: "{{ rw_datastore }}"
datacenter: "{{ dc1 }}"
host: "{{ esxi1 }}"
name: "{{ Clone_vm }}"
parent_vm: "{{ testvm_1 }}"
resource_pool: "{{ test_resource_001 }}"
register: vm_clone
delegate_to: localhost
- name: set state to poweroff the Cloned VM
community.vmware.vmware_guest_powerstate:
validate_certs: false
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "cloned_vm_from_vm_cluster"
folder: "{{ f0 }}"
state: powered-off
register: poweroff_instant_clone_from_vm_when_cluster
delegate_to: localhost
- name: Clean VM
community.vmware.vmware_guest:
validate_certs: false
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "cloned_vm_from_vm_cluster"
datacenter: "{{ dc1 }}"
state: absent
register: delete_instant_clone_from_vm_when_cluster
ignore_errors: true
delegate_to: localhost
- name: Instant Clone a VM with guest_customization
community.vmware.vmware_guest_instant_clone:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
vm_username: "root"
vm_password: "SuperSecret"
validate_certs: false
folder: "{{ f0 }}"
datastore: "{{ rw_datastore }}"
datacenter: "{{ dc1 }}"
host: "{{ esxi1 }}"
guestinfo_vars:
- hostname: "{{ guestinfo.ic.hostname }}"
ipaddress: "{{ guestinfo.ic.ipaddress }}"
netmask: "{{ guestinfo.ic.netmask }}"
gateway: "{{ guestinfo.ic.gateway }}"
dns: "{{ guestinfo.ic.dns }}"
domain: "{{ guestinfo.ic.domain }}"
name: "Instant_clone_guest_customize"
parent_vm: "test_vm1"
resource_pool: DC0_C0_RP1
register: Instant_cloned_guest_customize
delegate_to: localhost
- name: Instant Clone a VM when skipping optional params
community.vmware.vmware_guest_instant_clone:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
name: "{{ Clone_vm }}"
parent_vm: "{{ testvm_1 }}"
datacenter: "{{ dc1 }}"
datastore: "{{ rw_datastore }}"
host: "{{ esxi1 }}"
register: VM_clone_optional_arguments
delegate_to: localhost
- name: Instant clone in check mode
community.vmware.vmware_guest_instant_clone:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: false
folder: "{{ f0 }}"
datastore: "{{ rw_datastore }}"
datacenter: "{{ dc1 }}"
host: "{{ esx1 }}"
name: "{{ Clone_vm }}"
parent_vm: "{{ testvm_2 }}"
resource_pool: "{{ test_resource_001 }}"
check_mode: true
register: check_mode_clone
delegate_to: localhost
- debug:
var: check_mode_clone
返回值
常见的返回值已记录在此处,以下是此模块独有的字段
键 |
描述 |
---|---|
有关虚拟机的元数据 返回:始终 示例: |