Spec-Zone.ru › Ansible

Релизы и техническое обслуживание

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

Пакет Ansible community

ansible-core

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

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

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

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

Поддерживает только одну версию одновременно

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

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

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

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

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

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

  • Обзор цикла релизов

    • Цикл релизов пакета Ansible community
    • Журналы изменений Ansible community
    • Цикл релизов ansible-core
    • ansible-core поддержка Python контрольного узла
    • ansible-core поддержка Python узла-цели
    • ansible-core поддержка PowerShell и Windows узла-цели
    • ansible-core матрица поддержки
  • Подготовка к новому релизу

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

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

    • Цикл устаревания пакета Ansible community
    • Цикл устаревания ansible-core
END_OF_DOCUMENT_MARKER

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

Два выпуска сообщества связаны – цикл выпуска следует этому шаблону:

  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 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 за советами по обновлению ваших playbook для запуска на более новых версиях Ansible. Для Ansible 2.10 и более поздних релизов вы можете установить пакет Ansible с pip. См. Установка Ansible для получения подробной информации. Вы можете загрузить более старые версии Ansible с https://releases.ansible.com/ansible/.

Журналы изменений пакета Ansible сообщества

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

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

Статус

Зависимость от версии ядра

11.0.0

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

2.18

Журналы изменений 10.x

Текущий

2.17

Журналы изменений 9.x

Дополнительные/исправленные выпуски (EOL Ноябрь 2024)

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 за советами по обновлению ваших playbook для запуска на более новых версиях ansible-core.

Вы можете установить ansible-core с помощью pip. См. Установка Ansible для получения подробной информации.

ansible-core поддержка Python контрольного узла

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

ansible-core поддержка Python целевого узла

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

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

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

ansible-core поддержка узлов PowerShell и Windows

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

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

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

Версия

Поддержка

Дата окончания поддержки

Python контрольного узла

Python / PowerShell целевого узла

2.17

Ноябрь 2025

2.16

Май 2025

2.15

Ноябрь 2024

2.14

2.13

2.12

2.11

2.10

2.9

Подготовка к новому релизу

Замораживание функциональности

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

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

Кандидаты в релиз

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

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

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

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

Процессы разработки и поддержки стабильных версий

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

Процесс работы пакета Ansible community

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

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

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

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

Процесс работы ansible-core

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

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

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

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

Создание журналов изменений

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

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

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

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

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

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

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

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

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

См. также

Руководство для разработчиков

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

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

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

Руководство по Ansible Community

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

Коммуникация

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

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

Spec-Zone.ru

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