yt-dlp-dags/ansible/playbook-stress-sync-code.yml

69 lines
2.1 KiB
YAML

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