You've already forked deploy-vm
big fat commit with everything working !
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
---
|
||||
# Localise le template dans le cluster (sans contrainte de nœud → recherche globale)
|
||||
- name: deploy-vm | find template '{{ template_name }}' in cluster
|
||||
community.general.proxmox_vm_info:
|
||||
api_host: "{{ proxmox_host }}"
|
||||
api_user: "{{ proxmox_api_user }}"
|
||||
api_password: "{{ proxmox_api_password }}"
|
||||
name: "{{ template_name }}"
|
||||
type: qemu
|
||||
register: template_info
|
||||
|
||||
- name: deploy-vm | assert template '{{ template_name }}' exists
|
||||
ansible.builtin.assert:
|
||||
that: template_info.proxmox_vms | length > 0
|
||||
fail_msg: "Template '{{ template_name }}' introuvable dans le cluster Proxmox."
|
||||
|
||||
# node = nœud du template (requis par l'API Proxmox pour localiser la source du clone)
|
||||
- name: deploy-vm | clone template '{{ template_name }}' → '{{ vm_name }}'
|
||||
community.general.proxmox_kvm:
|
||||
api_host: "{{ proxmox_host }}"
|
||||
api_user: "{{ proxmox_api_user }}"
|
||||
api_password: "{{ proxmox_api_password }}"
|
||||
node: "{{ template_info.proxmox_vms[0].node }}"
|
||||
clone: "{{ template_name }}"
|
||||
newid: "{{ vm_id | default(omit, true) }}"
|
||||
name: "{{ vm_name }}"
|
||||
full: "{{ vm_full_clone }}"
|
||||
storage: "{{ proxmox_storage }}"
|
||||
timeout: "{{ vm_wait_timeout }}"
|
||||
state: present
|
||||
register: clone_result
|
||||
when: existing_vm_info.proxmox_vms | length == 0
|
||||
|
||||
# resolved_node = nœud réel de la VM (existante ou fraîchement clonée)
|
||||
- name: deploy-vm | resolve VM ID and node
|
||||
ansible.builtin.set_fact:
|
||||
resolved_vm_id: >-
|
||||
{{
|
||||
existing_vm_info.proxmox_vms[0].vmid
|
||||
if existing_vm_info.proxmox_vms | length > 0
|
||||
else clone_result.vmid
|
||||
}}
|
||||
resolved_node: >-
|
||||
{{
|
||||
existing_vm_info.proxmox_vms[0].node
|
||||
if existing_vm_info.proxmox_vms | length > 0
|
||||
else template_info.proxmox_vms[0].node
|
||||
}}
|
||||
Reference in New Issue
Block a user