How to Take 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 Take 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
- memory_dump boolean - no/yes - memory snapshots take time and resource
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, "present" to take a snapshot. You could also revert or remove 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.
It's a good practice to set the name and description of the snapshot using thesnapshot_name and description parameters.
Advanced practice is to create the memory dump of the virtual machines, please note that memory snapshots take time and resources will take a longer time to create.
Default memory dump is disabled but you could enable using memory_dump parameter.
Links
- [community.vmware.vmware_guest_snapshot](https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_snapshot_module.html)
## Playbook
How to Take a VMware Virtual Machine Snapshot with Ansible.
I'm going to show you how to take a snapshot of the Virtual Machine named "myvm" using Ansible Playbook setting a name and description to easily find in your VMware vCenter.
code
- vm_snapshot_create.yml
```yaml
---
- name: vm snapshot Playbook
hosts: localhost
become: false
gather_facts: false
collections:
- community.vmware
pre_tasks:
- include_vars: vars.yml
tasks:
- name: create snapshot
vmware_guest_snapshot:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ vcenter_datacenter }}"
validate_certs: "{{ vcenter_validate_certs }}"
name: "{{ vm_na