You've already forked deploy-vm
big fat commit with everything working !
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
---
|
||||
# Capture les valeurs globales avant la boucle pour éviter la récursion infinie.
|
||||
# Sans ça, "vm_cores: {{ item.cores | default(vm_cores) }}" → Ansible évalue vm_cores
|
||||
# qui pointe vers lui-même (le task var en cours de définition) → boucle infinie.
|
||||
- name: deploy-vm | snapshot global defaults before VM loop
|
||||
ansible.builtin.set_fact:
|
||||
_g_proxmox_node: "{{ proxmox_node }}"
|
||||
_g_template_name: "{{ template_name }}"
|
||||
_g_vm_cores: "{{ vm_cores }}"
|
||||
_g_vm_sockets: "{{ vm_sockets }}"
|
||||
_g_vm_memory: "{{ vm_memory }}"
|
||||
_g_vm_gateway: "{{ vm_gateway }}"
|
||||
_g_vm_dns: "{{ vm_dns }}"
|
||||
_g_vm_disk_name: "{{ vm_disk_name }}"
|
||||
_g_vm_disk_size: "{{ vm_disk_size }}"
|
||||
_g_vm_extra_disks: "{{ vm_extra_disks }}"
|
||||
_g_vm_ciuser: "{{ vm_ciuser }}"
|
||||
_g_vm_cipassword: "{{ vm_cipassword }}"
|
||||
_g_vm_sshkeys: "{{ vm_sshkeys }}"
|
||||
_g_vm_full_clone: "{{ vm_full_clone }}"
|
||||
_g_vm_start_on_boot: "{{ vm_start_on_boot }}"
|
||||
_g_vm_wait_timeout: "{{ vm_wait_timeout }}"
|
||||
_g_vm_force_update: "{{ vm_force_update }}"
|
||||
_g_vm_migrate_with_local_disks: "{{ vm_migrate_with_local_disks }}"
|
||||
|
||||
# Chaque entrée de 'vms' peut surcharger n'importe quel champ.
|
||||
# Champs obligatoires : name, ip.
|
||||
# Tous les autres héritent du snapshot global ci-dessus.
|
||||
- name: "deploy-vm | deploy '{{ item.name }}'"
|
||||
ansible.builtin.include_tasks: deploy_one.yml
|
||||
vars:
|
||||
vm_name: "{{ item.name }}"
|
||||
vm_id: "{{ item.id | default(None) }}"
|
||||
vm_cores: "{{ item.cores | default(_g_vm_cores) }}"
|
||||
vm_sockets: "{{ item.sockets | default(_g_vm_sockets) }}"
|
||||
vm_memory: "{{ item.memory | default(_g_vm_memory) }}"
|
||||
vm_ip: "{{ item.ip }}"
|
||||
vm_gateway: "{{ item.gateway | default(_g_vm_gateway) }}"
|
||||
vm_dns: "{{ item.dns | default(_g_vm_dns) }}"
|
||||
vm_disk_name: "{{ item.disk_name | default(_g_vm_disk_name) }}"
|
||||
vm_disk_size: "{{ item.disk_size | default(_g_vm_disk_size) }}"
|
||||
vm_extra_disks: "{{ item.extra_disks | default(_g_vm_extra_disks) }}"
|
||||
vm_ciuser: "{{ item.ciuser | default(_g_vm_ciuser) }}"
|
||||
vm_cipassword: "{{ item.cipassword | default(_g_vm_cipassword) }}"
|
||||
vm_sshkeys: "{{ item.sshkeys | default(_g_vm_sshkeys) }}"
|
||||
vm_full_clone: "{{ item.full_clone | default(_g_vm_full_clone) }}"
|
||||
vm_start_on_boot: "{{ item.start_on_boot | default(_g_vm_start_on_boot) }}"
|
||||
vm_wait_timeout: "{{ item.wait_timeout | default(_g_vm_wait_timeout) }}"
|
||||
vm_force_update: "{{ item.force_update | default(_g_vm_force_update) }}"
|
||||
vm_migrate_with_local_disks: "{{ item.migrate_with_local_disks | default(_g_vm_migrate_with_local_disks) }}"
|
||||
proxmox_node: "{{ item.proxmox_node | default(_g_proxmox_node) }}"
|
||||
template_name: "{{ item.template_name | default(_g_template_name) }}"
|
||||
loop: "{{ vms }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
Reference in New Issue
Block a user