Найти в Дзене
Handlers в Ansible: умный перезапуск сервисов
Анотация Если у тебя в плейбуках после каждой правки конфига идёт ещё одна таска service: restarted, а nginx в логах дёргается по десять раз за запуск — значит, пора познакомиться с handlers. В этой статье разберём, что такое handler, как notify связывает его с тасками и почему сервис перезапускается ровно один раз, даже если его «дёрнули» сразу несколько задач. Зачем вообще нужны handlers Типичная история: у тебя есть несколько задач, которые правят конфиги nginx; после каждой ты на всякий случай...
6 дней назад
Шаблоны Jinja2 в Ansible: первые шаги
Аннотация Если ты устал править конфиги руками под каждый сервер, а в плейбуках всё ещё везде copy, то самое время познакомиться с шаблонами. В этой статье разберём, что такое шаблоны Jinja2 в Ansible, почему модуль template удобнее, чем copy, как подставлять переменные ({{ my_var }}), писать простой if и for прямо внутри файла и использовать пару полезных фильтров (default, upper, lower, join). Зачем вообще нужны шаблоны Jinja2 Боль классическая: один и тот же конфиг на десятках серверов; везде...
1 неделю назад
Циклы в Ansible: loop, with_items и как не копировать таски
Аннотация Циклы в Ansible помогают не копировать одну и ту же задачу по десять раз: добавлять сразу несколько пользователей, ставить список пакетов, создавать пачку файлов. В этой статье разберём, как использовать loop, чем он отличается от старого with_items, и как писать один аккуратный таск вместо простыни копипасты. Зачем вообще циклы в Ansible Типичная боль новичка: есть 5 пользователей — и появляется 5 одинаковых тасок, отличающихся только именем. Работает, но: тяжело поддерживать — нужно...
1 неделю назад
Условия в Ansible: when, changed_when, failed_when без боли
Условия в Ansible: when, changed_when, failed_when без боли — это способ сделать плейбуки умнее, чище и предсказуемее. В этой статье на живых примерах разберём, как работать с условиями when, переопределять статус изменений через changed_when и мягко обрабатывать ошибки с помощью failed_when, чтобы Ansible не «орал» changed и failed там, где всё в порядке. Пишем простыми словами, без магии: вы поймёте, когда и как применять условия в Ansible в своих реальных плейбуках. В реальной жизни у нас редко «идеальный» одинаковый зоопарк серверов...
2 недели назад
Ansible tasks и playbook: простыми словами
Аннотация Если вы только начинаете работать с Ansible и запутались в терминах play, task и playbook, эта статья для вас. Мы разберём, как устроен playbook, что такое Ansible tasks, чем таска отличается от модуля, и напишем небольшой плейбук “с нуля”, который устанавливает пакет, кладёт конфиг и перезапускает сервис. В конце будет краткий чеклист “что сделать прямо сейчас” и подсказка, куда двигаться дальше. Представьте, что вы пишете список дел для группы серверов: В мире Ansible: Проще аналогия: Play всегда описывается на верхнем уровне файла, а таски живут внутри него, в списке tasks:...
2 недели назад
Ansible переменные: простыми словами (Часть 2)
В этой части разбираем переменные в Ansible: как их регистрировать, где объявлять, как к ним обращаться, чем отличаются переменные в инвентаре от переменных в playbook, и что такое фильтры Jinja2 для преобразования значений. Статья подойдёт тем, кто уже запускал простые playbook-и и хочет перестать «гадать, откуда взялось это значение». Иногда задача не только «выполнить команду», но и запомнить её результат, чтобы использовать дальше. Для этого в Ansible есть ключевое слово register. Простой пример:...
3 недели назад
Ansible переменные: простыми словами (Часть 1)
Переменные в Ansible — это простой способ один раз задать значение и использовать его где угодно. В этой статье простыми словами разбираем ansible переменные: как их объявлять и применять, как подставлять значения через Jinja2, работать со списками и словарями, а ещё объединять конфигурации с помощью фильтров combine и приёма merge variables. Подойдёт новичкам и тем, кто хочет навести порядок в плейбуках без лишнего «магического» синтаксиса. Переменная — это «коробочка с ярлыком». Ярлык (имя) должен быть удобным и понятным...
3 недели назад
Ansible inventory: что это и как настроить (Часть 2)
Аннотация. В этой части продолжаем разбирать инвентарь Ansible простыми словами: порядок загрузки, переменные (групповые и хостовые), псевдонимы, поведенческие параметры подключения и подводные камни. С готовыми INI/YAML примерами и чек‑листом. Что это. Ansible может собирать инвентарь из нескольких источников: файла INI/YAML, целой директории, нескольких -i подряд, динамического инвентаря. Все эти источники объединяются в один «каталог» хостов и групп. Как управлять. [defaults] inventory = inventories/dev Подводные камни...
1 месяц назад
Ansible inventory: что это и как настроить (Часть 1)
Ansible inventory — это список ваших хостов и их групп. В этой статье (Часть 1) разберём, зачем нужен inventory, какие есть форматы (INI и YAML) с живыми примерами, как работать с группами, children, диапазонами хостов, подключать несколько источников через -i, и организовать inventory в каталоге. Все примеры — с понятными кусочками кода и разбором типичных ошибок. Inventory — это «карта инфраструктуры» для Ansible: список хостов, их групп. Зачем: Итог: без корректного inventory Ansible «не знает», куда подключаться и как объединять хосты...
1 месяц назад
Ansible.cfg: как использовать ansible-config init и не сломать проект
Аннотация. Ansible.cfg — центральный файл настроек Ansible. В статье разберём, зачем он нужен, где хранить его в реальных проектах, как сгенерировать рабочий конфиг через ansible-config init и какие параметры действительно помогают джунам и продовой команде. Отдельно покажем, какие настройки в ansible.cfg могут быть опасны и как избежать скрытых рисков. 📦 Исходники: весь код и примеры из этой и следующих статей — в репозитории — 🐙 GitHub: https://github.com/IaC-in-Russian/infra-as-code-ru ansible...
1 месяц назад
Ansible: задачи, модули, шаблоны и хендлеры — примеры
Аннотация. Ansible — это простой способ автоматизировать администрирование: от установки пакетов до раскатки конфигов. В статье разберём, что такое Ansible, какой протокол она использует, альтернативы, из чего состоит экосистема (инвентарь, плейбуки, задачи, роли и т. д.) и как поставить Ansible на Ubuntu 24.04. В конце — что будет в следующих материалах серии. 📦 Исходники: весь код и примеры из этой и следующих статей — в репозитории — 🐙 GitHub: https://github.com/IaC-in-Russian/infra-as-code-ru...
1 месяц назад
Что такое IaC: зачем это нужно и как начать
Аннотация. Инфраструктура как код (IaC) — это способ описывать сервера, сети и сервисы в файлах, а не руками на машине. Ниже — принципы, где это применимо, обзор ключевых инструментов и чеклист, как внедрять без боли. ℹ️ Небольшое примечание. По плану сегодня должна была выйти статья про ansible. Я перенёс её на следующий выпуск, чтобы сначала коротко объяснить, что такое IaC и зачем он нам. Практика — сразу после этого текста. Ручные правки — это «память администратора». Сегодня получилось, завтра — забыли ключ, послезавтра коллега сделал «чуть по-другому», и два сервера уже разные...
1 месяц назад