--- - block: - name: Create Temporary directory tempfile: state: directory changed_when: false register: temp_file - name: Create directory structure file: state: directory dest: '{{ temp_file.path }}/{{ item.path }}' mode: "{{ item.mode }}" changed_when: false with_filetree: "./templates/{{ service | mandatory }}" when: item.state == 'directory' loop_control: label: '{{ item.path }}' - name: Template Service Files ansible.builtin.template: src: "{{ item.src }}" dest: "{{ temp_file.path }}/{{ item.path }}" mode: "{{ item.mode }}" force: true changed_when: false with_filetree: "./templates/{{ service | mandatory }}" loop_control: label: '{{ item.path }}' when: item.state == 'file' delegate_to: localhost check_mode: no - name: Create Service Directory file: state: directory path: "{{ compose_dir | mandatory }}" - name: Copy Compose files become: false ansible.posix.synchronize: src: "{{ temp_file.path | mandatory }}/" dest: "{{ service_dir | mandatory }}" archive: false checksum: true delete: true recursive: true mode: push owner: false group: false perms: false register: compose_files - name: Delete temporary directory ansible.builtin.file: path: "{{ temp_file.path }}" state: absent changed_when: false - name: Restart Service community.docker.docker_compose: project_src: "{{ service_dir | mandatory }}" state: present restarted: true recreate: smart build: true remove_orphans: true when: (compose_files.changed and restart == "smart") or restart == "always"