Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

ansible-core 2.21.5 исправляет три сбоя в подключениях, dnf5 и тестировании коллекций

В ansible-core 2.21.5 разработчики сосредоточились на трёх ситуациях, которые легко встретить в реальной автоматизации: правах служебного каталога подключений, загрузке RPM-пакетов через dnf5 и проверке коллекций с параметром secret. Релиз опубликован 5 октября 2026 года и содержит именно точечные исправления без отдельного списка новых функций.

ansible-core 2.21.5
ansible-core 2.21.5

В ansible-core 2.21.5 вошли всего три исправления

Небольшой changelog иногда говорит о характере релиза больше, чем длинный список функций. В официальных release notes для ansible-core 2.21.5 перечислены три bugfix — и каждый затрагивает рабочий сценарий, где автоматизация может вести себя иначе, чем ожидает автор playbook или коллекции.

Официальное объявление появилось 5 октября 2026 года. GitHub помечает v2.21.5 как актуальный релиз ветки 2.21, а PyPI указывает ту же дату публикации. В официальных материалах версия называется именно ansible-core 2.21.5, поэтому дальше используем это название.

Изменения распределились по трём компонентам:

КомпонентСитуация до исправленияПоведение в 2.21.5
ansible-connectionВ редком случае каталог persistent connections мог создаваться при недостаточно приватной цепочке родительских каталоговAnsible обеспечивает приватные права для каталога persistent connections
ansible-testvalidate-modules мог завершаться ошибкой, если документация плагина содержала ключ secretКлюч secret принимается при проверке документации коллекции
dnf5При download_only=true параметр download_dir не передавался в конфигурационный destdir DNF так, как описано в документацииdestdir теперь получает значение из download_dir

По масштабу это сервисный релиз. При этом исправления попадают сразу в три разных слоя Ansible: транспорт и постоянные подключения, инструменты разработки коллекций и управление пакетами.

Persistent connections получают более предсказуемые права доступа

Первое изменение касается ansible-connection. Этот компонент участвует в работе постоянных подключений, которые Ansible использует в сценариях, где соединение с управляемой системой сохраняется между отдельными задачами.

Разработчики описывают редкий пограничный случай: каталог для persistent connections мог оказаться в ситуации, когда предшествующие директории отсутствовали либо имели недостаточно приватные права. В 2.21.5 Ansible дополнительно гарантирует приватные права для самого каталога persistent connections.

Здесь есть тонкий момент. В changelog исправление находится в разделе Bugfixes, отдельного Security Fixes для версии 2.21.5 нет, CVE в описании этого изменения тоже не указан. Поэтому корректнее рассматривать изменение как устранение некорректного поведения с файловыми правами, без приписывания релизу статуса отдельного обновления безопасности.

Для инфраструктуры с сетевыми устройствами и другими подключениями, где используется persistent connection, эффект довольно понятен: служебный каталог создаётся с ожидаемым уровнем приватности даже в нетипичной структуре родительских директорий.

ansible-test 2.21.5 понимает ключ secret из будущего ansible-core 2.22

Самое любопытное изменение связано с ansible-test. Инструмент validate-modules больше не считает ошибкой документацию плагина, где у параметра указан ключ secret.

Почему это появилось именно сейчас? В ansible-core 2.22 параметр secret используется для маскирования значения опции в выводе. В ветке 2.21 этот ключ ещё не выполняет такую функцию: ansible-core 2.21 его игнорирует. Проблема возникала на уровне разработки коллекций — автор мог заранее описать secret для совместимости с 2.22, но проверка через ansible-test 2.21 воспринимала такую документацию как ошибочную.

Версия 2.21.5 меняет именно проверку. Теперь коллекция может содержать ключ secret в документации плагина и одновременно проходить sanity-тесты на ansible-core 2.21.

Получается редкий пример исправления, ориентированного сразу на две ветки проекта. Для пользователя ansible-core 2.21 семантика secret не включается. Для разработчика коллекции исчезает лишний конфликт между совместимостью с текущей стабильной веткой и подготовкой к поведению 2.22.

Это особенно заметно в CI, где одна коллекция проверяется сразу на нескольких версиях ansible-core. Раньше документация, подготовленная к 2.22, могла ломать validate-modules на 2.21.5rc1 и более ранних выпусках ветки. Финальный 2.21.5 разрешает такую документацию при sanity-проверке.

Модуль dnf5 снова связывает download_dir с реальным каталогом загрузки

Третье исправление относится к модулю dnf5. Оно затрагивает сценарий, в котором пакеты скачиваются без установки: download_only включён, а место сохранения задаётся через download_dir.

По документации download_dir должен определять каталог, куда попадут загруженные пакеты. Внутри DNF5 за это отвечает конфигурационный параметр destdir. В ansible-core 2.21.5 разработчики явно связывают эти два значения: когда download_only равен true, destdir получает значение из download_dir.

Для инфраструктурных сценариев это исправляет вполне конкретный класс задач. Например, playbook может заранее скачивать RPM-пакеты в выделенную директорию для последующей установки, переноса в изолированный сегмент или подготовки локального набора пакетов. После исправления модуль следует тому поведению, которое уже было заявлено для download_dir.

Сам changelog формулирует изменение коротко, поэтому релиз не даёт оснований расширять его смысл на все операции DNF5. Исправлен именно путь download_only + download_dir.

Релиз 2.21.5 продолжает стабильную ветку 2.21

Ветка ansible-core 2.21 появилась весной 2026 года, а непосредственно перед текущим релизом версия 2.21.4 была опубликована 8 сентября. Кандидат 2.21.5rc1 вышел 29 сентября, финальная сборка — 5 октября.

Контраст с предыдущим 2.21.4 заметен по changelog. В 2.21.4 разработчики исправляли маскирование данных авторизации в URL, работу tempfile с компонентами пути и ряд связанных сценариев. В 2.21.5 список сузился до трёх точечных исправлений.

PyPI указывает для ansible-core 2.21.5 требование Python 3.12 или новее и перечисляет Python 3.12, 3.13 и 3.14 среди классификаторов. Для релиза доступны два официальных артефакта:

  • ansible_core-2.21.5-py3-none-any.whl размером около 2,5 МБ;
  • ansible_core-2.21.5.tar.gz размером около 3,4 МБ.

SHA-256 для wheel: 08886f9f3e23d129aa98a01271c4a47833516e1cb7c737a246788cb474f41222.

SHA-256 для исходного архива: 65bb3148c58ebb843cd5074004c805f404f152114d98476dd823324616c9c6cb.

Совпадающие контрольные суммы опубликованы и в официальном объявлении Ansible, и на странице релиза PyPI.

Три исправления показывают, где ветка 2.21 ещё требовала доводки

ansible-core 2.21.5 получился компактным: changelog не содержит отдельного блока новых возможностей и фиксирует три исправления. Одно меняет работу с правами служебного каталога, второе устраняет конфликт между тестами коллекций 2.21 и документацией для механизма secret из 2.22, третье возвращает dnf5 к документированному поведению при загрузке пакетов.

Особенно показательно исправление ansible-test: ветка 2.21 уже учитывает формат документации, который полноценно заработает в 2.22. В результате граница между текущей стабильной веткой и следующей версией становится менее болезненной для разработчиков коллекций.

Вопрос теперь смещается к ветке 2.22, которая на момент публикации 2.21.5 уже представлена предварительными сборками. Именно там ключ secret должен начать влиять на вывод значений, тогда как 2.21.5 ограничивается совместимостью на уровне проверки документации.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться