diff --git a/tasks/main.yml b/tasks/main.yml index 8e64c3a..db82cfe 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -8,88 +8,81 @@ # 5. Clone creation & deployment - name: "Create Debian VM template and deploy clones on Proxmox" - hosts: localhost - become: true - gather_facts: false - - pre_tasks: - - name: "Display playbook banner" - debug: - msg: | - ╔════════════════════════════════════════════════════════════╗ - ║ Proxmox VM Template & Clone Manager ║ - ║ Template VM: {{ hostname }} (ID: {{ vm_id }}) ║ - ║ Storage: {{ storage }} ║ - ║ CPU: {{ cores }} cores | RAM: {{ memory }}MB ║ - ╚════════════════════════════════════════════════════════════╝ + debug: + msg: | + ╔════════════════════════════════════════════════════════════╗ + ║ Proxmox VM Template & Clone Manager ║ + ║ Template VM: {{ hostname }} (ID: {{ vm_id }}) ║ + ║ Storage: {{ storage }} ║ + ║ CPU: {{ cores }} cores | RAM: {{ memory }}MB ║ + ╚════════════════════════════════════════════════════════════╝ - tasks: - ################################################################## - # 1. PREFLIGHT CHECKS - ################################################################## - - name: "STAGE 1: Run pre-flight environment checks" - include_tasks: preflight-checks.yml - tags: [preflight, always] +################################################################## +# 1. PREFLIGHT CHECKS +################################################################## +- name: "STAGE 1: Run pre-flight environment checks" + include_tasks: preflight-checks.yml + tags: [preflight, always] + run_once: true - ################################################################## - # 2. DOWNLOAD IMAGE - ################################################################## - - name: "STAGE 2: Download and cache Debian GenericCloud image" - include_tasks: download-image.yml - tags: [image, always] +################################################################## +# 2. DOWNLOAD IMAGE +################################################################## +- name: "STAGE 2: Download and cache Debian GenericCloud image" + include_tasks: download-image.yml + tags: [image, always] - ################################################################## - # 3. CREATE VM - ################################################################## - - name: "STAGE 3: Create base VM" - include_tasks: create-vm.yml - tags: [vm, create] +################################################################## +# 3. CREATE VM +################################################################## +- name: "STAGE 3: Create base VM" + include_tasks: create-vm.yml + tags: [vm, create] - ################################################################## - # 4. CONFIGURE VM (Disk, Cloud-Init, GPU, TPM, etc.) - ################################################################## - - name: "STAGE 4: Configure VM (disk, Cloud-Init, optional features)" - include_tasks: configure-vm.yml - tags: [vm, configure, cloudinit] +################################################################## +# 4. CONFIGURE VM (Disk, Cloud-Init, GPU, TPM, etc.) +################################################################## +- name: "STAGE 4: Configure VM (disk, Cloud-Init, optional features)" + include_tasks: configure-vm.yml + tags: [vm, configure, cloudinit] - ################################################################## - # 5. CREATE TEMPLATE - ################################################################## - - name: "STAGE 5: Convert VM to template" - include_tasks: create-template.yml - tags: [template, create] - when: make_template | default(false) +################################################################## +# 5. CREATE TEMPLATE +################################################################## +- name: "STAGE 5: Convert VM to template" + include_tasks: create-template.yml + tags: [template, create] + when: make_template | default(false) - ################################################################## - # 6. CREATE CLONES - ################################################################## - - name: "STAGE 6: Create and configure clones" - include_tasks: create-clones.yml - tags: [clones, create] - when: create_clones | default(false) +################################################################## +# 6. CREATE CLONES +################################################################## +- name: "STAGE 6: Create and configure clones" + include_tasks: create-clones.yml + tags: [clones, create] + when: create_clones | default(false) - post_tasks: - - name: "Display completion summary" - debug: - msg: | - ╔════════════════════════════════════════════════════════════╗ - ║ ✓ Playbook execution completed ║ - ║ ║ - ║ Template VM: {{ hostname }} (ID: {{ vm_id }}) ║ - │ {% if make_template %}✓ Converted to template{% else %}✗ Template conversion disabled{% endif %} - │ {% if create_clones and clones %}✓ {{ clones | length }} clone(s) created{% else %}✗ Clone creation disabled{% endif %} - ║ ║ - ║ Next steps: ║ - ║ - Verify VMs are running: qm list ║ - ║ - Connect to VM: ssh {{ ci_user }}@ ║ - ║ - Check Cloud-Init: cloud-init status ║ - ║ ║ - ╚════════════════════════════════════════════════════════════╝ +- name: "Display completion summary" + debug: + msg: | + ╔════════════════════════════════════════════════════════════╗ + ║ ✓ Playbook execution completed ║ + ║ ║ + ║ Template VM: {{ hostname }} (ID: {{ vm_id }}) ║ + │ {% if make_template %}✓ Converted to template{% else %}✗ Template conversion disabled{% endif %} + │ {% if create_clones and clones %}✓ {{ clones | length }} clone(s) created{% else %}✗ Clone creation disabled{% endif %} + ║ ║ + ║ Next steps: ║ + ║ - Verify VMs are running: qm list ║ + ║ - Connect to VM: ssh {{ ci_user }}@ ║ + ║ - Check Cloud-Init: cloud-init status ║ + ║ ║ + ╚════════════════════════════════════════════════════════════╝ - rescue: - - name: "Handle playbook errors" - debug: - msg: | - ✗ Playbook execution failed - Check the error messages above for details. - You may need to manually clean up partially created VMs. +# rescue: +# - name: "Handle playbook errors" +# debug: +# msg: | +# ✗ Playbook execution failed +# Check the error messages above for details. +# You may need to manually clean up partially created VMs.