52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
---
|
|
- name: Remove VM on Proxmox
|
|
hosts: proxmox.localdomain
|
|
gather_facts: no
|
|
vars:
|
|
api_host: "192.168.1.162"
|
|
api_user: "root@pam"
|
|
api_token_id: "mytoki"
|
|
api_token_secret: "ea5114f5-ed39-4277-ac09-a32984be5bc9"
|
|
proxmox_node: "pve"
|
|
vars_prompt:
|
|
- name: vm_name_to_remove
|
|
prompt: "Enter the name of the VM to remove"
|
|
private: no
|
|
tasks:
|
|
- name: List all VMs and templates
|
|
community.general.proxmox_vm_info:
|
|
api_host: "{{ api_host }}"
|
|
api_user: "{{ api_user }}"
|
|
api_token_id: "{{ api_token_id }}"
|
|
api_token_secret: "{{ api_token_secret }}"
|
|
validate_certs: no
|
|
register: vms_info
|
|
|
|
- name: Find VMID based on VM name
|
|
set_fact:
|
|
vmid_to_remove: "{{ item.vmid }}"
|
|
loop: "{{ vms_info.proxmox_vms }}"
|
|
when: item.name == vm_name_to_remove
|
|
|
|
- name: Debug VMID to remove
|
|
debug:
|
|
msg: "VMID to remove: {{ vmid_to_remove }}"
|
|
when: vmid_to_remove is defined
|
|
|
|
- name: Remove the VM
|
|
community.general.proxmox_kvm:
|
|
api_user: "{{ api_user }}"
|
|
api_token_id: "{{ api_token_id }}"
|
|
api_token_secret: "{{ api_token_secret }}"
|
|
api_host: "{{ api_host }}"
|
|
vmid: "{{ vmid_to_remove }}"
|
|
node: "{{ proxmox_node }}"
|
|
state: absent
|
|
when: vmid_to_remove is defined
|
|
|
|
- name: Print message if VM was not found
|
|
debug:
|
|
msg: "VM {{ vm_name_to_remove }} not found."
|
|
when: vmid_to_remove is not defined
|
|
|