Spec-Zone.ru › Ansible

Выпуски и сопровождение

В этом разделе описаны циклы выпуска, правила и графики сопровождения для обоих проектов сообщества Ansible: пакета сообщества Ansible и ansible-core. У этих двух проектов разные системы версионирования, структуры сопровождения, содержимое и рабочие процессы.

Пакет сообщества Ansible

ansible-core

Использует новую схему версионирования (2.10, затем 3.0.0)

Продолжает использовать классическую схему версионирования Ansible (2.11, затем 2.12)

Следует правилам семантического версионирования

Не использует семантическое версионирование

Сопровождается только одна версия за раз

Сопровождаются последняя версия и две предыдущие

Включает язык, среду выполнения и выбранные коллекции

Включает язык, среду выполнения и встроенные плагины

Разрабатывается и сопровождается в репозиториях коллекций

Разрабатывается и сопровождается в репозитории ansible/ansible

Многие пользователи сообщества устанавливают пакет сообщества Ansible. Пакет сообщества Ansible предлагает функциональность, существовавшую в Ansible 2.9, а также более 85 коллекций, содержащих тысячи модулей и плагинов. Вариант ansible-core предназначен в первую очередь для разработчиков и пользователей, которые хотят устанавливать только необходимые им коллекции.

  • Обзор цикла выпуска

    • Цикл выпуска пакета сообщества Ansible
    • Списки изменений сообщества Ansible
    • Цикл выпуска ansible-core
    • Поддержка Python на управляющем узле в ansible-core
    • Поддержка Python на целевом узле в ansible-core
    • Поддержка Windows на целевом узле в ansible-core
    • Поддержка PowerShell на целевом узле в ansible-core
    • Матрица поддержки ansible-core
    • Версионирование ansible-core

      • Что означает X в X.Y.Z?
      • Что означает Y в X.Y.Z?
      • Что означает Z в X.Y.Z?
  • Подготовка к новому выпуску

    • Заморозка добавления функций
    • Кандидаты на выпуск
  • Рабочие процессы разработки и сопровождения

    • Рабочий процесс пакета сообщества Ansible
    • Рабочий процесс ansible-core
    • Создание списков изменений
  • Циклы устаревания

    • Цикл устаревания пакета сообщества Ansible
    • Цикл устаревания ansible-core

Обзор цикла выпуска

Два выпуска сообщества связаны между собой — цикл выпуска следует такой схеме:

  1. Выпуск новой основной версии ansible-core, например ansible-core 2.11

    • Выпускается новая версия ansible-core, и теперь сопровождаются две предыдущие версии (в данном случае ansible-base 2.10 и Ansible 2.9)
    • Работа над новыми функциями ansible-core продолжается в ветке devel
  2. Заморозка коллекций в пакете сообщества Ansible (запрещено добавлять новые коллекции или новые версии существующих коллекций)
  3. Кандидат на выпуск пакета сообщества Ansible, тестирование и дополнительные кандидаты на выпуск при необходимости
  4. Выпуск новой основной версии пакета сообщества Ansible на базе новой версии ansible-core, например Ansible 4.0.0 на базе ansible-core 2.11

    • Теперь сопровождается только последняя версия пакета сообщества Ansible
    • Работа над новыми функциями продолжается в коллекциях
    • Отдельные коллекции могут выпускать несколько минорных и основных версий
  5. Минорные выпуски трёх сопровождаемых версий ansible-core каждые четыре недели (2.11.1)
  6. Минорные выпуски единственной сопровождаемой версии пакета сообщества Ansible каждые четыре недели (4.1.0)
  7. Заморозка добавления функций в ansible-core
  8. Кандидат на выпуск ansible-core, тестирование и дополнительные кандидаты на выпуск при необходимости
  9. Выпуск следующей основной версии ansible-core, цикл начинается заново

Цикл выпуска пакета сообщества Ansible

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

Начиная с версии 2.10 команда сообщества Ansible гарантирует сопровождение только одной основной версии пакета сообщества за раз. Например, после выпуска Ansible 4.0.0 команда прекратит выпускать новые версии 3.x. При желании участники сообщества могут сопровождать старые версии.

