--- - 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: 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 state: present remove_orphans: true pull: "{{ 'never' if fast_deploy | default(false) else 'missing' }}"