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>