Примечание

Для каждой версии Ansible, достигшей конца жизненного цикла, может быть выпущен один заключительный выпуск сопровождения — одновременно с первым выпуском следующей версии или вскоре после него. В этом случае заключительный выпуск сопровождения достигает конца жизненного цикла в день своего выхода.

Примечание

Старые, не сопровождаемые версии пакета сообщества Ansible могут содержать неисправленные уязвимости безопасности (CVE). Если вы используете версию пакета сообщества Ansible, которая больше не сопровождается, настоятельно рекомендуем как можно скорее обновиться, чтобы воспользоваться новейшими функциями и исправлениями безопасности.

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

Пакет сообщества Ansible следует правилам семантического версионирования. Минорные выпуски пакета сообщества Ansible принимают только обратно совместимые изменения входящих в него коллекций, то есть не основные выпуски коллекций. Коллекции также должны использовать семантическое версионирование, поэтому их номера версий отражают это правило. Например, если Ansible 3.0.0 выпускается с community.general 2.0.0, то все минорные выпуски Ansible 3.x (например, Ansible 3.1.0 или Ansible 3.5.0) должны включать версию 2.x community.general (например, 2.8.0 или 2.9.5), а не 3.x.x или более поздние основные версии.

Работа над коллекциями отслеживается в репозиториях соответствующих коллекций.

Рекомендации по обновлению плейбуков для работы с новыми версиями Ansible см. в руководствах по переносу пакета Ansible. Для Ansible 2.10 и более поздних выпусков пакет Ansible можно установить с помощью pip. Подробности см. в разделе Установка Ansible. Старые выпуски Ansible можно скачать с сайта https://releases.ansible.com/ansible/.

Списки изменений сообщества Ansible

В этой таблице приведены ссылки на списки изменений для каждого основного выпуска Ansible. В этих списках изменений указаны даты и существенные изменения в каждом минорном выпуске.

Выпуск пакета сообщества Ansible

Статус

Зависимость от версии Core

14.0.0

В разработке (ещё не выпущен)

2.21

Списки изменений 13.x

Текущая — последняя

2.20

Списки изменений 12.x

Конец жизненного цикла в декабре 2025 г.

2.19

Списки изменений 11.x

Конец жизненного цикла в декабре 2025 г.

2.18

Списки изменений 10.x

Не сопровождается (конец жизненного цикла)

2.17

Списки изменений 9.x

Не сопровождается (конец жизненного цикла)

2.16

Списки изменений 8.x

Не сопровождается (конец жизненного цикла)

2.15

Списки изменений 7.x

Не сопровождается (конец жизненного цикла)

2.14

Списки изменений 6.x

Не сопровождается (конец жизненного цикла)

2.13

Списки изменений 5.x

Не сопровождается (конец жизненного цикла)

2.12

Списки изменений 4.x

Не сопровождается (конец жизненного цикла)

2.11

Списки изменений 3.x

Не сопровождается (конец жизненного цикла)

2.10

Списки изменений 2.10

Не сопровождается (конец жизненного цикла)

2.10

Цикл выпуска ansible-core

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

ansible-core имеет поэтапную структуру сопровождения, охватывающую три основные версии. Дополнительные сведения см. в описании рабочих процессов разработки и сопровождения или в диаграмме в разделе Поддержка Python на управляющем узле в ansible-core, где показаны уровни сопровождения текущих выпусков.

Примечание

Старые, не сопровождаемые версии ansible-core могут содержать неисправленные уязвимости безопасности (CVE). Если вы используете выпуск ansible-core, который больше не сопровождается, настоятельно рекомендуем как можно скорее обновиться, чтобы воспользоваться новейшими функциями и исправлениями безопасности. Сопровождение ansible-core продолжается в течение 3 выпусков. Таким образом, последний выпуск получает исправления безопасности и общие исправления ошибок сразу после выхода, исправления безопасности и критических ошибок после выпуска следующей версии ansible-core и только исправления безопасности после выхода версии, следующей за ней.

