以下是带有验证的虚拟机删除的Ansible Playbook的示例代码,其中包含必要的变量和任务:
- hosts: localhost
vars:
vm_name: my_vm # 要删除的虚拟机的名称
validate_stopped: true # 是否验证虚拟机已停止
tasks:
- name: Get virtual machine information
vmware_guest_facts:
hostname: "{{ vcenter_server }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ vm_name }}"
register: vm_info
- name: Stop the virtual machine
vmware_guest:
hostname: "{{ vcenter_server }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ vm_name }}"
state: stopped
when: vm_info.guest_state == "running"
- name: Validate the virtual machine is stopped
vmware_guest_facts:
hostname: "{{ vcenter_server }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ vm_name }}"
register: vm_info
when: validate_stopped is defined and validate_stopped
- name: Delete the virtual machine
vmware_guest:
hostname: "{{ vcenter_server }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ vm_name }}"
state: absent
要使用此Playbook,需要将以下变量替换为vCenter Server的详细信息和要删除的虚拟机的名称:“vcenter_server”,“vcenter_username”,“vcenter_password”和“vm_name”。
通过设置“validate_stopped”变量为True,可以添加步骤来验证虚拟机是否已停止。如果验证失败,则此任务将失败,并且虚拟机不会被删除。
此Playbook使用“vmware_guest”模块来停止和删除虚拟机,并使用“vmware_guest_facts”模块来获取虚拟机的详