community.vmware.vmware_guest_snapshot 模块 – 在 vCenter 中管理虚拟机快照

注意

此模块是 community.vmware 集合 (版本 5.2.0) 的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.vmware

要在 playbook 中使用它,请指定:community.vmware.vmware_guest_snapshot

概要

  • 此模块可用于创建、删除和更新给定虚拟机的快照。

参数

参数

注释

数据中心

字符串 / 必需

部署操作的目标数据中心。

描述

字符串

定义要附加到快照的任意描述。

默认值: ""

文件夹

字符串

目标文件夹,查找现有虚拟机的绝对或相对路径。

如果提供了 name,则这是必需参数。

该文件夹应包含数据中心。ESX 的数据中心是 ha-datacenter。

示例

folder: /ha-datacenter/vm

folder: ha-datacenter/vm

folder: /datacenter1/vm

folder: datacenter1/vm

folder: /datacenter1/vm/folder1

folder: datacenter1/vm/folder1

folder: /folder1/datacenter1/vm

folder: folder1/datacenter1/vm

folder: /folder1/datacenter1/vm/folder2

主机名

字符串

vSphere vCenter 或 ESXi 服务器的主机名或 IP 地址。

如果未在任务中指定该值,则将使用环境变量 VMWARE_HOST 的值。

内存转储

布尔值

如果设置为 true,则快照中还包含虚拟机的内存转储。

请注意,内存快照需要时间和资源,这会花费更长的时间来创建。

如果虚拟机不提供拍摄内存快照的功能,则此标志设置为 false

选项

  • false ← (默认)

  • true

moid

字符串

要管理的实例的托管对象 ID(如果已知),这只是在单个 vCenter 实例中唯一的标识符。

如果未提供 nameuuid,则这是必需的。

名称

字符串

要使用的虚拟机的名称。

如果未提供 uuidmoid,则这是必需参数。

name_match

字符串

如果多个虚拟机与该名称匹配,则使用找到的第一个或最后一个。

选项

  • "first" ← (默认)

  • "last"

new_description

字符串

用于将现有快照的描述更改为的值。

new_snapshot_name

字符串

用于将现有快照重命名为的值。

password

别名: pass, pwd

字符串

vSphere vCenter 或 ESXi 服务器的密码。

如果未在任务中指定该值,则将使用环境变量 VMWARE_PASSWORD 的值。

端口

整数

vSphere vCenter 或 ESXi 服务器的端口号。

如果未在任务中指定该值,则将使用环境变量 VMWARE_PORT 的值。

默认值: 443

proxy_host

字符串

将接收所有 HTTPS 请求并转发它们的代理的地址。

格式是主机名或 IP。

如果任务中未指定该值,则会使用环境变量 VMWARE_PROXY_HOST 的值。

proxy_port

整数

接收所有 HTTPS 请求并转发它们的 HTTP 代理的端口。

如果任务中未指定该值,则会使用环境变量 VMWARE_PROXY_PORT 的值。

quiesce

布尔值

如果设置为 true 且虚拟机已启动,则将暂停虚拟机中的文件系统。

请注意,此标志需要 VMware Tools。

如果虚拟机已关闭或 VMware Tools 不可用,则此标志将设置为 false

如果虚拟机不提供拍摄静默快照的功能,则此标志将设置为 false

选项

  • false ← (默认)

  • true

remove_children

布尔值

如果设置为 truestate=absent,则将删除整个快照子树。

选项

  • false ← (默认)

  • true

snapshot_id

整数

在 community.vmware 3.10.0 中添加

设置要管理的快照 ID。

state=absentstate=revert 时,此参数可用。

snapshot_name

字符串

设置要管理的快照名称。

仅当 state 不是 remove_all 时,才需要此参数或 snapshot_id

state

字符串

管理附加到特定虚拟机的快照。

如果设置为 present 且快照不存在,则将使用给定名称创建一个新快照。

如果设置为 present 且快照存在,则不会进行任何更改。

如果设置为 absent 且快照存在,则将删除具有给定名称的快照。

如果设置为 absent 且快照不存在,则不会进行任何更改。

如果设置为 revert 且快照存在,则虚拟机状态将恢复到给定快照。

如果设置为 revert 且快照不存在,则不会进行任何更改。

如果设置为 remove_all 且存在快照,则将删除所有快照。

如果设置为 remove_all 且不存在快照,则不会进行任何更改。

选项

  • "present" ← (默认)

  • "absent"

  • "revert"

  • "remove_all"

use_instance_uuid

布尔值

是否使用 VMware 实例 UUID 而不是 BIOS UUID。

选项

  • false ← (默认)

  • true

username

别名: admin, user

字符串

vSphere vCenter 或 ESXi 服务器的用户名。

如果任务中未指定该值,则会使用环境变量 VMWARE_USER 的值。

uuid

字符串

如果已知,则要管理的实例的 UUID,默认情况下这是 VMware 的 BIOS UUID。

如果未提供 namemoid 参数,则需要此参数。

validate_certs

布尔值

当 SSL 证书无效时允许连接。当证书不受信任时,设置为 false

如果任务中未指定该值,则会使用环境变量 VMWARE_VALIDATE_CERTS 的值。

选项

  • false

  • true ← (默认)

注释

注意

  • 所有模块都需要 API 写入权限,因此在免费的 ESXi 许可证上不受支持。

  • 所有变量和 VMware 对象名称都区分大小写。

示例

- name: Create a snapshot
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: present
    snapshot_name: snap1
    description: snap1_description
  delegate_to: localhost

- name: Remove a snapshot
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: absent
    snapshot_name: snap1
  delegate_to: localhost

- name: Revert to a snapshot
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: revert
    snapshot_name: snap1
  delegate_to: localhost

- name: Remove all snapshots of a VM
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: remove_all
  delegate_to: localhost

- name: Remove all snapshots of a VM using MoID
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    moid: vm-42
    state: remove_all
  delegate_to: localhost

- name: Take snapshot of a VM using quiesce and memory flag on
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: present
    snapshot_name: dummy_vm_snap_0001
    quiesce: true
    memory_dump: true
  delegate_to: localhost

- name: Remove a snapshot and snapshot subtree
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: absent
    remove_children: true
    snapshot_name: snap1
  delegate_to: localhost

- name: Remove a snapshot with a snapshot id
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    snapshot_id: 10
    state: absent
  delegate_to: localhost

- name: Rename a snapshot
  community.vmware.vmware_guest_snapshot:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "/{{ datacenter_name }}/vm/"
    name: "{{ guest_name }}"
    state: present
    snapshot_name: current_snap_name
    new_snapshot_name: im_renamed
    new_description: "{{ new_snapshot_description }}"
  delegate_to: localhost

返回值

常见的返回值在此处记录 此处,以下是此模块特有的字段

描述

snapshot_results

字典

关于虚拟机快照的元数据

返回: 总是

示例: {"current_snapshot": {"creation_time": "2019-04-09T14:40:26.617427+00:00", "description": "快照 4 示例", "id": 4, "name": "snapshot4", "state": "poweredOff"}, "snapshots": [{"creation_time": "2019-04-09T14:38:24.667543+00:00", "description": "快照 3 示例", "id": 3, "name": "snapshot3", "state": "poweredOff"}, {"creation_time": "2019-04-09T14:40:26.617427+00:00", "description": "快照 4 示例", "id": 4, "name": "snapshot4", "state": "poweredOff"}]}

作者

  • Loic Blot (@nerzhul)