Рекомендации по обновлению плейбуков для работы с новыми версиями ansible-core см. в руководствах по переносу Ansible Core.

Установить ansible-core можно с помощью pip. Подробности см. в разделе Установка Ansible.

Поддержка Python на управляющем узле в ansible-core

Начиная с версии ansible-core 2.12, каждый выпуск поддерживает на управляющем узле три последние выпущенные версии Python.

Поддержка Python на целевом узле в ansible-core

Начиная с версии ansible-core 2.16, каждый выпуск поддерживает на целевом узле:

  • 6 последних выпущенных версий Python.
  • 7 последних выпущенных версий Python в каждом 6-м выпуске ansible-core (2.16, 2.22 и т. д.)

Поддержка Python 2.7 включена в версию ansible-core 2.16 и более ранние версии.

Поддержка Windows на целевом узле в ansible-core

ansible-core поддерживает целевые узлы Windows в соответствии с политикой жизненного цикла Windows. Поддержка версии Windows на целевом узле прекращается, когда эта версия достигает даты окончания расширенной поддержки. Например, расширенная поддержка Windows Server 2012 и 2012 R2 завершилась 10 октября 2023 года, а для Windows Server 2016 она завершается 12 января 2027 года. Поддержка Windows не соответствует трёхлетней поддержке расширенных обновлений безопасности (ESU) от Microsoft. Это платный вариант поддержки продуктов, для которых истёк обычный срок поддержки Microsoft.

Поддержка PowerShell на целевом узле в ansible-core

ansible-core в Windows поддерживает Windows PowerShell 5.1, который входит в состав Windows. Начиная с версии ansible-core 2.21, каждый выпуск также поддерживает на целевом узле последнюю версию PowerShell 7.x с долгосрочной поддержкой (LTS).

Для PowerShell 7 предусмотрен двухлетний цикл выпуска версий LTS, каждая из которых поддерживается в течение трёх лет. Большинство выпусков Ansible соответствуют одной версии PowerShell LTS. Однако каждый 5-й выпуск Ansible совпадает с переходным периодом между версиями PowerShell LTS и поддерживает обе версии LTS — предыдущую и новую:

  • Предыдущая версия LTS достигает конца жизненного цикла в течение периода сопровождения выпуска Ansible
  • Новая версия LTS находится в предварительной версии на момент выпуска Ansible и становится общедоступной примерно во время выпуска или через несколько месяцев

Такая параллельная поддержка позволяет пользователям спланировать переход на новую версию PowerShell LTS, пока Microsoft продолжает поддерживать предыдущую.

Ansible Core

Версия PowerShell

Жизненный цикл PowerShell

Примечания

2.21

7.6 LTS

март 2026 г. — ноябрь 2028 г.

Стандартная поддержка одной версии LTS

2.22

7.6 LTS

март 2026 г. — ноябрь 2028 г.

Стандартная поддержка одной версии LTS

2.23

7.6 LTS

март 2026 г. — ноябрь 2028 г.

Стандартная поддержка одной версии LTS

2.24

7.6 LTS, 7.8 LTS

2.25

7.8 LTS

ноябрь 2027 г. — ноябрь 2029 г.

Стандартная поддержка одной версии LTS

Следующим выпуском с несколькими версиями LTS после этого станет 2.28, который будет поддерживать PowerShell 7.8 и 7.10.

Примечание

Указанные даты основаны на текущих графиках выпусков Ansible и PowerShell и могут измениться. Ожидается, что PowerShell 7.8 будет находиться в предварительной версии во время выпуска Ansible 2.24 в ноябре 2027 года и станет общедоступным примерно в период с ноября по март.

Матрица поддержки ansible-core

В этой таблице приведены ссылки на списки изменений для каждого основного выпуска ansible-core. В этих списках изменений указаны даты и существенные изменения в каждом минорном выпуске. Указанные даты обозначают начало цикла сопровождения.

Версия

Поддержка

Конец жизненного цикла

Python на управляющем узле

Python / PowerShell на целевом узле

2.21

