--- - name: Sync Local Development Files to Workers hosts: airflow_workers gather_facts: no vars_files: - "{{ inventory_dir }}/group_vars/all/generated_vars.yml" pre_tasks: - name: Announce local sync debug: msg: "Syncing local dev files to {{ inventory_hostname }} at {{ airflow_worker_dir }}" tasks: - name: Check if yt-dlp is installed ansible.builtin.command: which yt-dlp register: ytdlp_check changed_when: false failed_when: false become: yes become_user: "{{ ansible_user }}" - name: Install yt-dlp if not found ansible.builtin.command: python3 -m pip install -U "yt-dlp[default]" --break-system-packages when: ytdlp_check.rc != 0 become: yes become_user: "{{ ansible_user }}" - name: Sync thrift_model directory to workers ansible.posix.synchronize: src: ../thrift_model/ dest: "{{ airflow_worker_dir }}/thrift_model/" rsync_opts: - "--delete" - "--exclude=.DS_Store" - "--exclude=__pycache__" - "--exclude='*.pyc'" recursive: yes perms: yes become: yes become_user: "{{ ansible_user }}" - name: Sync pangramia package to workers ansible.posix.synchronize: src: ../pangramia/ dest: "{{ airflow_worker_dir }}/pangramia/" rsync_opts: - "--delete" - "--exclude=.DS_Store" - "--exclude=__pycache__" - "--exclude='*.pyc'" recursive: yes perms: yes become: yes become_user: "{{ ansible_user }}" - name: Sync ytops_client directory to workers ansible.posix.synchronize: src: ../ytops_client/ dest: "{{ airflow_worker_dir }}/ytops_client/" rsync_opts: - "--delete" - "--exclude=.DS_Store" - "--exclude=__pycache__" - "--exclude='*.pyc'" recursive: yes perms: yes become: yes become_user: "{{ ansible_user }}" - name: Sync policies directory to workers ansible.posix.synchronize: src: ../policies/ dest: "{{ airflow_worker_dir }}/policies/" rsync_opts: - "--delete" - "--exclude=.DS_Store" - "--exclude=__pycache__" - "--exclude='*.pyc'" recursive: yes perms: yes become: yes become_user: "{{ ansible_user }}" - name: Ensure bin directory exists on workers for client utilities ansible.builtin.file: path: "{{ airflow_worker_dir }}/bin" state: directory mode: '0755' become: yes become_user: "{{ ansible_user }}" - name: Sync client utility scripts to workers ansible.posix.synchronize: src: "../{{ item }}" dest: "{{ airflow_worker_dir }}/{{ item }}" perms: yes loop: - "README.client.md" - "cli.config" - "format_download.py" - "get_info_json_client.py" - "list_formats.py" - "stress_test_formats.py" - "stress_enhanced.py" - "package_client.py" - "bin/ytops-client" become: yes become_user: "{{ ansible_user }}"