I am trying 2 methods to delete all files inside a directory my_dir. This is a parameter managed from another file. My workflow is creating the directory first, then copy files in that directory, then delete all files in there. So here is my first solution using loop_control:
--- # tasks file for deploy_files - name: Create model directory file: path: "{{ my_dir }}" state: directory owner: "{{ my_daemon_name }}" group: "{{ my_daemon_name }}" mode: u=rwx,g=rX,o=rX - name: Copy models copy: src: "{{ files_src_dir }}" dest: "{{ my_dir }}" owner: "{{ my_daemon_name }}" group: "{{ my_daemon_name }}" mode: u=rw,g=r,o=r - name: Get directory listing find: path: "{{ my_dir }}" file_type: any hidden: yes register: directory_content_result - name: Remove directory content file: path: "{{ item.path }}" state: absent owner: "{{ my_daemon_name }}" group: "{{ my_daemon_name }}" mode: u=rw,g=r,o=r with_items: "{{ directory_content_result.files }}" loop_control: label: "{{ item.path }}" And, here is the 2nd solution without loop_control:
--- # tasks file for deploy_files - name: Create model directory file: path: "{{ my_dir }}" state: directory owner: "{{ my_daemon_name }}" group: "{{ my_daemon_name }}" mode: u=rwx,g=rX,o=rX - name: Copy models copy: src: "{{ files_src_dir }}" dest: "{{ my_dir }}" owner: "{{ my_daemon_name }}" group: "{{ my_daemon_name }}" mode: u=rw,g=r,o=r - name: Find files in directory find: path: "{{ my_dir }}" register: files_to_delete - name: Remove files in directory file: path: "{{ item.path }}" state: absent owner: "{{ my_daemon_name }}" group: "{{ my_daemon_name }}" mode: u=rwx,g=rX,o=rX with_items: "{{ files_to_delete.files }}" None of them work as when I ran my script, I got:
ERROR: Idempotence test failed because of the following tasks.
Please, note that my tasks Create model directory and Copy models works perfectly fine as I already tested them. My script failed only when I added the last 2 tasks to delete the files. Could someone help me what I did wrong here please? Thank you.
