diff --git a/playbooks/build-and-deploy-template.yml b/playbooks/build-and-deploy-template.yml index fdf29bd..5cb9206 100644 --- a/playbooks/build-and-deploy-template.yml +++ b/playbooks/build-and-deploy-template.yml @@ -99,3 +99,48 @@ - name: Display success message ansible.builtin.debug: msg: "Template VM {{ template_vmid }} created successfully on {{ storage }}" + +- name: Update Terraform template name + hosts: localhost + gather_facts: false + + vars: + terraform_dir: "{{ playbook_dir }}/../terraform" + + tasks: + - name: Get image filename from earlier play + ansible.builtin.set_fact: + image_filename: "{{ hostvars['localhost']['image_filename'] }}" + + - name: Extract template name from image filename + ansible.builtin.set_fact: + new_template_name: "{{ image_filename | regex_replace('\\.vma\\.zst$', '') | regex_replace('^vzdump-qemu-', '') }}" + + - name: Read current Terraform variables file + ansible.builtin.slurp: + src: "{{ terraform_dir }}/variables.tf" + register: variables_tf_content + + - name: Extract current template name from variables.tf + ansible.builtin.set_fact: + current_template_name: "{{ (variables_tf_content.content | b64decode) | regex_search('variable \"default_template_name\"[^}]+default\\s*=\\s*\"([^\"]+)\"', '\\1') | first }}" + + - name: Check if template name has changed + ansible.builtin.set_fact: + template_name_changed: "{{ current_template_name != new_template_name }}" + + - name: Display template name status + ansible.builtin.debug: + msg: "Template name: {{ current_template_name }} -> {{ new_template_name }} ({{ 'changed' if template_name_changed else 'unchanged' }})" + + - name: Update default_template_name in variables.tf + ansible.builtin.replace: + path: "{{ terraform_dir }}/variables.tf" + regexp: '(variable "default_template_name"[^}]+default\s*=\s*)"[^"]+"' + replace: '\1"{{ new_template_name }}"' + when: template_name_changed + + - name: Display update result + ansible.builtin.debug: + msg: "Updated terraform/variables.tf with new template name: {{ new_template_name }}" + when: template_name_changed