ноябрь 2027 г.

2.20

май 2027 г.

2.19

ноябрь 2026 г.

2.18

май 2026 г.

2.17

2.16

2.15

2.14

2.13

2.12

2.11

2.10

2.9

Версионирование ansible-core

Проект ansible-core использует историческую схему версионирования, наиболее близкую к схеме, используемой в Python.

Эта схема соответствует формату X.Y.Z, который подробно описан ниже.

Что означает X в X.Y.Z?

X обозначает внутреннюю архитектуру ansible-core. X в этом случае не подразумевает какой-либо формы совместимости или масштаба изменений.

  • Наилучшее описание v1 — внутренняя архитектура, в которой ansible.runner.Runner выступает в качестве механизма «выполнения»
  • Наилучшее описание v2 — внутренняя архитектура, в которой TaskQueueManager, PlayIterator и стратегия выступают в качестве механизма «выполнения»

Что означает Y в X.Y.Z?

Примерно каждые 6 месяцев, в мае и ноябре, ansible-core выпускает новую основную версию. Она обозначается с помощью Y в схеме версионирования X.Y.Z.

Хотя Y обозначает основную версию, отдельно он не используется. Основная версия указывается в формате X.Y, например 2.16.

Таким образом, версии 2.9.0, 2.10.0, 2.11.0, 2.16.0 и 2.19.0 являются основными выпусками. Для выпусков X.Y.0 не гарантируется 100-процентная обратная совместимость с предыдущей версией. Масштаб изменений в каждом выпуске зависит от объёма выполненной работы. Ознакомьтесь с руководствами по переносу, чтобы узнать об изменениях, которые могут потребовать действий со стороны пользователя.

Что означает Z в X.Y.Z?

Это версия исправлений. ansible-core выпускает исправления каждые 4 недели. Выпуск Z основной версии включает исправления ошибок и уязвимостей безопасности, как указано в матрице поддержки ansible-core.

Подготовка к новому выпуску

Заморозка добавления функций

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

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

Кандидаты на выпуск

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

Ansible и ansible-core помечают первый кандидат на выпуск (RC1); обычно на его проверку отводится пять рабочих дней. Если за это время не обнаружено серьёзных ошибок или проблем, кандидат на выпуск становится финальным выпуском.

Если у первого кандидата есть серьёзные проблемы, команда и сообщество исправляют их и помечают второго кандидата на выпуск (RC2). Проверка второго кандидата длится меньше, чем первого. Если в течение двух рабочих дней после выпуска RC2 о проблемах не сообщается, второй кандидат становится финальным выпуском.

Если в RC2 обнаруживаются серьёзные проблемы, цикл начинается заново с новым кандидатом на выпуск и повторяется до тех пор, пока сопровождающие не убедятся, что все серьёзные проблемы устранены.

Рабочие процессы разработки и сопровождения

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

Рабочий процесс пакета сообщества Ansible

Сообщество Ansible разрабатывает и сопровождает функции и возможности, включённые в пакет сообщества Ansible, в репозиториях коллекций. Рабочий процесс выглядит следующим образом:

  • Разработчики добавляют новые функции и исправления ошибок в отдельные коллекции, следуя правилам участия в разработке каждой коллекции.
  • К каждой новой функции и каждому исправлению ошибки добавляется фрагмент списка изменений с описанием работы.
  • Инженеры выпуска каждые четыре недели создают минорный выпуск текущей версии, чтобы последние исправления ошибок были доступны пользователям.
  • В конце периода разработки инженеры выпуска объявляют, какие коллекции и какие основные версии каждой входящей коллекции будут включены в следующий выпуск пакета сообщества Ansible. После этого нельзя добавлять новые коллекции и новые основные версии, и начинается работа над новым выпуском.

Как правило, мы не выпускаем исправления для несопровождаемых версий пакета сообщества Ansible, хотя в некоторых случаях могут быть исключения для критических проблем.

Некоторые коллекции сопровождаются командой Ansible, некоторые — организациями-партнёрами, а некоторые — командами сообщества. Дополнительные сведения о добавлении функций и исправлении ошибок в коллекциях, сопровождаемых Ansible, см. в разделе Участие в разработке коллекций, сопровождаемых Ansible.

