Десятки тысяч компаний используют Ansible для управления конфигурациями и автоматизации ИТ-процессов. И мы подготовили подборку полезных материалов, которые помогут познакомиться с этим инструментом — от базовых руководств уровня «с чего начать» до продвинутых практик по написанию эффективных плейбуков.

Быстрый старт с Ansible
Статья инженера Алекса Докинза — хорошее место, чтобы начать свое знакомство с Ansible. Сам Алекс работает консультантом по внедрению облачных технологий в норвежской ИТ-компании, разрабатывающей cloud-сервисы и инструменты управления корпоративной инфраструктурой. Поскольку руководство рассчитано на новичков, автор начинает с основ: объясняет, что такое Ansible, какие задачи он решает. Разумеется, инженер дает рекомендации, как настроить этот инструмент.
Еще Алекс разобрал структуру плейбуков — YAML-файлов для автоматизации — на примере файла setup-nginx.yml, содержащего инструкции по установке и настройке Nginx. Он также дал базовые советы по конфигурации и модификации плейбуков. Руководство инженер опубликовал в личном блоге, где делится профессиональным опытом. Если вам понравился стиль изложения Алекса, рекомендуем ознакомиться и с другими его материалами. Так, в одном из постов он анализирует юридические сложности, которые могут возникнуть у программиста при подключении корпоративного почтового сервиса для личного проекта, и предлагает способы их решения. В другом — показывает, как научить систему ИИ решать судоку за несколько миллисекунд.
Взять и написать качественный плейбук
Если предыдущее руководство дает общее представление о плейбуках, то в этом материале можно почерпнуть знания по их оптимизации, принципах построения и ошибках при работе с ними. Он рассчитан на тех, кто уже успел познакомиться с Ansible на практике. Руководство подготовлено в 2022 году специалистами словенской компании, которая занимается автоматизацией ИТ-процессов с помощью Ansible. Организация сотрудничает с Red Hat, разрабатывает сертифицированные коллекции для Ansible и участвует в open source-проектах.
Авторы руководства убеждены: подготовка хорошего плейбука начинается с правильного выбора коллекции, поэтому дают рекомендации по оценке её качества. Во-первых, важно изучить документацию — в ней должны быть четкие инструкции и практические примеры использования. Во-вторых, необходимо проверить читаемость кода: все параметры модулей должны обладать понятными описательными именами. Определить степень надёжности выбранной коллекции можно с помощью функции check_mode — она позволяет отобразить, какие изменения произведет плейбук.
Отдельное внимание авторы уделяют тестированию и диагностике CI/CD-конфигураций. В этом контексте они рекомендуют использовать два инструмента:
ansible-test — для проверки производительности и совместимости модулей;
molecule — для тестирования синтаксиса и пробного запуска плейбуков в изолированных средах (виртуальных машинах или контейнерах).
Наконец, руководство содержит подраздел, посвященный лучшим практикам работы с Ansible-плейбуками. Специалисты XLAB Steampunk рекомендуют использовать идемпотентные модули (они гарантируют безопасное повторное выполнение задач), применять FQCN во избежание конфликтов, а при разработке ролей или коллекций следовать структуре, описанной в документации Ansible. Разумеется, авторы разбирают, как можно избежать ошибок. В частности, они рекомендуют регулярно проверять код с помощью Ansible Lint — специального инструмента для выявления уязвимостей в плейбуках. Для защиты данных предлагают использовать Ansible Vault.
Разработка сценариев: практика
Предложенная выше статья не единственный гайд по Ansible, опубликованный XLAB Steampunk. Специалисты компании также подготовили пошаговое руководство по разработке плейбуков, а еще в 2023 году — проводили Steampunk Ansible Challenge. Это — серия технических заданий по написанию плейбуков. Участники должны были пройти пять испытаний, посвященных различным аспектам Ansible.
Хотя состязание уже завершено, тексты задач до сих пор открыты для всех желающих (репозиторий на GitHub). С их помощью можно найти интересные для себя решения, проверить собственные знания. Но стоит учитывать, что условия писались с расчётом на опыт конкурсантов. В первом испытании участникам предложили примерить на себя роль DevOps-инженера, которому поручили развернуть небольшой проект. Для этого был подготовлен плейбук, сгенерированный ChatGPT. Конкурсанты должны были проанализировать его на соответствие требованиям и наличие ошибок. В следующем задании предыстория иная: претендентам предлагалось адаптировать старый сценарий автоматизации, чтобы он стал совместим с Ansible Core 2.14. В последнем испытании претенденты могли проверить свои навыки оптимизации кода и стандартизации плейбуков. Для этого нужно было провести отладку проблем с шаблонами Jinja2.
Лучшие и худшие практики в Ansible
В 2023 году немецкая компания, разрабатывающая цифровые решения для бизнеса и госсектора и оказывающая услуги консалтинга, опубликовала в открытом доступе базу знаний с разбором эффективных и неудачных подходов при работе с плейбуками. Руководство включает семь разделов, каждый из которых оформлен в формате «хорошая практика vs плохая». Например, авторы отмечают, что краткая запись в стиле key=value ухудшает читаемость кода. В то же время использование нативного YAML, хоть и увеличивает количество строк, избавляет от необходимости применять горизонтальную прокрутку и перенос текста.
В одном из разделов разработчики рекомендуют использовать встроенные модули — которых порядка 6 тыс. — для управления системами (а не shell-команды). Также инженеры советуют отключать функцию gather_facts, которая собирает данные об управляемом сервере в виде системных переменных, если она не требуется. Другие разделы посвящены непредвиденным побочным эффектам при запуске плейбуков, работе с префиксами и разделению сред.
В целом объём у статей совсем небольшой — на ознакомление с текстом и сниппетами кода уйдут 2–3 минуты. Однако материал рассчитан на тех, кто уже знаком с Ansible. Чтобы извлечь максимум пользы из этого ресурса, читатель должен знать YAML-синтаксис, что такое роли, переменные и шаблоны Jinja2. При этом база знаний развивается как открытый проект на GitHub. Желающие могут поучаствовать и поделиться своими примерами хороших и плохих практик при работе с Ansible.
Мегаплейбук для тестов и разработок
MASH — это масштабный сборник сценариев автоматизации, включающий готовые конфигурационные файлы с описанием задач для развёртки сервисов на собственном сервере. С его помощью можно быстро настроить десятки решений — актуальный список доступен по ссылке. Сам «мегаплейбук» был разработан в 2023 году командой, которая в свое время запустила популярный плейбук matrix-docker-ansible-deploy.

