community.general.filetree – recursively match all files in a directory tree
community.general.filetree – recursively match all files in a directory tree
Note
This plugin is part of the community.general collection (version 2.0.1).
To install it use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.filetree
.
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 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 string / required |
path(s) of files to read |
Examples
- name: Create directories
ansible.builtin.file:
path: /web/{{ item.path }}
state: directory
mode: '{{ item.mode }}'
with_community.general.filetree: web/
when: item.state == 'directory'
- name: Template files (explicitly skip directories in order to use the 'src' attribute)
ansible.builtin.template:
src: '{{ item.src }}'
dest: /web/{{ item.path }}
mode: '{{ item.mode }}'
with_community.general.filetree: web/
when: item.state == 'file'
- name: Recreate symlinks
ansible.builtin.file:
src: '{{ item.src }}'
dest: /web/{{ item.path }}
state: link
force: yes
mode: '{{ item.mode }}'
with_community.general.filetree: web/
when: item.state == 'link'
- name: list all files under web/
ansible.builtin.debug:
msg: "{{ lookup('community.general.filetree', 'web/') }}"
Return Values
Common return values are documented here, the following are the fields unique to this lookup:
Key | Returned | Description | |
---|---|---|---|
_raw list / elements=dictionary |
success |
List of dictionaries with file information.
| |
ctime float |
success |
Time of last metadata update or creation (depends on OS).
| |
gid integer |
success |
Group ID of the file/directory.
| |
group any |
success |
Name of the group that owns the file/directory.
| |
mode string |
success |
The permissions the resulting file or directory.
| |
mtime float |
success |
Time of last modification.
| |
owner any |
success |
Name of the user that owns the file/directory.
| |
path path |
success |
Contains the relative path to root.
| |
root path |
success |
Allows filtering by original location.
| |
selevel any |
success |
The level part of the SELinux file context.
| |
serole any |
success |
The role part of the SELinux file context.
| |
setype any |
success |
The type part of the SELinux file context.
| |
seuser any |
success |
The user part of the SELinux file context.
| |
size integer |
success |
Size of the target.
| |
src path |
success |
Full path to file. Not returned when item.state is set to
| |
state string |
success |
TODO
| |
uid integer |
success |
Owner ID of the file/directory.
|
Authors
- Dag Wieers (@dagwieers) <[email protected]>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/filetree_lookup.html