filetree - recursively match all files in a directory tree

New in version 2.4.

Synopsis

  • This lookup enables you to template a complete tree of files on a target system while retaining permissions and ownership.
  • Supports directories, files and symlinks, including SELinux and other file properties
  • If you provide more than one path, it will implement a with_first_found logic, and will not process entries it already processed in previous paths. This enables merging different trees in order of importance, or add role_vars to specific paths to influence different instances of the same role.

Parameters

Parameter Choices/Defaults Configuration Comments
_terms
required
path(s) of files to read

Examples

- name: Create directories
  file:
    path: /web/{{ item.path }}
    state: directory
    mode: '{{ item.mode }}'
  with_filetree: web/
  when: item.state == 'directory'

- name: Template files
  template:
    src: '{{ item.src }}'
    dest: /web/{{ item.path }}
    mode: '{{ item.mode }}'
  with_filetree: web/
  when: item.state == 'file'

- name: Recreate symlinks
  file:
    src: '{{ item.src }}'
    dest: /web/{{ item.path }}
    state: link
    force: yes
    mode: '{{ item.mode }}'
  with_filetree: web/
  when: item.state == 'link'

Return Values

Common return values are documented here, the following are the fields unique to this lookup:

Key Returned Description
_raw
list of dictionaries with file information

uid
TODO

selevel
TODO

mtime
TODO

owner
TODO

path
contains the relative path to root

size
TODO

src
TODO

group
TODO

ctime
TODO

seuser
TODO

state
TODO

serole
TODO

gid
TODO

mode
TODO

root
allows filtering by original location

setype
TODO



Status

Author

Hint

If you notice any issues in this documentation you can edit this document to improve it.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/plugins/lookup/filetree.html