74 lines
2.3 KiB
YAML
74 lines
2.3 KiB
YAML
---
|
|
- name: Deploy Airflow DL Worker Stack
|
|
hosts: airflow_workers
|
|
vars_files:
|
|
- group_vars/all.yml
|
|
- group_vars/all/vault.yml
|
|
pre_tasks:
|
|
- name: Announce fast deploy mode if enabled
|
|
debug:
|
|
msg: "🚀 FAST DEPLOY MODE ENABLED: Skipping Docker image builds and pulls. 🚀"
|
|
when: fast_deploy | default(false)
|
|
run_once: true
|
|
tasks:
|
|
|
|
- name: Ensure worker directory exists
|
|
file:
|
|
path: "{{ airflow_worker_dir }}"
|
|
state: directory
|
|
owner: "{{ ansible_user }}"
|
|
group: "{{ ansible_user }}"
|
|
|
|
- name: Template .env.worker
|
|
template:
|
|
src: templates/.env.worker.j2
|
|
dest: "{{ airflow_worker_dir }}/.env"
|
|
mode: '0600'
|
|
|
|
- name: Template docker-compose file for Airflow worker
|
|
template:
|
|
src: ../airflow/configs/docker-compose-dl.yaml.j2
|
|
dest: "{{ airflow_worker_dir }}/configs/docker-compose-dl.yaml"
|
|
mode: '0644'
|
|
|
|
- name: Build Airflow worker image from local Dockerfile
|
|
community.docker.docker_image:
|
|
name: "{{ airflow_image_name }}"
|
|
build:
|
|
path: "{{ airflow_worker_dir }}"
|
|
dockerfile: "Dockerfile"
|
|
source: build
|
|
force_source: true
|
|
when: not fast_deploy | default(false)
|
|
|
|
- name: Build Camoufox image from local Dockerfile
|
|
community.docker.docker_image:
|
|
name: "camoufox:latest"
|
|
build:
|
|
path: "{{ airflow_worker_dir }}/camoufox"
|
|
source: build
|
|
force_source: true
|
|
when: not fast_deploy | default(false)
|
|
|
|
- name: Pull ytdlp-ops-server image only
|
|
community.docker.docker_image:
|
|
name: "{{ ytdlp_ops_image }}"
|
|
source: pull
|
|
when: not fast_deploy | default(false)
|
|
|
|
- name: Generate dynamic configs (camoufox + envoy)
|
|
shell:
|
|
cmd: "docker compose -f configs/docker-compose.config-generate.yaml run --rm config-generator"
|
|
chdir: "{{ airflow_worker_dir }}"
|
|
|
|
- name: Start worker services
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ airflow_worker_dir }}"
|
|
files:
|
|
- configs/docker-compose-dl.yaml
|
|
- configs/docker-compose-ytdlp-ops.yaml
|
|
- configs/docker-compose.camoufox.yaml
|
|
state: present
|
|
remove_orphans: true
|
|
pull: "{{ 'never' if fast_deploy | default(false) else 'missing' }}"
|