This documentation explains how to copy files and directories using the copy module in Ansible. How to copy all childs except one?


  1. The options do not clarify how it could be done.
  2. Copying all childs individually is not an option as the parent contains more than 100 childs.

2 Answers 2


Best option would probably to use the synchronize module.

synchronize is a wrapper around the rsync command, meant to make common tasks with rsync easier.

Whereas the copy module copies files using Python and is limited in its functionality. There is a Note in the copy module documentation:

The “copy” module recursively copy facility does not scale to lots (>hundreds) of files. For alternative, see synchronize module, which is a wrapper around rsync.

With the synchronize module it is possible to pass exclude patterns via rsync_opts to the rsync command being executed by Ansible.

# Synchronize passing in extra rsync options
    src: /tmp/helloworld
    dest: /var/www/helloword
      - "--exclude=.git"

But the synchronize module has some caveats. Like the the requirement of rsync installed on local and remote machine. That's why I wouldn't use it when not needed.


If I had to use just copy, here is what I would do. In this example I am using patterns that are specific to Python and a .hiddenfile (I'm using hidden to demonstrate find has a lot of options to explore). However the basic idea - you can go wild with patterns/regex filters to meet your needs.

- name: prepare a list of files to copy from some place
    paths: /var/some-place
    hidden: yes
      - "*.py"
      - ".hiddenfile"
  delegate_to: localhost
  register: target_files

- name: copy files to other place
    src: "{{ item.path }}"
    dest: /var/other-place
  with_items: "{{ target_files.files }}"
    - copy
  • 1
    answer is awesome, worked perfectly for me. We can also exclude some files in the find module with: excludes: 'string' Jun 9, 2018 at 15:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .