Плагины фильтров
Плагины фильтров преобразуют данные. С помощью подходящего фильтра можно извлечь определённое значение, преобразовать типы и форматы данных, выполнить математические вычисления, разделить и объединить строки, вставить даты и время и многое другое. Ansible использует стандартные фильтры, поставляемые с Jinja2, и добавляет несколько специализированных плагинов фильтров. Вы можете создавать пользовательские фильтры Ansible в виде плагинов.
Включение плагинов фильтров
Добавить пользовательский плагин фильтра можно, поместив его в каталог filter_plugins рядом с файлом play, в роль или в один из каталогов источников плагинов фильтров, настроенных в ansible.cfg.
Использование плагинов фильтров
Фильтры можно использовать везде, где в Ansible доступна обработка шаблонов: в play, в файле переменных или в шаблоне 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>.
См. также
- Плейбуки Ansible
-
Введение в плейбуки
- Плагины инвентаризации
-
Плагины инвентаризации
- Плагины обратного вызова
-
Плагины обратного вызова
- Плагины тестов
-
Плагины тестов
- Плагины поиска
-
Плагины поиска
- Общение
-
Есть вопросы? Нужна помощь? Хотите поделиться своими идеями? Посетите руководство по общению сообщества Ansible
© 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/plugins/filter.html