--- - name: "STRESS-SETUP: Sync Policies and CLI Configs" hosts: all gather_facts: no vars: ytops_source_dir: "{{ source_base_dir | default(playbook_dir + '/../ytops_client-source') }}" vars_files: - "group_vars/all/vault.yml" pre_tasks: - name: Set inventory_env fact ansible.builtin.set_fact: inventory_env: "{{ inventory_file | basename | splitext | first | replace('inventory.', '') }}" - name: Load environment-specific variables ansible.builtin.include_vars: "{{ item }}" with_fileglob: - "group_vars/all/generated_vars{{ '.' + inventory_env if inventory_env else '' }}.yml" tasks: - name: Define base directory for node ansible.builtin.set_fact: base_dir: "{{ airflow_master_dir if inventory_hostname in groups['master'] else airflow_worker_dir }}" - name: Ensure policies directory exists ansible.builtin.file: path: "{{ base_dir }}/policies" state: directory owner: "{{ ansible_user }}" group: "{{ deploy_group }}" mode: '0755' become: yes - name: Sync policies directory only ansible.posix.synchronize: src: "{{ ytops_source_dir }}/policies/" dest: "{{ base_dir }}/policies/" rsync_opts: - "--delete" - "--exclude=.DS_Store" - "--exclude=__pycache__" - "--exclude='*.pyc'" recursive: yes perms: yes become: yes become_user: "{{ ansible_user }}" - name: Sync client CLI config files ansible.posix.synchronize: src: "{{ ytops_source_dir }}/{{ item }}" dest: "{{ base_dir }}/{{ item }}" perms: yes loop: - "cli.auth.config" - "cli.download.config" become: yes become_user: "{{ ansible_user }}" - name: Display sync completion ansible.builtin.debug: msg: "Policies and CLI configs synced to {{ base_dir }}"