【发布时间】:2021-05-01 09:09:47
【问题描述】:
我编写了 2 个 Ansible 剧本来在 ESXi 实例中创建和销毁 vm。
创建任务是:
- name: Clone the template
delegate_to: localhost
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
cluster: "{{ vcenter_cluster_name }}"
datacenter: "{{ vcenter_datacenter_name }}"
folder: "{{ vcenter_datacenter_folder }}"
datastore: "{{ vcenter_datastore }}"
validate_certs: False
name: "{{ inventory_hostname }}"
template: "{{ vm_template }}"
state: poweredon
wait_for_ip_address: yes
networks:
- name: "DSwitch_Dati-VM Network 869"
ip: "{{ ansible_host }}"
netmask: "{{ vm_netmask }}"
gateway: "{{ vm_gateway }}"
start_connected: yes
删除剧本是:
- name: TMS Cleaner
hosts: all
remote_user: tms
tasks:
- name: Set powerstate of virtual machine to poweroff
delegate_to: localhost
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
name: "{{ inventory_hostname }}"
state: poweredoff
- name: Remove virtual machine from inventory
delegate_to: localhost
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
folder: "{{ vcenter_datacenter_folder }}"
datastore: "{{ vcenter_datastore }}"
validate_certs: False
name: "{{ inventory_hostname }}"
delete_from_inventory: True
state: absent
创建是正确的,虽然删除可以正确停止并删除虚拟机,但它不会从数据存储中删除文件夹。
我应该怎么做才能完全删除与 vm 相关的所有文件?
【问题讨论】:
-
delete_from_inventory 参数是仅用于从清单中删除 VM 的参数。您要从数据存储中删除 VM 文件,请删除 delete_from_inventory 参数或将其设置为 false。
-
我想同时获得移动以使 esxi 实例恢复到 vm 存在之前的状态。没有那个参数我能得到这个吗?
-
你能告诉我
ESXi instance back to the state before the vm existed的含义吗?我理解您想要从 ESXi 和数据存储中删除所有虚拟机的目的。这是正确的吗? -
我想针对主机定义运行创建手册以创建 vm(和相关数据存储文件夹);然后针对相同的主机定义使用干净的剧本来完全删除与该虚拟机相关的文件。我认为 vm 删除也应该清理它的数据存储文件。