community.general.filetree – рекурсивный поиск всех файлов в дереве каталогов
Примечание
Этот плагин входит в состав коллекции community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.filetree.
Описание
- Этот поиск позволяет вам шаблонизировать полное дерево файлов на целевой системе, сохраняя права и владение.
- Поддерживает каталоги, файлы и символические ссылки, включая SELinux и другие свойства файлов.
- Если вы предоставите более одного пути, будет реализована логика first_found, и записи, которые уже были обработаны в предыдущих путях, не будут обрабатываться. Это позволяет объединять разные деревья в порядке важности или добавлять role_vars в определённые пути, чтобы влиять на разные экземпляры одного и того же роли.
Параметры
| Параметр | Варианты/Значения по умолчанию | Настройка | Комментарии |
|---|---|---|---|
| _terms строка / обязательно | путь(и) к файлам для чтения |
Примеры
- 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/') }}"
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — поля, уникальные для этого поиска:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| _raw список / элементы=словарь | успех | Список словарей с информацией о файлах. | |
| ctime вещественное число | успех | Время последнего обновления или создания метаданных (зависит от ОС). | |
| gid целое число | успех | Идентификатор группы файла/каталога. | |
| group любой | успех | Имя группы, которая владеет файлом/каталогом. | |
| mode строка | успех | Разрешения результирующего файла или каталога. | |
| mtime вещественное число | успех | Время последнего изменения. | |
| owner любой | успех | Имя пользователя, который владеет файлом/каталогом. | |
| path путь | успех | Содержит относительный путь к корню. | |
| root путь | успех | Позволяет фильтрацию по исходному расположению. | |
| selevel любой | успех | Часть уровня SELinux контекста файла. | |
| serole любой | успех | Часть роли SELinux контекста файла. | |
| setype любой | успех | Часть типа SELinux контекста файла. | |
| seuser любой | успех | Часть пользователя SELinux контекста файла. | |
| size целое число | успех | Размер целевого объекта. | |
| src путь | успех | Полный путь к файлу. Не возвращается, когда item.state установлено в directory. | |
| state строка | успех | TODO | |
| uid целое число | успех | Идентификатор владельца файла/каталога. | |
Авторы
- Dag Wieers (@dagwieers) <dag@wieers.com>
© 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