Clonage par l'API (community.proxmox) avec bwpoc@pve limité au pool bwpoc ; modèle créé une fois en root avec l'agent QEMU, qui sert à lire les IP DHCP écrites dans inventory/host_vars/<vm>/dhcp.yml. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
42 lines
1.5 KiB
YAML
42 lines
1.5 KiB
YAML
---
|
|
# Supprime les VM du PoC (le modèle est conservé, sauf -e destroy_template=true).
|
|
- name: Détruire les VM du PoC
|
|
hosts: proxmox
|
|
gather_facts: false
|
|
vars_prompt:
|
|
- name: confirm
|
|
prompt: "Taper 'detruire' pour supprimer les VM {{ groups['poc_vms'] | unique | join(', ') }}"
|
|
private: false
|
|
tasks:
|
|
- name: Abandon sans confirmation
|
|
ansible.builtin.meta: end_play
|
|
when: confirm != 'detruire'
|
|
|
|
- name: Arrêter et supprimer les VM
|
|
ansible.builtin.shell: |
|
|
if qm status {{ hostvars[item].vm_id }} >/dev/null 2>&1; then
|
|
qm stop {{ hostvars[item].vm_id }} --skiplock 1 || true
|
|
qm destroy {{ hostvars[item].vm_id }} --purge 1 --destroy-unreferenced-disks 1
|
|
echo destroyed
|
|
fi
|
|
register: destroy
|
|
changed_when: "'destroyed' in destroy.stdout"
|
|
loop: "{{ groups['poc_vms'] | unique }}"
|
|
|
|
- name: Supprimer le modèle
|
|
ansible.builtin.shell: |
|
|
if qm status {{ pve_template_vmid }} >/dev/null 2>&1; then
|
|
qm destroy {{ pve_template_vmid }} --purge 1 && echo destroyed
|
|
fi
|
|
register: tpl_destroy
|
|
changed_when: "'destroyed' in tpl_destroy.stdout"
|
|
when: destroy_template | default(false) | bool
|
|
|
|
- name: Oublier les IP DHCP mémorisées
|
|
ansible.builtin.file:
|
|
path: "{{ inventory_dir }}/host_vars/{{ item }}/dhcp.yml"
|
|
state: absent
|
|
loop: "{{ groups['poc_vms'] | unique }}"
|
|
delegate_to: localhost
|
|
become: false
|