--- - name: Local Loopback Deployment Operations hosts: minipc gather_facts: false tasks: - name: Sync GitOps stacks to target machine ansible.posix.synchronize: src: "{{ playbook_dir }}/docker/stacks/" dest: /opt/homelab/stacks/ archive: yes delete: no recursive: yes rsync_opts: - "--exclude=.git" - "--exclude=.gitignore" - name: Sync GitOps data to target machine ansible.posix.synchronize: src: "{{ playbook_dir }}/docker/data/" dest: /opt/homelab/data/ archive: yes delete: no recursive: yes rsync_opts: - "--exclude=.git" - "--exclude=.gitignore" - name: Identify all docker-compose stack directories ansible.builtin.find: paths: /opt/homelab/stacks file_type: file patterns: "docker-compose.yml" recurse: yes register: compose_files - name: Apply Docker Compose configurations ansible.builtin.command: docker compose up -d --remove-orphans args: chdir: "{{ item.path | dirname }}" loop: "{{ compose_files.files }}" register: compose_results changed_when: "'Started' in compose_results.stdout or 'Created' in compose_results.stdout or 'Recreated' in compose_results.stdout"