--- - name: Render DAG .yaml.j2 templates safely hosts: localhost connection: local gather_facts: false vars: # Hardcoded fallback for DAGs path dags_path: "{{ lookup('env', 'DAGS_PATH') }}" vault_addr: "{{ lookup('env', 'VAULT_ADDR') }}" vault_token: "{{ lookup('env', 'VAULT_TOKEN') }}" tasks: - name: Build list of DAG template files ansible.builtin.set_fact: dag_templates: >- {{ lookup('ansible.builtin.fileglob', dags_path ~ '/*.yaml.j2', wantlist=True) | default([]) }} - name: Render DAG templates in-place (guarded) when: dag_templates | length > 0 ansible.builtin.template: src: "{{ item }}" dest: "{{ item | regex_replace('\\.j2$', '') }}" mode: '0644' loop: "{{ dag_templates }}" vars: ansible_jinja2_native: true ignore_errors: false - name: Log rendered files when: dag_templates | length > 0 loop: "{{ dag_templates }}" ansible.builtin.debug: msg: "Rendered {{ item }} -> {{ item | regex_replace('\\.j2$', '') }}"