Рабочий процесс ansible-core

Сообщество Ansible разрабатывает и сопровождает ansible-core на GitHub. Рабочий процесс выглядит следующим образом:

  • Разработчики добавляют новые функции и исправления ошибок в ветку devel.
  • К каждой новой функции и каждому исправлению ошибки добавляется фрагмент списка изменений с описанием работы.
  • Команда разработки переносит исправления ошибок в одну, две или три стабильные ветки в зависимости от серьёзности ошибки. Новые функции в эти ветки не переносятся.
  • Инженеры выпуска каждые четыре недели создают минорный выпуск каждой сопровождаемой версии, чтобы последние исправления ошибок были доступны пользователям.
  • В конце периода разработки инженеры выпуска вводят заморозку добавления функций, и начинается работа над новым выпуском.

Как правило, мы не выпускаем исправления для несопровождаемых версий ansible-core, хотя в некоторых случаях могут быть исключения для критических проблем.

Дополнительные сведения о добавлении функций и исправлении ошибок в ansible-core см. в разделе Цикл разработки Ansible.

Создание списков изменений

Списки изменений создаются на основе фрагментов. При добавлении новых функций в существующие модули и плагины или исправлении ошибок создайте фрагмент списка изменений с описанием изменения. Для новых модулей и плагинов запись в списке изменений не требуется: сведения о них будут созданы на основе документации модуля.

Для добавления фрагментов списка изменений в коллекции пакета сообщества Ansible рекомендуем использовать утилиту antsibull-changelog.

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

Циклы устаревания

Иногда мы удаляем функцию, обычно в пользу её новой реализации, которая, как мы надеемся, работает лучше. Для этого мы используем цикл устаревания. Сначала мы помечаем функцию как «устаревшую». Обычно при этом пользователям сообщается, почему она признана устаревшей, на какие альтернативы следует перейти и когда (в какой версии) мы планируем окончательно удалить эту функцию.

Цикл устаревания пакета сообщества Ansible

Поскольку Ansible — это пакет отдельных коллекций, цикл устаревания зависит от сопровождающих коллекций. Мы рекомендуем сопровождающим коллекций объявлять функцию устаревшей в одной основной версии Ansible и не удалять её в течение года или как минимум до следующей основной версии Ansible. Например, объявить функцию устаревшей в версии 3.1.0 и не удалять её до версии 5.0.0 или, в самом раннем случае, до версии 4.0.0. Коллекции должны использовать семантическое версионирование, при котором основная версия коллекции не может меняться в рамках одной основной версии Ansible. Поэтому удаление не должно происходить раньше следующего основного выпуска пакета сообщества Ansible. Это решение принимает каждый сопровождающий коллекции, и гарантировать соблюдение этого правила нельзя.

Цикл устаревания ansible-core

Цикл устаревания в ansible-core обычно охватывает 4 выпуска с новыми функциями (2.x., где x обозначает выпуск с новыми функциями). Обычно функцию удаляют в 4-м выпуске после объявления о её устаревании. Например, функция, объявленная устаревшей в версии 2.10, будет удалена в версии 2.13. Отсчёт ведётся по количеству выпусков, а не по их номерам. Хотя это стандартный порядок, в зависимости от особенностей использования или срочности удаления цикл устаревания функции или поведения может быть длиннее или короче. Непреднамеренные или недокументированные функции могут быть удалены без цикла устаревания. В данном контексте непреднамеренные функции — это исключительно возникающие свойства, не предусмотренные планом выпуска.

См. также

Рекомендации для коммиттеров

Рекомендации для участников разработки и сопровождающих Ansible Core

Стратегии тестирования

Стратегии тестирования

Руководство сообщества Ansible

Информация о сообществе и участии в его работе

Общение

Есть вопросы? Нужна помощь? Хотите поделиться идеями? Посетите руководство по общению в сообществе Ansible

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/reference_appendices/release_and_maintenance.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API