Плагины фильтров
Плагины фильтров обрабатывают данные. С помощью правильного фильтра можно извлечь определенное значение, преобразовать типы и форматы данных, выполнить математические вычисления, разделить и конкатенировать строки, вставить даты и время и многое другое. 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