创建变量

其中包括需要做快照的服务器,vCenter,datacenter

vm_names:  # change vm server name
  - Server01  
  - Server02

vcenter_hostname: "vCenter hostname"   # change vCenter

datacenter_name: "Datacenter name"  # change datacenter

创建快照

---
- name: Create snapshots
  hosts: localhost
  connection: local
  gather_facts: true

  vars_files:
    - vmware_names.yml   ##
    - vmware_vault.yml

  tasks:
    - name: Create snapshots
      community.vmware.vmware_guest_snapshot:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        datacenter: "{{datacenter_name}}"
        validate_certs: no
        name: "{{ item }}"
        folder: "/"
        state: present
        snapshot_name: "{{ item }}-{{ ansible_date_time.date }}"
        description: "Snapshot of {{ item }} created on {{ ansible_date_time.iso8601 }}"
      loop: "{{ vm_names }}"
      loop_control:
        loop_var: item
      delegate_to: localhost

      register: snapshot_results

    - name: Print snapshot task results
      debug:
        var: snapshot_results.msg

删除快照

---
- name: Delete snapshots of multiple VMs in vCenter
  hosts: localhost
  gather_facts: no

  vars_files:
    - vmware_names.yml   
    - vmware_vault.yml

  tasks:
    - name: Delete snapshots of VMs
      community.vmware.vmware_guest_snapshot:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        datacenter: "{{ datacenter_name }}"
        folder: "/"
        validate_certs: no
        name: "{{ item }}"
        state: absent
        snapshot_name: "{{ item }}-2024-06-25"   ### change date
      loop: "{{ vm_names }}"
      loop_control:
        loop_var: item
      delegate_to: localhost

      register: snapshot_results

    - name: Print snapshot task results
      debug:
        var: snapshot_results.msg