HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Одной из ключевых особенностей Ansible является использование фильтров, основанных на системе шаблонов Jinja2, позволяющих трансформировать данные и управлять ими в процессе выполнения задач. На синтаксическом уровне, фильтры это функции, применяемые к переменным или выражениям для их изменения или форматирования.</p>
1 <p>Одной из ключевых особенностей Ansible является использование фильтров, основанных на системе шаблонов Jinja2, позволяющих трансформировать данные и управлять ими в процессе выполнения задач. На синтаксическом уровне, фильтры это функции, применяемые к переменным или выражениям для их изменения или форматирования.</p>
2 <p>Фильтры применяются к переменным или значениям внутри двойных фигурных скобок {{ }} с использованием символа вертикальной черты |. Например, {{ some_variable | filter_name }}. Ниже, несколько примеров:</p>
2 <p>Фильтры применяются к переменным или значениям внутри двойных фигурных скобок {{ }} с использованием символа вертикальной черты |. Например, {{ some_variable | filter_name }}. Ниже, несколько примеров:</p>
3 <p>Здесь применяются различные фильтры к списку чисел (переменная numbers). Синтаксически это выглядит как имя функции фильтрации, указанное после вертикальной черты. Вот что делают эти фильтры:</p>
3 <p>Здесь применяются различные фильтры к списку чисел (переменная numbers). Синтаксически это выглядит как имя функции фильтрации, указанное после вертикальной черты. Вот что делают эти фильтры:</p>
4 <ul><li>min находит минимальное значение</li>
4 <ul><li>min находит минимальное значение</li>
5 <li>max находит максимальное значение</li>
5 <li>max находит максимальное значение</li>
6 <li>unique находит уникальные значения (результатом является список, поэтому для вывода на печать используем цикл)</li>
6 <li>unique находит уникальные значения (результатом является список, поэтому для вывода на печать используем цикл)</li>
7 <li>random позволяет выбрать случайное значение из списка</li>
7 <li>random позволяет выбрать случайное значение из списка</li>
8 </ul><p>При выполнении этого плейбука мы получим вот такой результат:</p>
8 </ul><p>При выполнении этого плейбука мы получим вот такой результат:</p>
9 <p>Какие реальные задачи можно решать с помощью этих фильтров? Предположим, что мы хотим выбрать сервер из списка по определенным параметрам. Как мы можем применить фильтры:</p>
9 <p>Какие реальные задачи можно решать с помощью этих фильтров? Предположим, что мы хотим выбрать сервер из списка по определенным параметрам. Как мы можем применить фильтры:</p>
10 <ul><li>Найти сервер с самым большим количеством CPU.</li>
10 <ul><li>Найти сервер с самым большим количеством CPU.</li>
11 <li>Найти сервер с наименьшим количеством оперативной памяти.</li>
11 <li>Найти сервер с наименьшим количеством оперативной памяти.</li>
12 </ul><p>Ниже еще несколько примеров фильтров, которые встречаются достаточно часто в реальной жизни:</p>
12 </ul><p>Ниже еще несколько примеров фильтров, которые встречаются достаточно часто в реальной жизни:</p>
13 <p>Рассмотрим фильтры, которые мы использовали, более подробно:</p>
13 <p>Рассмотрим фильтры, которые мы использовали, более подробно:</p>
14 <ul><li>Фильтр ipaddr позволяет извлекать из ip-адреса различные его части. В примере выше извлекается адрес.</li>
14 <ul><li>Фильтр ipaddr позволяет извлекать из ip-адреса различные его части. В примере выше извлекается адрес.</li>
15 <li>Фильтр hash создает хэш, который затем может быть использован, например, в файлах конфигурации.</li>
15 <li>Фильтр hash создает хэш, который затем может быть использован, например, в файлах конфигурации.</li>
16 <li>Фильтры basename и dirname работают с путями. С помощью них можно выделить имя файла и путь к директории</li>
16 <li>Фильтры basename и dirname работают с путями. С помощью них можно выделить имя файла и путь к директории</li>
17 <li>expanduser раскрывает путь.<em>~/Movies</em>, для пользователя<em>hexlet</em>превратится в<em>/home/hexlet/Movies</em>.</li>
17 <li>expanduser раскрывает путь.<em>~/Movies</em>, для пользователя<em>hexlet</em>превратится в<em>/home/hexlet/Movies</em>.</li>
18 </ul><p>Другие популярные фильтры:</p>
18 </ul><p>Другие популярные фильтры:</p>
19 <ul><li>default: Устанавливает значение по умолчанию для переменной, если она не определена.</li>
19 <ul><li>default: Устанавливает значение по умолчанию для переменной, если она не определена.</li>
20 <li>map: Преобразует каждый элемент в списке.</li>
20 <li>map: Преобразует каждый элемент в списке.</li>
21 <li>json_query: Позволяет запросить структуры JSON с помощью специального запроса.</li>
21 <li>json_query: Позволяет запросить структуры JSON с помощью специального запроса.</li>
22 <li>regex_replace: Заменяет текст, используя регулярные выражения.</li>
22 <li>regex_replace: Заменяет текст, используя регулярные выражения.</li>
23 </ul><p>Ansible позволяет разработчикам создавать собственные фильтры на Python, что расширяет возможности кастомизации и адаптации инструмента под конкретные задачи.</p>
23 </ul><p>Ansible позволяет разработчикам создавать собственные фильтры на Python, что расширяет возможности кастомизации и адаптации инструмента под конкретные задачи.</p>