Инженеры отмечают, что ранее использовали отдельные сценарии для каждого сервиса, но со временем их поддержка стала слишком сложной. Чтобы упростить процесс, команда сформировала единый Ansible-плейбук. Он позволяет легко подключать и отключать сервисы без дополнительных настроек, упрощает работу с небольшими приложениями (например, Miniflux), у которых нет собственных плейбуков, и организует согласованное резервное копирование. Для работы MASH необходима библиотека passlib для Python и некоторые другие компоненты на локальной машине.
Автоматизация настройки BRAS с Ansible
Мы в VAS Experts подготовили материал по настройке BRAS с помощью Ansible. У нас обширный опыт работы в сфере телекоммуникаций, и мы знаем, насколько сложной бывает эта задача. Особенно если приходится иметь дело с масштабируемой и меняющейся инфраструктурой. Человеческий фактор может вносить множество ошибок.
Ansible упрощает автоматизацию настройки BRAS благодаря нескольким преимуществам. Во-первых, его легко внедрить в существующую инфраструктуру, поскольку он не требует установки агентов на удалённые хосты (в отличие от многих альтернативных инструментов). Во-вторых, Ansible ускоряет выполнение рутинных задач и позволяет создавать унифицированные, воспроизводимые конфигурации.
В нашем блоге мы разбираем этапы автоматизации настройки BRAS. Гайд охватывает пример построения сценария и применение пользовательских настроек с помощью ansible-playbook. Материал будет полезен начинающим сетевым администраторам.
О чем еще мы пишем в нашем блоге на Хабре:
Деньги и автономия — ситуация в сфере баз данных уязвимостей. Обсуждаем ситуацию вокруг глобальной базы данных CVE — что произошло после попытки «обрубить» финансирование — а также европейские и российские инициативы.
Передел мирового рынка интернет-регистраторов продолжается. Материал о том, что происходит с регистратором AFRINIC — его работа находится под угрозой из-за действий бывшего партнера [а также неудачных решений руководства].
В Европе снова заговорили об отказе от американских платформ и суверенном облаке — анализ ситуации. Европейские политики называют зависимость от американских облачных провайдеров «угрозой национальной безопасности», но продолжают пользоваться их услугами. Разбираемся, что планируют делать в ЕС.
Kwentin3
А есть тут стороники saltstack?