yt-dlp-dags/ansible/playbook-sync-local.yml

109 lines
3.1 KiB
YAML

---
- 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 }}"