community.general.filetree lookup — рекурсивное сопоставление всех файлов в дереве каталогов
Примечание
Этот lookup-плагин входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать её в плейбуке, укажите: community.general.filetree.
Краткое описание
- Этот lookup позволяет шаблонизировать полное дерево файлов в целевой системе, сохраняя разрешения и владельца.
- Поддерживаются каталоги, файлы и символические ссылки, включая SELinux и другие свойства файлов.
- Если указано несколько путей, применяется логика first_found, а записи, обработанные в предыдущих путях, повторно не обрабатываются. Это позволяет объединять разные деревья в порядке приоритета или добавлять role_vars к определённым путям, чтобы влиять на различные экземпляры одной и той же роли.
Термины
Параметр | Комментарии |
|---|---|
Термины list / elements=string / обязательный | Путь или пути к файлам для чтения. |
Именованные параметры
Здесь описаны именованные параметры lookup. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.general.filetree', key1=value1, key2=value2, ...) и query('community.general.filetree', key1=value1, key2=value2, ...)
Параметр | Комментарии |
|---|---|
exclude string добавлено в community.general 12.0.0 | Строка с регулярным выражением для исключения файлов. Применяется к базовому имени файла или каталога. |
Примечания
Примечание
- При совместном использовании именованных и позиционных параметров позиционные параметры необходимо указывать перед именованными:
lookup('community.general.filetree', term1, term2, key1=value1, key2=value2)иquery('community.general.filetree', term1, term2, key1=value1, key2=value2)
Примеры
- 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 }}'
# Your template files should be stored with a .j2 file extension,
# but should not be deployed with it. splitext|first removes it.
dest: /web/{{ item.path | splitext | first }}
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
follow: false # avoid corrupting target files if the link already exists
force: true
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/') }}"
- name: list all files under web/; exclude .git and .node_modules
ansible.builtin.debug:
msg: >-
{{ lookup('community.general.filetree', 'web/', exclude='^(\.git|\.node_modules)$') }}
Возвращаемое значение
Ключ | Описание |
|---|---|
Возвращаемое значение list / elements=dictionary | Список словарей с информацией о файлах. Возвращается: при успешном выполнении |
|
ctime float |
Время последнего обновления метаданных или создания (зависит от ОС). Возвращается: при успешном выполнении |
|
gid integer |
ID группы файла/каталога. Возвращается: при успешном выполнении |
|
group any |
Имя группы, которой принадлежит файл/каталог. Возвращается: при успешном выполнении |
|
mode string |
Разрешения результирующего файла или каталога. Возвращается: при успешном выполнении |
|
mtime float |
Время последнего изменения. Возвращается: при успешном выполнении |
|
owner any |
Имя пользователя, которому принадлежит файл/каталог. Возвращается: при успешном выполнении |
|
path path |
Содержит относительный путь от корневого каталога. Возвращается: при успешном выполнении |
|
root path |
Позволяет фильтровать по исходному расположению. Возвращается: при успешном выполнении |
|
selevel any |
Часть уровня в контексте файла SELinux. Возвращается: при успешном выполнении |
|
serole any |
Часть роли в контексте файла SELinux. Возвращается: при успешном выполнении |
|
setype any |
Часть типа в контексте файла SELinux. Возвращается: при успешном выполнении |
|
seuser any |
Часть пользователя в контексте файла SELinux. Возвращается: при успешном выполнении |
|
size integer |
Размер целевого объекта. Возвращается: при успешном выполнении |
|
src path |
Полный путь к файлу. Не возвращается, если для Возвращается: при успешном выполнении |
|
state string |
Тип результирующего файла или каталога.
Файлы других типов пропускаются и не возвращаются. Возвращается: при успешном выполнении Возможные значения:
|
|
uid integer |
ID владельца файла/каталога. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/filetree_lookup.html