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 模块。
此外,现在已通过 guestinfo_vars 参数添加了 GuestOS 自定义功能。
父虚拟机必须具有用于快速克隆的 Guest 自定义引擎才能自定义 Guest OS。
在 vSphere 7 中,只有父虚拟机中的 Linux OS 支持用于快速克隆的本机 vSphere Guest 自定义。
参数
参数 |
注释 |
---|---|
要部署虚拟机的的数据中心的名称。 |
|
数据存储或数据存储群集的名称。 如果指定了数据存储群集名称,则模块将查找该群集中 Storage DRS 推荐的数据存储。 |
|
目标文件夹,部署克隆虚拟机的绝对路径。 示例 文件夹:ha-datacenter/vm 文件夹:/datacenter1/vm |
|
在快速克隆虚拟机中提供 GuestOS 自定义功能。 将传递到目标虚拟机的键值对列表。 这些键值对应用于提供用户定义的自定义,以区分目标虚拟机和源虚拟机。 |
|
dns 用于在快速克隆的 Guest 操作系统中设置 dns。 |
|
域名用于为快速克隆的 Guest 操作系统设置完全限定域名 (FQDN) 或完整域名。 |
|
netmask 用于在快速克隆的 Guest 操作系统中设置网络掩码。 |
|
主机名用于获取 DNS(域名系统)名称并设置 Guest 系统的主机名。 |
|
IP 地址用于在快速克隆的 Guest 操作系统中设置 IP 地址。 |
|
netmask 用于在快速克隆的 Guest 操作系统中设置网络掩码。 |
|
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
返回值
此处记录了常见的返回值 这里,以下是此模块特有的字段
键 |
描述 |
---|---|
有关虚拟机的元数据 返回值: 始终 示例: |