2025-08-26 18:00:55 +03:00

104 lines
2.6 KiB
YAML

---
- name: Check if Airflow worker deployment directory exists
stat:
path: "{{ airflow_worker_dir }}"
register: worker_dir_stat
- name: Ensure Airflow worker deployment directory exists
file:
path: "{{ airflow_worker_dir }}"
state: directory
owner: "{{ ssh_user }}"
group: ytdl
mode: '0755'
become: yes
when: not worker_dir_stat.stat.exists
- name: Sync Airflow worker files
synchronize:
src: "{{ playbook_dir }}/../{{ item }}"
dest: "{{ airflow_worker_dir }}/"
archive: yes
recursive: yes
delete: yes
rsync_opts: "{{ rsync_default_opts }}"
loop:
- "airflow/Dockerfile"
- "airflow/docker-compose-dl.yaml"
- "airflow/dags/"
- "airflow/config/"
- "setup.py"
- "yt_ops_services/"
- "thrift_model/"
- "VERSION"
- "airflow/init-airflow.sh"
- "get_info_json_client.py"
- "proxy_manager_client.py"
- "token_generator/"
- "utils/"
- name: Check if inputfiles directory exists
stat:
path: "{{ playbook_dir }}/../airflow/inputfiles"
register: inputfiles_stat
- name: Sync inputfiles directory if it exists
synchronize:
src: "{{ playbook_dir }}/../airflow/inputfiles/"
dest: "{{ airflow_worker_dir }}/inputfiles/"
archive: yes
recursive: yes
delete: yes
rsync_opts: "{{ rsync_default_opts }}"
when: inputfiles_stat.stat.exists
- name: Sync pangramia thrift files
synchronize:
src: "{{ playbook_dir }}/../thrift_model/gen_py/pangramia/"
dest: "{{ airflow_worker_dir }}/pangramia/"
archive: yes
recursive: yes
delete: yes
rsync_opts: "{{ rsync_default_opts }}"
- name: Create .env file for Airflow worker service
template:
src: "../../templates/.env.worker.j2"
dest: "{{ airflow_worker_dir }}/.env"
mode: "{{ file_permissions }}"
owner: "{{ ssh_user }}"
group: ytdl
vars:
service_role: "worker"
- name: Create symlink for docker-compose.yaml
file:
src: "{{ airflow_worker_dir }}/docker-compose-dl.yaml"
dest: "{{ airflow_worker_dir }}/docker-compose.yaml"
state: link
owner: "{{ ssh_user }}"
group: ytdl
- name: Build Airflow worker image
community.docker.docker_image:
name: "{{ airflow_image_name }}"
build:
path: "{{ airflow_worker_dir }}"
source: build
force_source: true
- name: Run Airflow init script
shell:
cmd: "chmod +x init-airflow.sh && ./init-airflow.sh"
chdir: "{{ airflow_worker_dir }}"
become: yes
become_user: "{{ ssh_user }}"
- name: Start Airflow worker service
community.docker.docker_compose_v2:
project_src: "{{ airflow_worker_dir }}"
files:
- "docker-compose-dl.yaml"
state: present
remove_orphans: true