Spec-Zone.ru › Ansible

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

Полный путь к файлу.

Не возвращается, если для _raw[].state задано значение directory.

Возвращается: при успешном выполнении

state

string

Тип результирующего файла или каталога.

directory для каталога, file для обычного файла, link для символической ссылки.

Файлы других типов пропускаются и не возвращаются.

Возвращается: при успешном выполнении

Возможные значения:

  • "directory"
  • "file"
  • "link"

uid

integer

ID владельца файла/каталога.

Возвращается: при успешном выполнении

Авторы

  • Dag Wieers (@dagwieers)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API