--- - name: "STRESS-SETUP: Sync Local Code" hosts: all gather_facts: no vars: ytops_source_dir: "{{ 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 base directory exists for code sync ansible.builtin.file: path: "{{ base_dir }}" state: directory owner: "{{ ansible_user }}" group: "{{ deploy_group }}" mode: '0755' become: yes - name: Sync python packages and directories for stress testing ansible.posix.synchronize: src: "{{ ytops_source_dir }}/{{ item }}/" dest: "{{ base_dir }}/{{ item }}/" rsync_opts: - "--delete" - "--exclude=.DS_Store" - "--exclude=__pycache__" - "--exclude='*.pyc'" recursive: yes perms: yes loop: - "thrift_model" - "pangramia" - "ytops_client" - "policies" - "bin" - "yt_ops_services" become: yes become_user: "{{ ansible_user }}" - name: Sync client utility scripts and configs ansible.posix.synchronize: src: "{{ ytops_source_dir }}/{{ item }}" dest: "{{ base_dir }}/{{ item }}" perms: yes loop: - "cli.auth.config" - "cli.download.config" - "package_client.py" - "setup.py" - "VERSION" - "VERSION.client" - "thrift_exceptions_patch.py" - "ytdlp.json" become: yes become_user: "{{ ansible_user }}"