How to Delete a VMware Virtual Machine Snapshot with Ansible?

I'm going to show you a live Playbook and some simple Ansible code.

I'm Luca Berton and welcome to today's episode of Ansible Pilot.

Ansible Delete a VMware Virtual Machine Snapshot

  • community.vmware.vmware_guest_snapshot
  • Manages virtual machines snapshots in vCenter

Let's talk about the Ansible module vmware_guest_snapshot.

The full name is community.vmware.vmware_guest_snapshot, which means that is part of the collection of modules to interact with VMware, community-supported.

It manages virtual machine snapshots in vCenter.

Parameters

  • hostname string / username string / password string / datacenter string / validate_certs boolean - connection details
  • state string - present / absent / revert / remove_all
  • remove_children boolean - no/yes
  • snapshot_name string description string - Name/description of the virtual machine to work with

The following parameters are useful in order to Take a VMware Virtual Machine Snapshot using the module vmware_guest_snapshot.

First of all, we need to establish the connection with VMware vSphere or VMware vCenter using a plethora of self-explicative parameters: hostname, username, password, datacenter, and validate_certs.

Once the connection is successfully established you could specify the desired snapshot state, in this case, "absent" to delete a snapshot. You could also manage a snapshot with the same Ansible module.

If you want to remove a snapshot you could also remove all the dependent snapshots using the parameter remove_children.

You need to specify the exact snapshot name that you would like to remove in the snapshot_name parameter.

Links

  • [community.vmware.vmware_guest_snapshot](https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_snapshot_module.html)

## Playbook

How to Delete a VMware Virtual Machine Snapshot with Ansible.

I'm going to show you how to Delete a snapshot of the Virtual Machine named "myvm" using Ansible Playbook named "Ansible Managed Snapshot" in your VMware vCenter.

code

  • vm_snapshot_remove.yml

``yaml

---

  • name: vm snapshot Playbook

hosts: localhost

become: false

gather_facts: false

collections:

- community.vmware

pre_tasks:

- include_vars: vars.yml

tasks:

- name: remove snapshot

vmware_guest_snapshot:

hostname: "{{ vcenter_hostname }}"

username: "{{ vcenter_username }}"

password: "{{ vcenter_password }}"

datacenter: "{{ vcenter_datacenter }}"

validate_certs: "{{ vcenter_validate_certs }}"

name: "{{ vm_name }}"

folder: "{{ vm_folder }}"

snapshot_name: "Ansible Managed Snapshot"

state: absent

`

  • vars.yml

``yaml

---

vcenter_hostname: "vmware.example.com"

vcenter_datacenter: "vmwaredatacenter"

vcenter_validate_certs: false

vcenter_username: "[email protected]"

vcenter_password: "MySecretPassword123"

vm_name: "myvm"

vm_temp