ADG Оставить заявку
Блог Автоматизация 4 мин чтения

Ansible 9 и отечественное железо: тестируем новые модули для MikroTik, Astra Linux и Yadro

Обновились до Ansible 9 и проверили новые коллекции для MikroTik, Astra Linux и Yadro - разбираем, что заработало, что ещё пишем руками.

Контекст момента

Ansible 9 вышел с обновлёнными коллекциями для отечественного сетевого оборудования и ОС - ноябрь 2025

Ansible 9 подоспел в ноябре, и мы его уже ждали - не ради мажорных фич ansible-core, а ради обновлений в коллекциях, которые давно обещали улучшить работу с отечественным оборудованием и ОС. Обновились на нескольких управляемых инфраструктурах, прогнали по стенду и можем рассказать, что изменилось на практике.

Спойлер: часть долгов всё ещё висит, и кастомные модули никуда не делись.

Что изменилось в самом Ansible 9

Если коротко про ядро: ansible-core 2.16 под капотом, Python 3.10 как минимально поддерживаемая версия, небольшая работа над производительностью templating. На больших плейбуках с тяжёлыми переменными стало ощутимо быстрее - замеряли на реальных прогонах, разница есть. Не кардинальная, но когда плейбук крутится на сотне хостов, это приятно.

Из заметного по синтаксису - расширенные возможности vars_prompt и module_defaults стали гибче. Мелочи, которые убирают несколько лишних строк в сложных ролях.

Но всё это было понятно из changelog. Интереснее то, что изменилось в коллекциях.

MikroTik: community.routeros наконец получила нормальные модули

Пожалуй, самая приятная новость. В community.routeros, которая обновилась до версии 3.x в составе Ansible 9, появились полноценные модули для работы с firewall rules, bridge и VLAN - раньше большую часть этих операций приходилось делать через routeros_command с сырыми CLI-командами, что было негибко и хрупко.

Конкретно что заработало:

  • community.routeros.api_modify для firewall - теперь можно декларативно описывать цепочки правил без самодельных скриптов сравнения. Проверили на стенде с RouterOS 7.x, работает стабильно.
  • Управление bridge-интерфейсами через модули вместо CLI. Тут был один нюанс: порядок применения параметров на RouterOS имеет значение, и модуль это учитывает не во всех сценариях - пришлось добавить несколько async_status задач для ожидания применения конфига.
  • VLAN-конфигурация через api_modify с поддержкой тегированных и нетегированных портов. Ролей для MikroTik у нас накопилось немало, и переписывать их на нормальные модули - удовольствие.

Что всё ещё пишем руками: сложная маршрутизация с динамическими протоколами (BGP/OSPF) через API - модули есть, но покрытие неполное, и мы пока используем routeros_command с условными when. Посмотрим, как будет развиваться.

Astra Linux: ansible-аstr... то есть astra collection

Для Astra Linux 2.12, с которой мы активно работаем этой осенью, обновления в коллекции принесли одно важное улучшение: модуль для управления мандатными метками (pdpl_file) теперь входит в официальную community-коллекцию и не требует отдельной установки. Раньше мы тащили его самостоятельно как кастомный модуль, теперь это стало чище.

Что это даёт практически: роли для Astra теперь не требуют отдельной инициализации кастомного пути к модулям. Для AWX это особенно важно - раньше приходилось укладывать кастомный модуль в Execution Environment и не забывать пересобирать EE при его обновлении. Теперь достаточно стандартного requirements.yml.

Что осталось за бортом коллекции: управление доменной частью (SSSD, realm join) всё ещё приходится делать через ansible.builtin и кастомные задачи. Официальной поддержки специфики Astra-домена в коллекции нет, и мы продолжаем поддерживать свои роли для этого.

Yadro: история про кастомные модули

Вот здесь честная картина без прикрас. Yadro (серверное оборудование под управлением их BMC) - без официальной и без сколько-нибудь качественной community-коллекции для Ansible. Это не новость, но обновление до Ansible 9 повода для оптимизма не добавило.

Мы работаем с несколькими стойками Yadro у одного из заказчиков с КИИ-инфраструктурой, и автоматизация управления железом (конфигурация BIOS, RAID, обновление прошивок) идёт через Redfish API - благо его Yadro поддерживает. Модули из community.general для Redfish в Ansible 9 стали чуть удобнее, но специфика Yadro в части нестандартных OEM-расширений никуда не делась.

Итог: пишем тонкий слой кастомных модулей поверх Redfish, которые знают про Yadro-специфику. Это рабочий подход, но это именно кастом, а не коробочное решение.

Как прошло обновление самого Ansible

Обновление с 8-й до 9-й версии в AWX-окружении прошло без сюрпризов - замена Execution Environment с новым тегом, прогон тестовых плейбуков на стенде. Из трёх управляемых инфраструктур две обновились без единого падения. На третьей один плейбук поломался из-за устаревшего использования include вместо include_tasks - предупреждение об этом висело с восьмой версии, просто мы его откладывали. Починили за полчаса.

Это, кстати, хорошая иллюстрация того, почему стоит читать deprecation warnings своевременно, а не когда оно уже упало.

Где сейчас

Ansible 9 - это эволюция, не революция. Для тех, кто работает с российским оборудованием и ОС, важнее всего обновление community.routeros и появление pdpl_file в нормальной коллекции. По MikroTik автоматизация стала заметно опрятнее; по Astra - убрали одну точку ручного сопровождения.

Yadro ждём. В managed-сопровождении отечественных инфраструктур это ощутимый пробел - каждый новый объект с этим оборудованием требует внимания к кастомному слою, который где-то надо хранить и поддерживать. Redfish помогает, но не закрывает всё.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.