Ansible Recursive Directory Copy


Answer :

file module is not for copying the files, but for setting attributes of files on the target.

copy module is for copying.


Providing some additional information to the accepted answer..

Recursive copy using directory paths has the following disadvantages:

  • you cannot get changed state information per file copied
  • so --check and --check --diff flags won't show anything
  • you cannot include/exclude specific files/directories to/from the recursion
  • performing corrective changes after the bulk copy will never produce a state with changed=0 and could also affect files that already existed on remote host.

There seems to be a more powerful way to perform a recursive copy, which is to use with_filetree combined with when

- name: "create-remote-dirs"   file:     path: /dest/dir/{{item.path}}     state: directory     mode:  '0775'   with_filetree: sourceDir/   when: item.state == 'directory' - name: "copy-files"   copy:     src: "{{item.src}}"     dest: /dest/dir/{{item.path}}     mode:  '0744'   with_filetree: sourceDir/   # combinations of 'is' and 'is not' can be used below.   when: item.state == 'file'          and item.path is not search("excludedDir/*")         and item.path is not search("*.bak") 

Comments

Popular posts from this blog

Chemistry - Bond Angles In NH3 And NCl3

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Change The Font Size Of Visual Studio Solution Explorer