Spec-Zone.ru › Ansible

Плагины фильтров

  • Включение плагинов фильтров
  • Использование плагинов фильтров
  • Список плагинов

Плагины фильтров обрабатывают данные. С помощью правильного фильтра можно извлечь определенное значение, преобразовать типы и форматы данных, выполнить математические вычисления, разделить и конкатенировать строки, вставить даты и время и многое другое. Ansible использует стандартные фильтры, поставляемые с Jinja2, и добавляет некоторые специализированные плагины фильтров. Вы можете создавать пользовательские фильтры Ansible как плагины.

Включение плагинов фильтров

Вы можете добавить пользовательский плагин фильтра, поместив его в директорию filter_plugins рядом с вашим плееем, внутри роли или поместив его в одну из директорий с источниками плагинов фильтров, настроенных в ansible.cfg.

Использование плагинов фильтров

Вы можете использовать фильтры везде, где можно использовать шаблоны в Ansible: в плеее, в файлах переменных или в Jinja2-шаблоне для модуля template. Дополнительную информацию об использовании плагинов фильтров см. в разделе Использование фильтров для обработки данных. Фильтры могут возвращать любые типы данных, но если вы хотите всегда возвращать булево значение, (true или false) вам следует использовать тест.

vars:
   yaml_string: "{{ some_variable|to_yaml }}"

Фильтры являются предпочтительным способом обработки данных в Ansible. Вы можете определить фильтр, потому что он обычно предваряется |, а выражение слева от него является первым входом фильтра. Дополнительные параметры могут быть переданы в сам фильтр, как и в большинство программируемых функций. Эти параметры могут быть positional (передаются в порядке) или named (передаются в виде пар ключ-значение). При передаче обоих типов позиционные аргументы должны идти первыми.

passing_positional: {{ (x == 32) | ternary('x is 32', 'x is not 32') }}
passing_extra_named_parameters: {{ some_variable | to_yaml(indent=8, width=1337) }}
passing_both: {{ some_variable| ternary('true value', 'false value', none_val='NULL') }}

В документации фильтры всегда будут иметь параметр C(_input), который соответствует выражению слева от c(|). Поле C(positional:) в документации покажет, какие параметры являются позиционными и в каком порядке они требуются.

Список плагинов

Вы можете использовать ansible-doc -t filter -l для просмотра списка доступных плагинов. Используйте ansible-doc -t filter <plugin name> для просмотра документации и примеров, специфичных для плагинов.

См. также

Playbooks Ansible

Введение в playbooks

Плагины инвентаризации

Плагины инвентаризации

Плагины обратного вызова

Плагины обратного вызова

Плагины тестов

Плагины тестов

Плагины поиска

Плагины поиска

Общение

У вас есть вопросы? Нужна помощь? Хотите поделиться своими идеями? Посетите руководство по общению Ansible

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

Spec-Zone.ru

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