Spec-Zone.ru › Ansible

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

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

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

Spec-Zone.ru

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