- name: Local or remote backend selector (remote) template: src: roles/main_infra/templates/remote-backend-selector.tf.j2 dest: roles/main_infra/files/remote-backend-selector.tf when: - backend|bool == true - name: Local or remote backend selector (local) file: state: absent dest: roles/main_infra/files/remote-backend-selector.tf when: - backend | default ('false') | bool != true - name: Generating variables file template: src: roles/main_infra/templates/terraform.tfvars.j2 dest: roles/main_infra/files/terraform.tfvars vars: db_iops: "{{ chain_db_iops | default({}) }}" - name: Generating backend file template: src: roles/main_infra/templates/backend.tfvars.j2 dest: roles/main_infra/files/backend.tfvars when: backend|bool == true - name: Generate Terraform files template: src: "{{ item.key }}" dest: "{{ item.value }}" with_dict: {roles/main_infra/templates/hosts.tf.j2: roles/main_infra/files/hosts.tf,roles/main_infra/templates/routing.tf.j2: roles/main_infra/files/routing.tf,roles/main_infra/templates/provider.tf.j2: roles/main_infra/files/provider.tf} - name: Check if .terraform folder exists stat: path: "roles/main_infra/files/.terraform/" register: stat_result - name: Remove .terraform folder file: path: roles/main_infra/files/.terraform/ state: absent when: stat_result.stat.exists == True #Workaround since terraform module return unexpected error. - name: Initialize Terraform shell: "echo yes | {{ terraform_location }} init{{ ' -backend-config=backend.tfvars' if backend|bool == true else '' }}" args: chdir: "roles/main_infra/files" - name: Attach existing DB instances shell: "echo yes | {{ terraform_location }} import aws_db_instance.default[{{ index }}] {{ prefix }}-{{ item.value }}" args: chdir: "roles/main_infra/files" loop: "{{ chain_db_id|dict2items }}" loop_control: index_var: index