Руководство по переносу Ansible 12
- Введение
- Плейбук
- Ядро
- API плагинов
- Командная строка
- Устаревшее
- Модули
- Плагины
- Перенос пользовательских скриптов
- Сетевые технологии
- Руководство по переносу для версии 12.3.0
- Руководство по переносу для версии 12.2.0
- Руководство по переносу для версии 12.1.0
- Руководство по переносу для версии 12.0.0
Ansible 12 основан на Ansible-core 2.19.
Рекомендуем прочитать эту страницу вместе с списком изменений Ansible 12, чтобы понять, какие обновления могут потребоваться.
Введение
В этом выпуске существенно переработана система шаблонов и добавлена новая функция, получившая название «тегирование данных». Эти изменения позволяют обнаруживать и сообщать о многочисленных проблемных ситуациях, которые оставались незамеченными в предыдущих выпусках, и дают широкие преимущества для безопасности, производительности и удобства использования.
Насколько это было возможно, обратная совместимость сохранена, однако некоторых несовместимых изменений избежать не удалось. В этом руководстве описаны распространённые проблемные сценарии, приведены примеры содержимого и сообщений об ошибках, а также предложены решения.
Рекомендуем протестировать плейбуки и роли с этим выпуском в промежуточной среде, чтобы определить, где могут потребоваться изменения.
Плейбук
Некорректные условные выражения
Некорректные условные выражения возникают, если входное выражение или шаблон не является строкой либо результат не является логическим значением. Python и Jinja неявно вычисляют большинство непустых нелогических значений как «истинные» в условных выражениях. Хотя это иногда удобно для краткости, вычисление условных выражений по принципу «истинности» часто скрывает серьёзные логические ошибки в плейбуках, которые предыдущие версии ansible-core не могли надёжно обнаружить.
Изменения системы шаблонов в этом выпуске позволяют обнаруживать нелогические условные выражения во время вычисления выражений и по умолчанию сообщать об ошибке. С помощью параметра конфигурации ALLOW_BROKEN_CONDITIONALS ошибку можно временно заменить предупреждением.
Следующие примеры основаны на некорректных условных выражениях, которые скрывали логические ошибки в реальных плейбуках.
Пример — неявное преобразование в логическое значение
Это выражение полагается на неявное вычисление значения inventory_hostname по принципу «истинности». Вместо этого следует использовать явный предикат с логическим результатом, например | length > 0 или is truthy.
- assert:
that: inventory_hostname
Выводится следующая ошибка:
Conditional result was 'localhost' of type 'str', which evaluates to True. Conditionals must have a boolean result.
Проблему можно устранить, выполнив явное преобразование в логическое значение:
- assert:
that: inventory_hostname | length > 0
Пример — непреднамеренное условное выражение, вычисляемое как истинное
Вторая часть этого условного выражения ошибочно заключена в кавычки. Заключённая в кавычки часть становится результатом выражения (который вычисляется как истинный), поэтому выражение никогда не может быть False.
- assert:
that: inventory_hostname is defined and 'inventory_hostname | length > 0'
Выводится следующая ошибка:
Conditional result was 'inventory_hostname | length > 0' of type 'str', which evaluates to True. Conditionals must have a boolean result.
Проблему можно устранить, удалив ошибочные кавычки:
- assert:
that: inventory_hostname is defined and inventory_hostname | length > 0
Пример — синтаксическая ошибка в выражении
Предыдущие выпуски Ansible могли маскировать некоторые синтаксические ошибки в выражениях, возвращая истинный результат.
- assert:
that: 1 == 2,
# ^ invalid comma
Выводится следующая ошибка:
Syntax error in expression: chunk after expression
Проблему можно устранить, удалив недопустимую запятую после выражения.
Пример — порядок операций в Jinja
В этом выражении используется оператор конкатенации ~, который вычисляется после проверки contains. Результатом всегда является непустая строка, которая считается истинной.
- assert:
that: inventory_hostname is contains "local" ~ "host"
Выводится следующая ошибка:
Conditional result was 'Truehost' of type 'str', which evaluates to True. Conditionals must have a boolean result.
Проблему можно устранить, добавив скобки, чтобы операция конкатенации выполнялась перед проверкой contains:
- assert:
that: inventory_hostname is contains("local" ~ "host")
Пример — словарь в качестве условного выражения
Это условное выражение следовало заключить в кавычки. В элементе списка YAML строка без кавычек, содержащая пробел после двоеточия, интерпретируется анализатором YAML как отображение. Непустые отображения всегда считаются истинными.
- assert:
that:
- result.msg == "some_key: some_value"
# ^^ colon+space == problem
Выводится следующая ошибка:
Conditional expressions must be strings.
Проблему можно устранить, заключив всё проверяемое выражение в кавычки:
- assert:
that:
- 'result.msg == "some_key: some_value"'
Многоэтапная обработка шаблонов
Ранее встраивание шаблонов в другие шаблоны или выражения могло приводить к выполнению недоверенных шаблонов. Переработанный механизм шаблонов в этом выпуске больше не поддерживает такое небезопасное поведение.
Пример — ненужный шаблон в выражении
В этом условном выражении переменная используется через шаблон, вместо того чтобы обратиться к ней непосредственно в выражении.
- assert:
that: 1 + {{ value }} == 2
vars:
value: 1
Выводится следующая ошибка:
Syntax error in expression. Template delimiters are not supported in expressions: expected token ':', got '}'
Проблему можно устранить, обратившись к переменной без шаблона:
- assert:
that: 1 + value == 2
vars:
value: 1
Пример — динамическое построение выражения
Это условное выражение динамически создаётся с помощью шаблона, который должен вычисляться как выражение. Ранее шаблон обрабатывался при подстановке аргументов задачи, в результате чего получалась обычная строка, которую позднее вычисляло действие assert.
- assert:
that: inventory_hostname {{ comparison }} 'localhost'
vars:
comparison: ==
Выводится следующая ошибка:
Syntax error in expression. Template delimiters are not supported in expressions: chunk after expression
Динамическое построение выражений в плейбуках небезопасно и не поддерживается.
Устранение неполадок с недоверенными шаблонами
По умолчанию недоверенные шаблоны молча игнорируются. Для диагностики проблем с доверием к шаблонам можно включить предупреждения или ошибки для недоверенных шаблонов. Для управления этим поведением можно использовать переменную окружения _ANSIBLE_TEMPLAR_UNTRUSTED_TEMPLATE_BEHAVIOR.
Допустимые значения:
-
warning— при обнаружении недоверенного шаблона будет выдано предупреждение. -
error— при обнаружении недоверенного шаблона будет вызвана ошибка. -
ignore— недоверенные шаблоны молча игнорируются и используются без изменений. Это поведение используется по умолчанию.
Примечание
Это необязательное поведение, предусматривающее предупреждения и сбои, является экспериментальным и может измениться в будущих версиях.
Циклы больше не передают заполнители omit
Заполнители omit больше не передаются между обработкой элементов цикла и обработкой задачи.
Ранее заполнители omit могли оставаться внутри элементов цикла после обработки шаблонов и использоваться как omit при обработке шаблонов задачи. Теперь значения, разрешающиеся в omit, немедленно удаляются при обработке шаблонов элементов цикла.
Чтобы преобразовать отсутствующие значения в omit для обработки шаблонов задачи, используйте | default(omit). Это решение обратно совместимо с предыдущими версиями ansible-core.
Пример — отсутствует default(omit)
Следующая задача пытается передать omit из цикла в задачу, однако значение не определено, поскольку оно было пропущено:
- debug:
msg: "{{ item.msg }}" # 'msg' is undefined
loop:
- msg: "{{ omit }}" # 'msg' will be omitted from the loop item
В этой обновлённой задаче для отсутствующего значения используется default(omit), чтобы оно было пропущено при обработке задачи:
- debug:
msg: "{{ item.msg | default(omit) }}" # 'msg' is undefined, use 'default(omit)' to turn it into an omit
loop:
- msg: "{{ omit }}" # passed through in earlier versions, this value is now omitted from the loop item
Тайм-ауты повышения привилегий
Истечение времени ожидания повышения привилегий (become) теперь приводит к ошибке недоступности узла, а не к ошибке задачи. В существующих плейбуках следует заменить ignore_errors на ignore_unreachable в задачах, где тайм-аут become следует игнорировать.
Ядро
Обработка шаблонов
Изменение модели доверия к шаблонам
Ранее ansible-core неявно считала все строковые значения доверенными и обрабатывала их как шаблоны Jinja, но оборачивала строки, полученные из недоверенных источников (например, результаты модулей), в объект с пометкой «небезопасно». Такие строки молча игнорировались механизмом шаблонов, поскольку многие операции с шаблонами могут выполнять произвольный код на управляющем узле от имени пользователя, запустившего ansible-core. Это требовало от любого кода, работающего со строками, корректно передавать объект-обёртку, что привело к многочисленным уязвимостям RCE (удалённого выполнения кода), заслуживающим присвоения CVE.
В этом выпуске прежняя модель доверия изменена на противоположную. Обрабатывать как шаблоны можно только строки, помеченные как загруженные из доверенного источника. К недоверенным значениям, как и раньше, можно обращаться из шаблонов, но само выражение шаблона всегда должно быть доверенным. Хотя это изменение по-прежнему требует учитывать передачу маркеров доверия при работе со строками, отсутствие таких маркеров теперь приводит к невозможности обработки шаблона, а не к потенциально серьёзной проблеме безопасности.
Попытки обработать шаблон, содержащийся в недоверенной строке, как и раньше, возвращают исходную строку без изменений. По умолчанию попытки обработать недоверенный шаблон завершаются без уведомления, однако с помощью конфигурации такие сбои можно преобразовать в предупреждения или ошибки.
Строки, созданные в результате операций с шаблонами, никогда не получают маркер доверия автоматически. Однако шаблоны, возвращающие существующие доверенные строки без изменений, не удаляют маркер доверия. Плагины также могут явно присваивать этот маркер.
В большинстве случаев поведение, обеспечивающее обратную совместимость модели доверия к шаблонам, применяется автоматически. Например, шаблоны в плейбуках, ролях, файлах переменных и большинстве встроенных плагинов инвентаризации будут считаться доверенными. Пользовательским плагинам, которые предоставляют строки с шаблонами, потребуется использовать новые общедоступные API, чтобы при необходимости присваивать маркеры доверия.
Дополнительные сведения см. в разделах API плагинов и Устранение неполадок с недоверенными шаблонами.
Обязательный режим Native Jinja
Предыдущие версии поддерживали обработку шаблонов в двух режимах:
- Исходный строковый режим Jinja преобразовывал результат каждой операции с шаблоном в строку.
- В режиме Native Jinja обычно сохранялись типы переменных в результатах шаблонов.
В обоих режимах ansible-core вычислял итоговые строковые результаты шаблона как литералы Python, а в случае ошибки вычисления возвращал исходную строку. Режим обработки шаблонов задавался конфигурацией; по умолчанию использовался исходный строковый режим Jinja.
Теперь используется исключительно режим Native Jinja. Параметр конфигурации, задававший режим обработки шаблонов, объявлен устаревшим и больше не влияет на работу.
Сохранение собственных типов при обработке шаблонов улучшено, чтобы устранить пробелы в предыдущей реализации; заключительный этап вычисления литералов полностью удалён (он часто приводил к путанице, ошибкам и проблемам с производительностью). В редких случаях, когда плейбуки полагались на неявное преобразование объектов из строк, потребуется явное преобразование.
Некоторые существующие шаблоны могут непреднамеренно преобразовывать значения, не являющиеся строками, в строки. В предыдущих версиях это преобразование могло маскироваться вычислением строк в качестве литералов Python.
Пример — непреднамеренное преобразование в строку
В этом выражении в фильтр replace ошибочно передаётся список, хотя фильтр работает только со строками. Фильтр молча преобразует список в строку. Поскольку ранее некоторые строковые результаты разбирались как списки, эта ошибка часто оставалась незамеченной в предыдущих версиях.
- debug:
msg: "{{ ['test1', 'test2'] | replace('test', 'prod') }}"
Результат обработки этого шаблона становится строкой:
ok: [localhost] => {
"msg": "['prod1', 'prod2']"
}
Проблему можно устранить с помощью фильтра map, применив фильтр replace к каждому элементу списка:
- debug:
msg: "{{ ['test1', 'test2'] | map('replace', 'test', 'prod') }}"
Результат обработки исправленного шаблона остаётся списком:
ok: [localhost] => {
"msg": [
"prod1",
"prod2"
]
}
Пример — непреднамеренный результат None
Если шаблон вычислялся в значение None, в предыдущих версиях ansible-core оно неявно преобразовывалось в пустую строку. Теперь результатом обработки шаблона может стать значение None.
Следующий пример показывает такую ситуацию:
- set_fact:
# If 'foo' is not defined, the else branch basically evaluates to None.
# So value_none will not be an empty string, but None:
value_none: |-
{% if foo is defined %}foo is defined{% endif %}
Этот пример можно исправить следующим образом:
- set_fact:
# Explicitly return an empty string in the 'else' branch.
# The value is always a string: either "foo is defined" or "".
value_none: |-
{% if foo is defined %}foo is defined{% else %}{{ "" }}{% endif %}
Это изменение обратно совместимо с более ранними версиями ansible-core.
Примечание
Начиная с ansible-core 2.19.1, параметры модулей строкового типа принимают None и преобразуют его в пустую строку. До ansible-core 2.18 передача None таким параметрам приводила к ошибке. Это означает, что в большинстве случаев выражения в ролях и плейбуках не нужно изменять из-за непреднамеренных результатов None.
Ленивая обработка шаблонов
Интерфейс Ansible для взаимодействия с механизмом шаблонов Jinja был существенно усовершенствован, что обеспечило значительное повышение производительности при выполнении многих сложных операций с шаблонами. Ранее глубоко вложенные, рекурсивные или ссылающиеся на себя операции с шаблонами всегда разрешались до полной глубины и ширины при каждом обращении, включая повторные обращения к одним и тем же данным в рамках одной операции обработки шаблона. Это приводило к затратному и повторному вычислению одних и тех же шаблонов в рамках одной логической операции, даже если шаблоны находились глубоко во вложенных структурах данных и к ним никогда не обращались напрямую. Новый механизм шаблонов лениво откладывает почти всю рекурсию и обработку шаблонов до момента обращения к значениям или до момента, когда известно, что они покидают механизм шаблонов. Промежуточные вложенные или косвенно обработанные результаты шаблонов кешируются на время операции, что сокращает повторную обработку. В ряде сложных сценариев обработки шаблонов из реальной практики эти изменения обеспечили экспоненциальный прирост производительности.
Единообразная обработка range
Результат использования глобальной функции Jinja range() в значительной степени зависел от контекста её применения и от того, был ли включён режим Native Jinja. Чтобы сохранить возможность использовать очень большие диапазоны в цепочках фильтров, теперь результатом всегда является объект range. Поэтому его нельзя вернуть из шаблона, пока он не будет преобразован в тип, который можно возвращать.
Пример — намеренное преобразование в список
- debug:
loop: "{{ range(0, 2) }}"
Диапазоны, не включённые в контейнеры, обычно преобразовывались в списки при финализации шаблона. Теперь это приведёт к следующей ошибке:
Error rendering template: Type 'range' is unsupported for variable storage.
Проблему можно устранить, выполнив явное преобразование:
- debug:
loop: "{{ range(0, 2) | list }}"
Пример — непреднамеренное преобразование в строку
- debug:
msg: "{{ [range(0,2), range(7,10)] }}"
Диапазоны, включённые в контейнеры, обычно преобразовывались в строковые представления объекта range.
ok: [localhost] => {
"msg": "[range(0, 2), range(7, 10)]"
}
Теперь эта операция приведёт к ошибке. Прежнее поведение можно воспроизвести, явно преобразовав контейнер в строку; если же вы хотите выполнять с диапазонами полезные операции, преобразуйте их в списки.
- debug:
msg: "{{ [range(0,2), range(7,10)] | string }}"
- debug:
msg: "{{ [range(0,2), range(7,10)] | map('list') }}"
Обработка ошибок
Контекстные предупреждения и ошибки
Изменения внутренней обработки ошибок в ansible-core будут заметны во многих ситуациях, приводящих к предупреждению или ошибке. В большинстве случаев в сообщениях для пользователей фиксируются и включаются в них контекст выполнения (что происходило в момент возникновения ошибки или предупреждения) и затронутые элементы данных. Ошибки и предупреждения, возникающие при выполнении задач, более единообразно включаются в результат задачи; полные сведения доступны обработчикам обратных вызовов, а в случае ошибок краткое сообщение об ошибке помещается в поле msg результата. Из-за стандартизированного подхода к обработке ошибок в некоторых сообщениях об ошибках могут встречаться кажущиеся избыточными элементы. Со временем, по мере дальнейшего улучшения обработки ошибок, они будут доработаны, но сейчас необходимы, чтобы во всех ситуациях с ошибками был доступен соответствующий контекст. Содержимое сообщений об ошибках не считается стабильным, поэтому по возможности не следует создавать автоматизацию, зависящую от них.
Отслеживание происхождения переменных
Новая функция тегирования данных расширяет отслеживание происхождения переменных практически на все источники. Благодаря этому сообщения об ошибках стали гораздо информативнее: можно проследить всю цепочку выполнения и включить в сообщение контекст возникновения ошибки. В большинстве случаев указываются путь к файлу, исходные строки и маркеры столбцов. Также поддерживаются источники переменных, не связанные с файлами, например аргументы CLI, плагины инвентаризации и окружение.
Предупреждения об устаревании при обращении к значениям
Новые возможности позволяют помечать как устаревшие большинство переменных и значений ansible-core. Плагины и модули могут применять такие метки, дополняя устаревшие элементы возвращаемых значений описанием и справочным текстом с предложением альтернатив. При обращении к помеченному значению, например из плейбука или шаблона, во время выполнения будет отображаться предупреждение. Это упрощает развитие и удаление результатов модулей и фактов, а также устаревшего поведения ядра.
Например, при обращении к устаревшей магической переменной play_hosts появится предупреждение об устаревании с предложением использовать вместо неё переменную ansible_play_batch.
Улучшенная обработка ошибок модулей Ansible
Для модулей Ansible, реализованных на Python, обработку исключений теперь обеспечивает оболочка AnsiballZ. В предыдущих версиях ansible-core необработанные исключения в модуле Ansible просто выводили трассировку стека и приводили к завершению работы без стандартного ответа модуля. В результате в результат задачи попадало общее сообщение MODULE FAILURE и любой необработанный текст вывода, созданный модулем.
Чтобы решить эту проблему, в модулях часто добавляли ненужные блоки try/except практически вокруг всего кода, где нельзя было реализовать специальную обработку ошибок, — лишь для того, чтобы вызвать AnsibleModule.fail_json с общим сообщением о сбое. Теперь такой подход не требуется: все необработанные исключения в модулях Ansible на Python перехватываются оболочкой AnsiballZ и возвращаются в виде структурированного результата модуля. Если это включено контроллером, в результат автоматически добавляется информация о трассировке стека.
Улучшенная обработка неопределённых значений
Обработка неопределённых значений улучшена, чтобы избежать ситуаций, когда плагин Jinja молча игнорирует такие значения.
Это часто происходит, когда плагин Jinja, например фильтр или проверка, определяет тип переменной, не учитывая возможность наличия неопределённого значения.
Пример — отсутствующий атрибут
В этой задаче в условном выражении ошибочно используется неопределённый атрибут exists результата stat. В предыдущих версиях неопределённое значение не обнаруживалось, поскольку передавалось плагину проверки Jinja false, который молча игнорирует неопределённые значения. В результате в более ранних версиях ansible-core это условное выражение никогда не могло быть True, и ничто не указывало на то, что выражение failed_when недопустимо.
- stat:
path: /does-not-exist
register: result
failed_when: result.exists is false
# ^ missing reference to stat
В текущем выпуске ошибочное выражение обнаруживается и приводит к ошибке.
Исправить это можно, добавив в условное выражение отсутствующий атрибут stat:
- stat:
path: /does-not-exist
register: result
failed_when: result.stat.exists is false
Отображение трассировок стека
В предыдущих версиях ansible-core трассировки стека для некоторых ошибок на стороне контроллера можно было получить, увеличив подробность вывода с помощью параметра -vvv, однако доступность и поведение этой функции были непоследовательными. Кроме того, она работала только для ошибок.
Обработка ошибок, предупреждений и устареваний в значительной части кодовой базы ansible-core теперь стандартизирована. С помощью переменной окружения ANSIBLE_DISPLAY_TRACEBACK можно включить сбор и отображение трассировок стека для всех исключений, а также для места вызова ошибок, предупреждений или устареваний (в том числе в коде модулей).
Допустимые значения:
-
always— трассировки стека отображаются всегда. Этот параметр имеет приоритет над перечисленными ниже. -
never— трассировки стека никогда не отображаются. Этот параметр имеет приоритет над перечисленными ниже. -
error— трассировки стека отображаются для ошибок. -
warning— трассировки стека отображаются для предупреждений, кроме предупреждений об устаревании. -
deprecated— трассировки стека отображаются для предупреждений об устаревании.
Можно объединить несколько значений, разделив их запятыми.
API плагинов
Пометка значений как устаревших
Плагины и модули Python могут помечать возвращаемые значения как устаревшие с помощью новой функции deprecate_value из ansible.module_utils.datatag. К значению можно добавить описание устаревшей функции, необязательный справочный текст и сроки удаления. Если на устаревшее значение ссылаются в выражении, во время выполнения появится предупреждение. В сообщении будут указаны модуль или плагин, добавивший метку устаревания, а также расположение выражения, в котором использовано это значение.
from ansible.module_utils.datatag import deprecate_value
...
module.exit_json(
color_name=deprecate_value(
value="blue",
msg="The `color_name` return value is deprecated.",
help_text="Use `color_code` instead.",
),
color_code="#0000ff",
)
При обращении к color_name из результата модуля появится следующее предупреждение
[DEPRECATION WARNING]: The `color_name` return value is deprecated. This feature will be removed from the 'ns.collection.paint' module in a future release.
Origin: /examples/use_deprecated.yml:8:14
6
7 - debug:
8 var: result.color_name
^ column 14
Use `color_code` instead.
Применение доверия к шаблонам для отдельных значений
По умолчанию строковые значения больше не считаются доверенными для обработки в качестве шаблонов. Строки, загруженные из плейбуков, файлов vars и других встроенных доверенных источников, обычно по умолчанию помечаются как доверенные. Плагины, создающие новые строки со встроенными шаблонами, должны использовать новую функцию trust_as_template из ansible.template, чтобы пометить эти значения как полученные из доверенного источника и разрешить обработку шаблонов.
Предупреждение
Этот раздел и связанный с ним общедоступный API пока не завершены.
Применение доверия к шаблонам в плагинах инвентаризации и vars
Плагины инвентаризации могут задавать переменные групп и узлов. В большинстве случаев это статические значения из внешних источников, которым не требуется доверие. Значения, содержащие шаблоны, необходимо явно помечать как доверенные с помощью trust_as_template, чтобы разрешить их обработку. Однако не следует помечать как доверенные значения переменных из внешних источников, которые могут быть злонамеренно изменены и дополнены шаблонами.
Предупреждение
Этот раздел и связанный с ним общедоступный API пока не завершены.
Вызов исключений
При вызове исключений в обработчике исключений обязательно используйте raise ... from, когда это уместно. Этот способ заменяет использование аргумента AnsibleError orig_exc для указания причины. Для обратной совместимости по-прежнему разрешено указывать orig_exc в качестве причины.
Если при заданном orig_exc не использовать raise ... from, будет выдано предупреждение. Кроме того, если причины двух исключений не совпадают, также будет выдано предупреждение.
Слишком широкая обработка исключений в плагинах Jinja
Плагины Jinja со слишком широкой обработкой исключений, например except Exception, могут работать неправильно при обращении к содержимому переменных-контейнеров (dict, list). Это может произойти, если шаблонное значение из переменной не определено, зашифровано с помощью Vault и не может быть расшифровано либо представляет собой другое значение, вызывающее отложенное сообщение об ошибке.
По возможности плагины Jinja должны перехватывать исключения более конкретных типов и делать это в наименьшем разумном участке кода. Будьте особенно внимательны и не используйте широкую обработку исключений в коде, обращающемся к содержимому переменных-контейнеров.
Пользовательские типы данных Ansible
Многие объекты переменных в ansible-core представлены пользовательскими типами. В предыдущих версиях они могли отображаться как типы:
-
AnsibleUnicode(подклассstr) -
AnsibleSequence(подклассlist) -
AnsibleMapping(подклассdict)
Теперь у этих и других типов появились новые подклассы, производные от соответствующих встроенных типов Python. В большинстве случаев они ведут себя так же, как расширяемые ими типы, и существующий код должен работать без изменений. Однако некоторые библиотеки Python некорректно работают с подклассами встроенных объектов. Пользовательским плагинам, взаимодействующим с такими библиотеками, может потребоваться преобразовывать и передавать встроенные типы.
Предупреждение
Этот раздел и связанный с ним общедоступный API пока не завершены.
AnsibleVaultEncryptedUnicode заменён на EncryptedString
Тип AnsibleVaultEncryptedUnicode заменён на EncryptedString.
Плагины, создающие AnsibleVaultEncryptedUnicode, теперь будут получать экземпляры EncryptedString. Эта функция обеспечивает обратную совместимость с предыдущими версиями ansible-core.
Плагины, выполняющие проверки isinstance на наличие AnsibleVaultEncryptedUnicode, больше не будут встречать эти типы. Значения, ранее представленные этим типом, теперь будут отображаться как помеченный str. Специальная обработка в плагинах для доступа к содержимому этих значений больше не требуется.
Неявное преобразование ключей словаря, не являющихся строками, больше не выполняется
В предыдущих версиях ansible-core полагался на json.dumps Python для неявного преобразования ключей словарей int, float, bool и None в строки в различных ситуациях, в том числе при возврате результатов модулей. Например, модуль мог содержать следующий код:
oid = 123
d = {oid: "value"}
module.exit_json(return_value=d)
Начиная с этого выпуска модули должны явно преобразовывать любые ключи, не являющиеся строками, в строки (например, с помощью функции Python str()), прежде чем передавать словари методу AnsibleModule.exit_json() объекта ansible-core. Приведённый выше код необходимо изменить следующим образом:
oid = 123
d = {str(oid): "value"}
module.exit_json(return_value=d)
Если вы столкнулись с "[ERROR]: Task failed: Module failed: Key of type '<NON-STRING>' is not JSON serializable by the 'module_legacy_m2c' profile., значит используемый в задаче модуль не выполняет необходимое преобразование ключей.
Командная строка
Значимых изменений нет
Устаревшее
Значимых изменений нет
Модули
- Из-за изменений системы шаблонов целочисленные свойства
startedиfinishedмодуляasync_statusбольше нельзя использовать в качестве значений в условных выражениях, поскольку теперь требуются логические значения. Рекомендуется вместо этого использовать плагины проверкиstartedиfinished, например:
- async_status:
jid: '{{ registered_task_result.ansible_job_id }}'
register: job_result
until: job_result is finished
retries: 5
delay: 10
Удалённые модули
Следующие модули больше не существуют:
- Значимых изменений нет
Уведомления об устаревании
Значимых изменений нет
Примечательные изменения модулей
Значимых изменений нет
Плагины
Важные изменения плагинов
-
Плагин подключения
sshтеперь поддерживает использованиеSSH_ASKPASSдля передачи паролей аутентификации в качестве альтернативы программеsshpass. По умолчанию используетсяSSH_ASKPASSвместоsshpass. Это настраивается с помощью параметраpassword_mechanismдля плагина подключенияssh. Чтобы вернуться к использованиюsshpass, внесите одно из следующих изменений:В файле
ansible.cfg:[ssh_connection] password_mechanism = sshpass
Экспортировав переменную окружения:
export ANSIBLE_SSH_PASSWORD_MECHANISM=sshpass
Задав следующую переменную:
ansible_ssh_password_mechanism: sshpass
-
Преобразование нераспознанных входных значений в фильтре
boolсчитается устаревшим. Фильтрboolтеперь возвращает толькоTrueилиFalseв зависимости от входных данных:-
True— возвращается дляTrue,1и строк, совпадающих без учета регистра: «yes», «on», «true», «1» -
False— возвращается дляFalse,0и строк, совпадающих без учета регистра: «no», «off», «false», «0»
Любые другие входные данные приведут к предупреждению об устаревании. В версии
ansible-core2.23 это предупреждение станет ошибкой.При выдаче предупреждения об устаревании возвращаемое значение —
False, если только входные данные не равны1. Это может произойти, когда входными данными является значение1.0типаfloat.Если входные данные имеют значение
None, этот фильтр теперь возвращаетFalseвместоNone. В этом случае также выдается упомянутое выше предупреждение об устаревании. -
-
Передача фильтрам Jinja2, например
defaultиmandatory, а также тестовым плагинам, включаяdefinedиundefined, вложенных нескалярных значений со встроенными шаблонами, которые могут разрешаться вUndefined, больше не приводит к вычислению, как в предыдущих версиях, поскольку вложенные нескалярные значения со встроенными шаблонами обрабатываются как шаблоны только при использовании. В версии 2.19 это утверждение проходит успешно:- assert: that: # Unlike earlier versions, complex_var is defined even though complex_var.nested is not. - complex_var is defined # Unlike earlier versions, the default value is not applied because complex_var is defined. - (complex_var | default(unused)).nested is undefined # Like earlier versions, directly accessing complex_var.nested evaluates as undefined. - complex_var.nested is undefined vars: complex_var: # Before 2.19, complex_var.nested is evaluated immediately when complex_var is accessed. # In 2.19, complex_var.nested is evaluated only when it is accessed. nested: "{{ undefined_variable }}" unused: # This variable is used only if complex_var is undefined. # This only happens in ansible-core before 2.19. nested: default
Перенос пользовательских скриптов
Нет заметных изменений
Сетевые технологии
Нет заметных изменений
Руководство по переносу для версии v12.3.0
Известные проблемы
community.docker
- docker_container — при указании IPv6-адресов для сетей Docker, начиная с версии 29, больше не возвращает исходный адрес, использованный при подключении контейнера к сети, а нормализует адреса. Модуль пытается нормализовать IP-адреса для сравнения, используя для этого модуль
ipaddressиз стандартной библиотеки Python 3. При использовании модуля с Python 2 установите обратный порт ipaddress для Python 2.x (https://github.com/ansible-collections/community.docker/pull/1198). - docker_image, docker_image_export — идемпотентность архивирования образов зависит от того, соответствуют ли идентификаторы образов, используемые серверной частью хранилища образов, идентификаторам из файлов
manifest.jsonв tar-архиве. Судя по всему, новая серверная часть, используемая в Docker 29 по умолчанию, применяет идентификаторы образов, которые больше не соответствуют этим идентификаторам, поэтому идемпотентность больше не работает (https://github.com/ansible-collections/community.docker/pull/1199). - docker_network — при указании IPv6-адресов или сетей Docker, начиная с версии 29, больше не возвращает исходный адрес/сеть, использованные при создании сети, а нормализует их. Модуль пытается нормализовать IP-адреса для сравнения, используя для этого модуль
ipaddressиз стандартной библиотеки Python 3. При использовании модуля с Python 2 установите обратный порт ipaddress для Python 2.x (https://github.com/ansible-collections/community.docker/pull/1203).
Основные изменения
vmware.vmware
- Заменить
ansible.module_utils._text(https://github.com/ansible-collections/vmware.vmware/issues/268). - Заменить
ansible.module_utils.common._collections_compat(https://github.com/ansible-collections/vmware.vmware/issues/271).
Устаревшие функции
- Коллекция
junipernetworks.junosобъявлена устаревшей. Она будет удалена из Ansible 14, если до выхода Ansible 14 никто не возобновит её сопровождение. Подробнее см. в разделе Процесс удаления коллекций, не находящихся на сопровождении (https://forum.ansible.com/t/44869).
Руководство по переносу для версии v12.2.0
Известные проблемы
community.sops
- При использовании
community.sops.load_varsс ansible-core 2.20 учитывайте, что устареваниеINJECT_FACTS_AS_VARSприводит к появлению предупреждений об устаревании при каждом использовании переменной, загруженной с помощьюcommunity.sops.load_vars. Это связано с тем, что ansible-core объявляетINJECT_FACTS_AS_VARSустаревшим, не предоставляя альтернативы для использования такими модулями, какcommunity.sops.load_vars. Если вы не хотите видеть эти предупреждения, необходимо явно задатьINJECT_FACTS_AS_VARSравнымtrue. НЕ заменяйте использование зашифрованных переменных SOPS наansible_facts. Есть надежда, что ситуация улучшится в ansible-core 2.21 благодаря обещанному API, который позволит плагинам действий задавать переменные; community.sops адаптируется для его использования, и предупреждения исчезнут. (Изначально API обещали включить в ansible-core 2.20, но затем его выпуск отложили.)
Основные изменения
community.vmware
- Заменить
ansible.module_utils._text(https://github.com/ansible-collections/community.vmware/issues/2497). - Заменить
ansible.module_utils.common._collections_compat(https://github.com/ansible-collections/community.vmware/issues/2497). - Заменить
ansible.module_utils.six(https://github.com/ansible-collections/community.vmware/pull/2495).
fortinet.fortios
- Для всех модулей реализована поддержка функции default_group.
grafana.grafana
- Использовать пустой словарь, если grafana_ini не определена, автор — @root-expert: https://github.com/grafana/grafana-ansible-collection/pull/403
- Исправлена задача проверки файла конфигурации Mimir, автор — @Windos: https://github.com/grafana/grafana-ansible-collection/pull/428
- Исправлена проблема, автор — @digiserg: https://github.com/grafana/grafana-ansible-collection/pull/421
- Импортировать пользовательские дашборды только при наличии каталога, автор — @mahendrapaipuri: https://github.com/grafana/grafana-ansible-collection/pull/430
- Восстановлены адрес и порт прослушивания по умолчанию в Mimir, автор — @56quarters: https://github.com/grafana/grafana-ansible-collection/pull/456
- Обновлены URL репозиториев YUM:
packages.grafana.comзаменён наrpm.grafana.com, автор — @DejfCold: https://github.com/grafana/grafana-ansible-collection/pull/414 - При импорте дашбордов используются учетные данные из grafana_ini, автор — @root-expert: https://github.com/grafana/grafana-ansible-collection/pull/402
- Не пропускать проверку последней версии GitHub даже в режиме check_mode, автор — @cmehat: https://github.com/grafana/grafana-ansible-collection/pull/408
- Исправлено добавление неработающего репозитория Grafana apt, автор — @kleini: https://github.com/grafana/grafana-ansible-collection/pull/454
- Исправлена документация источника данных, автор — @jeremad: https://github.com/grafana/grafana-ansible-collection/pull/437
- Исправлены mimir_download_url_deb и mimir_download_url_rpm, автор — @germebl: https://github.com/grafana/grafana-ansible-collection/pull/400
- Обновлена информация каталога, автор — @Duologic: https://github.com/grafana/grafana-ansible-collection/pull/434
- Для новых версий Debian используется deb822, автор — @Lukas-Heindl: https://github.com/grafana/grafana-ansible-collection/pull/440
Устаревшие функции
- Коллекция
community.digitaloceanобъявлена устаревшей. Она будет удалена из Ansible 13, если до выхода Ansible 13 никто не возобновит её сопровождение. Подробнее см. в разделе Процесс удаления коллекций, не находящихся на сопровождении (https://forum.ansible.com/t/44602).
community.hrobot
- Модули storagebox* — членство в группе действий
community.hrobot.robot(группе значений по умолчанию для модулей) объявлено устаревшим; модули будут исключены из группы в community.hrobot 3.0.0. Вместо этого используйтеcommunity.hrobot.api(https://github.com/ansible-collections/community.hrobot/pull/178). - Модули storagebox* — параметр
hetzner_tokenстанет обязательным для этих модулей начиная с community.hrobot 3.0.0 (https://github.com/ansible-collections/community.hrobot/pull/178). - Модули storagebox* — параметры
hetzner_userиhetzner_passдля этих модулей объявлены устаревшими; их поддержка будет удалена в community.hrobot 3.0.0. Вместо них используйтеhetzner_token(https://github.com/ansible-collections/community.hrobot/pull/178). - storagebox_info — возвращаемые значения
storageboxes[].login,storageboxes[].disk_quota,storageboxes[].disk_usage,storageboxes[].disk_usage_data,storageboxes[].disk_usage_snapshot,storageboxes[].webdav,storageboxes[].samba,storageboxes[].ssh,storageboxes[].external_reachabilityиstorageboxes[].zfsобъявлены устаревшими и будут удалены из community.routeros. Ознакомьтесь с документацией, чтобы узнать их новые имена в соответствии с новым API (https://github.com/ansible-collections/community.hrobot/pull/178). - storagebox_snapshot_info — возвращаемые значения
snapshots[].timestamp,snapshots[].size,snapshots[].filesystem_size,snapshots[].automaticиsnapshots[].commentобъявлены устаревшими и будут удалены из community.routeros. Ознакомьтесь с документацией, чтобы узнать их новые имена в соответствии с новым API (https://github.com/ansible-collections/community.hrobot/pull/178). - storagebox_snapshot_plan — возвращаемое значение
plans[].monthобъявлено устаревшим, поскольку с новым API оно возвращает толькоnullи не может быть установлено в какое-либо другое значение (https://github.com/ansible-collections/community.hrobot/pull/178). - storagebox_snapshot_plan_info — возвращаемое значение
plans[].monthобъявлено устаревшим, поскольку с новым API оно возвращает толькоnullи не может быть установлено в какое-либо другое значение (https://github.com/ansible-collections/community.hrobot/pull/178). - storagebox_subaccount —
password_mode=set-to-randomобъявлено устаревшим и будет удалено из community.hrobot 3.0.0. Новый API Hetzner в любом случае не поддерживает эту возможность: она доступна только в устаревшем API (https://github.com/ansible-collections/community.hrobot/pull/183). - storagebox_subaccount — возвращаемые значения
subaccount.homedirectory,subaccount.samba,subaccount.ssh,subaccount.external_reachability,subaccount.webdav,subaccount.readonly,subaccount.createtimeиsubaccount.commentобъявлены устаревшими и будут удалены из community.routeros. Ознакомьтесь с документацией, чтобы узнать их новые имена в соответствии с новым API (https://github.com/ansible-collections/community.hrobot/pull/178). - storagebox_subaccount_info — возвращаемые значения
subaccounts[].accountid,subaccounts[].homedirectory,subaccounts[].samba,subaccounts[].ssh,subaccounts[].external_reachability,subaccounts[].webdav,subaccounts[].readonly,subaccounts[].createtimeиsubaccounts[].commentобъявлены устаревшими и будут удалены из community.routeros. Ознакомьтесь с документацией, чтобы узнать их новые имена в соответствии с новым API (https://github.com/ansible-collections/community.hrobot/pull/178).
Руководство по переносу для версии v12.1.0
Добавленные коллекции
- hitachivantara.vspone_object (версия 1.0.0)
- ravendb.ravendb (версия 1.0.3)
Основные изменения
containers.podman
- Добавлены плагины инвентаризации для buildah и podman
- Добавлены модули подключения podman system
fortinet.fortios
- Добавлена поддержка новых версий 7.6.3 и 7.6.4.
- Добавлена поддержка метода аутентификации с использованием имени пользователя и пароля в версии 7.6.4.
grafana.grafana
- В роль Alloy добавлена поддержка SUSE, автор — @pozsa: https://github.com/grafana/grafana-ansible-collection/pull/423
- Исправления для параметра foldersFromFilesStructure, автор — @root-expert: https://github.com/grafana/grafana-ansible-collection/pull/351
- Установка RedHat переведена на ansible.builtin.package, автор — @r65535: https://github.com/grafana/grafana-ansible-collection/pull/431
- В роль Alloy добавлена поддержка macOS, автор — @l50: https://github.com/grafana/grafana-ansible-collection/pull/418
- Для безопасной проверки длины значение None заменено на [], автор — @voidquark: https://github.com/grafana/grafana-ansible-collection/pull/426
Устаревшие функции
community.general
- Плагин поиска hiera — извлечение данных с помощью Hiera было объявлено устаревшим уже давно; поэтому этот плагин будет удален из community.general 13.0.0. Если вы не согласны с этим решением, создайте issue в репозитории community.general (https://github.com/ansible-collections/community.general/issues/4462, https://github.com/ansible-collections/community.general/pull/10779).
- Утилиты модуля oci_utils — utils объявлены устаревшими и будут удалены из community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10652).
- oci_vcn — модуль объявлен устаревшим и будет удален из community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10652).
- Фрагменты документации oracle* — фрагменты объявлены устаревшими и будут удалены из community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10652).
community.zabbix
- Модуль zabbix_maintenance — аргумент
minutesдляtime_periodsобъявлен устаревшим
hetzner.hcloud
- server_type_info — свойство Server Type
deprecationобъявлено устаревшим.
purestorage.flasharray
- purefa_volume_tags — устарел из-за прекращения поддержки REST 1.x. Будет удален в версии коллекции 2.0.0
Руководство по переносу на v12.0.0
Добавленные коллекции
- community.proxmox (версия 1.3.0)
- hitachivantara.vspone_block (версия 4.1.0)
- microsoft.iis (версия 1.0.3)
Известные проблемы
community.general
- Плагин фильтра reveal_ansible_type и тестовый плагин ansible_type — обратите внимание, что функция Data Tagging в ansible-core реализует новые псевдонимы, например
_AnsibleTaggedStrдляstr,_AnsibleTaggedIntдляintи_AnsibleTaggedFloatдляfloat(https://github.com/ansible-collections/community.general/pull/9833).
community.hrobot
- Модули storagebox* — API Hetzner Robot для хранилищ Storage Box устарел и будет отключен 30 июля 2025 года. В настоящее время модули несовместимы с новым API. Мы постараемся адаптировать их к этому сроку, но использование и возвращаемые значения могут немного измениться из-за различий между API. Для нового API необходимо зарегистрировать токен API и передать его как
hetzner_token(https://github.com/ansible-collections/community.hrobot/pull/166).
community.libvirt
- virt_volume — check_mode отключен. В предыдущем коде он также не поддерживался полностью («state/present», «command/create» не поддерживали его).
dellemc.openmanage
- idrac_attributes — для поля “SNMP.1.AgentCommunity” на iDRAC10 модуль принимает значения как строкового, так и целочисленного типа.
- idrac_diagnostics — проблема (285322): модуль не поддерживает экспорт файла диагностики в общую папку HTTP и HTTPS через прокси SOCKS.
- idrac_diagnostics — модуль не поддерживает экспорт файла диагностики в общую папку HTTP и HTTPS через прокси SOCKS.
- idrac_firmware — проблема (279282): модуль не поддерживает обновление микропрограммы с использованием общих папок HTTP, HTTPS и FTP с аутентификацией на iDRAC8.
- ome_smart_fabric_uplink — проблема (186024): модуль поддерживается OpenManage Enterprise Modular, однако не позволяет создавать несколько восходящих каналов с одинаковым именем. Если восходящий канал создать с именем уже существующего, существующий канал будет изменен.
- ome_smart_fabric_uplink — модуль поддерживается OpenManage Enterprise Modular, однако не позволяет создавать несколько восходящих каналов с одинаковым именем. Если восходящий канал создать с именем уже существующего, существующий канал будет изменен.
purestorage.flasharray
- Предполагается, что все участники парка Fusion используют ту же версию Purity//FA, что и массив, к которому подключен Ansible.
- FlashArray//CBS в настоящее время не поддерживается в качестве участника парка Fusion.
vmware.vmware_rest
- В модулях подстановки используется
cloud.common, но эта коллекция не поддерживает ansible-core 2.19 или выше (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
vyos.vyos
- Существующий код для уровня объекта и уровня критичности протокола версии 1.3 несовместим; будет задано только одно из значений, причем приоритет имеет уровень критичности.
Критические изменения
Ansible-core
- Поддержка библиотеки
tomlудалена из разбора и вывода инвентаря TOML. Для разбора в Python 3.10 используйтеtomli. В Python 3.11 и более поздних версиях поддержка разбора встроена. Для вывода инвентаря в формате TOML используйтеtomli-w. - assert — аргумент
quietдолжен иметь общепринятое логическое значение. Ранее нераспознанные значения без предупреждений считались False. - Условия — по умолчанию условные выражения, результатом которых являются не логические значения, теперь считаются ошибкой. Такие результаты часто указывают на непреднамеренное использование шаблонов там, где они не поддерживаются, из-за чего условие всегда истинно. Если этот параметр включен, условные выражения, представляющие собой литерал
Noneили пустую строку, будут считаться истинными для обратной совместимости. Временно заменить ошибку предупреждением об устаревании можно, включив параметр конфигурацииALLOW_BROKEN_CONDITIONALS. - Поиск first_found — если в качестве
filesилиpathsуказать список шаблонов с неопределенными значениями, неопределенные элементы списка будут отброшены с предупреждением. Ранее весь список отбрасывался без предупреждения. - Внутренние компоненты — классы
AnsibleLoaderиAnsibleDumperдля работы с YAML теперь являются фабричными функциями и не могут быть расширены. - Внутренние компоненты — модуль Python
ansible.utils.native_jinjaудален. - Плагины поиска — для плагинов поиска, вызываемых как
with_(lookup), атрибут_subdirбольше не будет устанавливаться. - Плагины поиска —
termsвсегда будет передаваться вrunкак первый позиционный аргумент; ранее при использовании синтаксисаwith_он иногда передавался как именованный аргумент. - Циклы — пропуск заполнителей больше не приводит к их утечке между шаблонизацией элементов цикла и шаблонизацией задач. Ранее заполнители
omitмогли оставаться во встроенном виде в элементах цикла после шаблонизации и использоваться какomitпри шаблонизации задач. Теперь значения, преобразующиеся вomit, сразу отбрасываются при шаблонизации элементов цикла. Чтобы преобразовать отсутствующие значения вomitдля шаблонизации задач, используйте| default(omit). Это решение обратно совместимо с предыдущими версиями ansible-core. - Модули — модули Ansible, использующие
sys.excepthook, должны вместо этого использовать стандартныйtry/except. - Плагины — любой плагин, который получает или создает шаблоны, должен правильно помечать их как доверенные.
- Плагины — пользовательские плагины Jinja, принимающие неопределенные аргументы верхнего уровня, должны явно разрешить их получение.
- Плагины — пользовательские плагины Jinja, использующие
environment.getitemдля получения неопределенных значений, теперь будут вызывать исключениеMarkerError. Это исключение необходимо обработать, чтобы плагин мог вернутьMarker, либо плагин должен явно разрешить прием значенийMarker. - Публичный API — оболочка
ansible.vars.fact_cache.FactCacheудалена. - Сериализация маркера
omit— сериализация переменных, содержащих маркерыomit(например, фильтрамиto_jsonиto_yamlилиansible-inventory), завершится ошибкой, если шаблонизация переменной не была завершена. Ранее сериализация выполнялась успешно, а в сериализованный результат добавлялись строки-заполнители. - set_fact — строковые значения “yes”, “no”, “true” и “false” ранее преобразовывались (без учета регистра) в логические значения, если не использовался собственный режим Jinja2. Поскольку собственный режим Jinja2 теперь используется всегда, такое преобразование больше не выполняется. Если требуются логические значения, при определении переменных следует использовать собственный синтаксис логических значений, например в YAML. Если использовать собственный синтаксис логических значений невозможно, для преобразования строк в логические значения можно использовать фильтр
bool. - Поиск template — параметр
convert_dataустарел и больше не оказывает никакого действия. Вместо него применяйте фильтрfrom_jsonк результату поиска. - Шаблонизация — доступ к атрибутам и методам с префиксом
_, а также к методам с известными побочными эффектами больше не разрешен. Если имеется соответствующий ключ сопоставления, вместо ошибки будет возвращено связанное с ним значение. Это повышает изоляцию среды шаблонов и обеспечивает более согласованное поведение операторов.и[]. - Шаблонизация — условные выражения и поисковые запросы, использующие встроенные строчные шаблоны в строковых константах Jinja, теперь выводят предупреждение. Такие шаблоны следует преобразовать в эквивалентные выражения.
- Шаблонизация — многие плагины Jinja (фильтры, поисковые запросы, тесты) и методы ранее без предупреждения игнорировали неопределенные входные данные, что часто скрывало незаметные ошибки. Передача неопределенного аргумента плагину или методу Jinja, не объявляющему поддержку неопределенных значений, теперь приводит к неопределенному значению.
- Шаблонизация — шаблоны всегда обрабатываются в собственном режиме Jinja2. В результате значения, не являющиеся строками, больше не преобразуются автоматически в строки.
- Шаблонизация — результаты шаблонов, равные
None, больше не преобразуются автоматически в пустую строку. - Шаблонизация — шаблоны со встроенными строчными шаблонами, которые не заключены в строковую константу Jinja, теперь приводят к ошибке, поскольку поддержка многоэтапной шаблонизации удалена по соображениям безопасности. В большинстве случаев такие шаблоны можно легко переписать, отказавшись от встроенных строчных шаблонов.
- Шаблонизация — параметр
allow_unsafe_lookupsбольше не оказывает никакого действия. Плагины поиска отвечают за пометку строк, содержащих шаблоны, чтобы их можно было обрабатывать как шаблоны. - Шаблонизация — результат глобальной функции
range()нельзя возвращать из шаблона — его всегда следует передавать фильтру (например,random). Ранее объекты range, возвращаемые промежуточным шаблоном, всегда преобразовывались в список, что не согласуется с непосредственным использованием объектов range. - Шаблонизация — переопределения
#jinja2:в шаблонах с недопустимыми именами или типами теперь приводят к ошибкам шаблонизации.
amazon.aws
- Коллекция amazon.aws — поддержка ansible-core < 2.17 прекращена (https://github.com/ansible-collections/amazon.aws/pull/2601).
- Коллекция amazon.aws — поддержка переменной среды
EC2_ACCESS_KEYбыла объявлена устаревшей в выпуске6.0.0и теперь удалена. Вместо нее используйте параметрaccess_keyили переменную средыAWS_ACCESS_KEY_ID(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — поддержка переменной среды
EC2_REGIONбыла объявлена устаревшей в выпуске6.0.0и теперь удалена. Вместо нее используйте параметрregionили переменную средыAWS_REGION(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — поддержка переменной среды
EC2_SECRET_KEYбыла объявлена устаревшей в выпуске6.0.0и теперь удалена. Вместо нее используйте параметрsecret_keyили переменную средыAWS_SECRET_ACCESS_KEY(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — поддержка переменных среды
EC2_SECURITY_TOKENиAWS_SECURITY_TOKENбыла объявлена устаревшей в выпуске6.0.0и теперь удалена. Вместо нее используйте параметрsession_tokenили переменную средыAWS_SESSION_TOKEN(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — поддержка переменных среды
EC2_URLиS3_URLбыла объявлена устаревшей в выпуске6.0.0и теперь удалена. Вместо нее используйте параметрendpoint_urlили переменную средыAWS_URL(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — псевдонимы
access_token,aws_security_tokenиsecurity_tokenпараметраsession_tokenбыли объявлены устаревшими в выпуске6.0.0и теперь удалены. Используйте вместо них имяsession_token(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — псевдоним
boto_profileпараметраprofileбыл объявлен устаревшим в выпуске6.0.0и теперь удален. Используйте вместо него имяprofile(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — псевдоним
ec2_access_keyпараметраaccess_keyбыл объявлен устаревшим в выпуске6.0.0и теперь удален. Используйте вместо него имяaccess_key(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — псевдоним
ec2_regionпараметраregionбыл объявлен устаревшим в выпуске6.0.0и теперь удален. Используйте вместо него имяregion(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — псевдоним
ec2_secret_keyпараметраsecret_keyбыл объявлен устаревшим в выпуске6.0.0и теперь удален. Используйте вместо него имяsecret_key(https://github.com/ansible-collections/amazon.aws/pull/2527). - Коллекция amazon.aws — псевдонимы
endpoint,ec2_urlиs3_urlпараметраendpoint_urlбыли объявлены устаревшими в выпуске6.0.0и теперь удалены. Используйте вместо них имяregion(https://github.com/ansible-collections/amazon.aws/pull/2527). - docs_fragments — ранее объявленный устаревшим фрагмент документации
amazon.aws.aws_credentialsудален; используйте вместо негоamazon.aws.common.plugins(https://github.com/ansible-collections/amazon.aws/pull/2527). - docs_fragments — ранее объявленный устаревшим фрагмент документации
amazon.aws.aws_regionудален; используйте вместо негоamazon.aws.region.plugins(https://github.com/ansible-collections/amazon.aws/pull/2527). - docs_fragments — ранее объявленный устаревшим фрагмент документации
amazon.aws.awsудален; используйте вместо негоamazon.aws.common.modules(https://github.com/ansible-collections/amazon.aws/pull/2527). - docs_fragments — ранее объявленный устаревшим фрагмент документации
amazon.aws.ec2удален; используйте вместо негоamazon.aws.region.modules(https://github.com/ansible-collections/amazon.aws/pull/2527). - ec2_vpc_peering_info — ключ
resultудален из возвращаемого значения. Вместо него следует использоватьvpc_peering_connections(https://github.com/ansible-collections/amazon.aws/pull/2618). - module_utils.botocore — удален устаревший параметр
boto3дляget_aws_region()иget_aws_connection_info(); этот параметр не оказывал никакого действия начиная с выпуска 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2443). - module_utils.ec2 — удален устаревший параметр
boto3дляget_ec2_security_group_ids_from_names()иget_aws_connection_info(); этот параметр не оказывал никакого действия начиная с выпуска 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2603). - rds_param_group — перенаправление удалено, и плейбуки следует обновить, чтобы использовать rds_instance_param_group (https://github.com/ansible-collections/amazon.aws/pull/2618).
ansible.posix
- firewalld — тип параметров forward и masquerade изменен со str на bool (https://github.com/ansible-collections/ansible.posix/issues/582).
- firewalld — тип параметра icmp_block_inversion изменен со str на bool (https://github.com/ansible-collections/ansible.posix/issues/586).
community.aws
- Поддержка
ansible-core<2.17прекращена (https://github.com/ansible-collections/community.aws/pull/2303). - В коллекции community.aws прекращена поддержка
botocore<1.31.0иboto3<1.28.0. Большинство модулей продолжат работать со старыми версиями AWS SDK. Однако совместимость со старыми версиями SDK не гарантируется и проверяться не будет. При использовании старых версий SDK Ansible выведет предупреждение (https://github.com/ansible-collections/community.aws/pull/2195). - connection/aws_ssm — плагин подключения перенесен из коллекции
community.aws. Плейбуки или инвентарь, в которых для этого плагина подключения используется полное имя коллекции, следует обновить и использоватьamazon.aws.aws_ssm.
community.crypto
- Все doc_fragments теперь являются внутренними для коллекции и не должны использоваться в других коллекциях или посторонних плагинах/модулях. Критические изменения в них могут произойти в любое время, в том числе в выпусках с исправлениями ошибок (https://github.com/ansible-collections/community.crypto/pull/898).
- Все module_utils и plugin_utils теперь являются внутренними для коллекции и не должны использоваться в других коллекциях или посторонних плагинах/модулях. Критические изменения в них могут произойти в любое время, в том числе в выпусках с исправлениями ошибок (https://github.com/ansible-collections/community.crypto/pull/887).
- Игнорировать значение
select_crypto_backendдля всех модулей, кроме acme_* и …, и всегда считать значениемauto. Это гарантирует, что версияcryptographyвсегда будет проверяться (https://github.com/ansible-collections/community.crypto/pull/883). - Проверка относительных временных меток теперь выполняется строже. Строка, начинающаяся с
+или-, должна быть допустимой, иначе проверка завершится ошибкой. Ранее такие строки часто молча игнорировались, а во многих случаях код, запускавший проверку, не мог обработать отсутствие результата (https://github.com/ansible-collections/community.crypto/pull/885). - Утилиты модуля acme.certificates — вспомогательная функция
retrieve_acme_v1_certificate()удалена (https://github.com/ansible-collections/community.crypto/pull/873). - get_certificate — значение по умолчанию для
asn1_base64изменено сfalseнаtrue(https://github.com/ansible-collections/community.crypto/pull/873). - x509_crl — параметр
modeбольше не задает режим обновления, а задает режим файла CRL. Для режима обновления используйтеcrl_mode(https://github.com/ansible-collections/community.crypto/pull/873).
community.hashi_vault
- ansible-core — прекращена поддержка всех версий
ansible-coreс истекшим сроком службы. Коллекция тестируется сansible-core>=2.17(https://github.com/ansible-collections/community.hashi_vault/issues/470). - python — прекращена поддержка старых версий Python. Коллекция тестируется со всеми поддерживаемыми версиями на стороне контроллера и несколькими более ранними версиями на целевой стороне — в зависимости от тестов (https://github.com/ansible-collections/community.hashi_vault/issues/470).
community.okd
- Удален устаревший в версии 3.0.0 плагин инвентаря openshift (https://github.com/openshift/community.okd/pull/252).
community.postgresql
- postgresql_info — псевдоним
dbобъявлен устаревшим и будет удален в следующем основном выпуске; вместо него используйте аргументlogin_db. - postgresql_pg_hba — в связи с #776: параметр ‘keep_comments_at_rules’ объявлен устаревшим и ничего не делает; по умолчанию комментарии сохраняются при тех правилах, с которыми они указаны. keep_comments_at_rules будет удален в версии 5.0.0 (https://github.com/ansible-collections/community.postgresql/pull/778)
- postgresql_user — псевдоним
dbобъявлен устаревшим и будет удален в следующем основном выпуске; вместо него используйте аргументlogin_db.
community.zabbix
- Все роли — прекращена поддержка Ubuntu 20.04.
- Поддержка Zabbix 6.4 в ролях прекращена.
dellemc.enterprise_sonic
- sonic_aaa — модуль AAA обновлен для соответствия функциональности SONiC (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/382).
- sonic_bgp_communities — параметр ‘aann’ перенесен в качестве подопции ‘members’, а его тип изменен со строки на список строк (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/440).
- sonic_route_maps — параметр ‘set ip_next_hop’ изменен с однострочного параметра на словарь (https://github.com/ansible-collection/dellemc.enterprise_sonic/pull/421).
- sonic_vlan_mapping — новый модуль ресурсов vlan_mapping. Пользователям модуля ресурсов vlan_mapping, у которых есть плейбуки для SONiC 4.1, необходимо пересмотреть их с учетом новой спецификации аргументов, чтобы использовать эти плейбуки в SONiC 4.2 и более поздних версиях. (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/296).
hetzner.hcloud
- Прекращена поддержка ansible-core 2.15.
- Прекращена поддержка ansible-core 2.16.
- Прекращена поддержка Python 3.8.
- inventory — для параметра
hostvars_prefixтеперь задано значение по умолчаниюhcloud_. Обновите все ссылки на переменные узлов, предоставляемые инвентарем. Это изменение можно отменить, задав для параметраhostvars_prefixзначение“”. - server — устаревший аргумент
force_upgradeудален из модуля server. Вместо него используйте аргументforce. - volume — тома больше не отсоединяются, если аргумент server не указан. Для управления подключением томов используйте модуль
volume_attachment.
kubernetes.core
- Удален устаревший плагин инвентаря
k8s(https://github.com/ansible-collections/kubernetes.core/pull/867). - Прекращена поддержка
ansible-core<2.16(https://github.com/ansible-collections/kubernetes.core/pull/867).
theforeman.foreman
- Прекращена поддержка Ansible 2.9.
- Прекращена поддержка Python 2.7 и 3.5.
vmware.vmware
- прекращена поддержка ansible 2.15, поскольку срок его поддержки истек https://github.com/ansible-collections/vmware.vmware/issues/103
- минимальная версия pyVmomi обновлена до 8.0.3.0.1 https://github.com/ansible-collections/vmware.vmware/issues/56
vyos.vyos
- Удален
vyos_logging. Вместо него используйтеvyos_logging_global. - lldp_global — если доступен параметр “address”, режим merge добавит его, в отличие от прежнего поведения, при котором он заменялся. В режиме replace будут удалены все существующие адреса и заменены новым.
- vyos_bgp_address_family — поддерживаются только версии VyOS 1.3 и выше.
- vyos_bgp_global — поддерживаются только версии VyOS 1.3 и выше.
- vyos_firewall_rules — параметры p2p удалены, поскольку они были удалены до выпуска VyOS 1.3.
- vyos_firewall_rules — tcp.flags теперь представляет собой список с флагом инверсии для поддержки правил межсетевого экрана версии 1.4 и выше; при этом сохраняется поддержка версий 1.3 и ниже.
- vyos_lldp_global — civic_address больше не является допустимым ключом (удален до выпуска версии 1.3).
- vyos_logging_global — в версии 1.4
protocolявляется атрибутом узла syslog, а не объекта facility. - vyos_snmp_server — больше не работает с версиями ниже 1.3.
- vyos_snmp_server — параметр
engine_idбольше не является параметромuserилиtrap_targetи теперь является параметромsnmp_v3. - vyos_snmp_server — параметры
encrypted-keyиplaintext-keyтеперь являютсяencrypted-passwordиplaintext-password - vyos_user — явная поддержка только версий 1.3 и выше.
- vyos_user — удален параметр level (и его псевдоним role), поскольку они были удалены в версии 1.3.
Основные изменения
Ansible-core
- Плагины Jinja — встроенные фильтры и тесты Jinja теперь доступны по полным именам
ansible.builtin.{name}. - Выполнение задач / форки — форки больше не наследуют стандартные потоки ввода-вывода родительского процесса
ansible-playbook.stdout,stderrиstdinв рабочем процессе отделены от терминала и не функционируют. Для доступа из форка к стандартным потокам ввода-вывода подключаемыми модулями контроллера необходимо использоватьDisplay. - ansible-test — пакеты в каталоге
module_utilsтеперь могут содержать файлы__init__.py. - Переменные — базовая система типов для хранения переменных Ansible была существенно переработана и формализована. Попытки сохранить в переменных неподдерживаемые типы объектов Python теперь более последовательно приводят к ранним предупреждениям или ошибкам.
- Переменные — для поддержки новых возможностей Ansible многие объекты переменных теперь представлены подклассами соответствующих встроенных типов Python. В большинстве случаев они ведут себя так же, как исходные типы, однако некоторые библиотеки Python некорректно обрабатывают подклассы встроенных объектов. Пользовательские плагины, взаимодействующие с такими библиотеками, может потребоваться изменить, чтобы преобразовывать и передавать встроенные типы.
amazon.aws
- Коллекция amazon.aws — коллекция amazon.aws прекратила поддержку
botocore<1.34.0иboto3<1.34.0. Большинство модулей продолжат работать со старыми версиями AWS SDK, однако совместимость с ними не гарантируется и не будет проверяться. При использовании старых версий SDK Ansible будет выводить предупреждение (https://github.com/ansible-collections/amazon.aws/pull/2426). - Коллекция amazon.aws — поскольку разработчики AWS SDK объявили о прекращении поддержки Python версий ниже 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/), поддержка Python версий ниже 3.8 в этой коллекции была объявлена устаревшей в выпуске 6.0.0 и удалена в выпуске 10.0.0. (https://github.com/ansible-collections/amazon.aws/pull/2426).
- connection/aws_ssm — модуль перенесён из коллекции
community.aws. В плейбуках, где для этого модуля используется полное имя коллекции, его следует заменить наamazon.aws.aws_ssm.
ansible.netcommon
- Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
ansible.utils
- Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
arista.eos
- Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
cisco.ios
- Обновление
dependenciesansible.netcommon до>=8.1.0, поскольку у предыдущих версий зависимости были проблемы совместимости сansible-core>=2.19. - Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
cisco.iosxr
- Обновление
dependenciesansible.netcommon до>=8.1.0, поскольку у предыдущих версий зависимости были проблемы совместимости сansible-core>=2.19. - Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
cisco.nxos
- Обновление
dependenciesansible.netcommon до>=8.1.0, поскольку у предыдущих версий зависимости были проблемы совместимости сansible-core>=2.19. - Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
community.aws
- Коллекция community.aws — коллекция community.aws прекратила поддержку
botocore<1.34.0иboto3<1.34.0. Большинство модулей продолжат работать со старыми версиями AWS SDK, однако совместимость с ними не гарантируется и не будет проверяться. При использовании старых версий SDK Ansible будет выводить предупреждение (https://github.com/ansible-collections/amazon.aws/pull/2426).
community.libvirt
- virt_volume — новая команда ‘create_cidata_cdrom’ позволяет создать CDROM cloud-init, который можно подключить к базовому образу с поддержкой cloud-init для начальной настройки сети, пользователей и т. д.
- virt_volume — команды create_from, delete, download, info, resize, upload, wipe и facts не работали и не тестировались. Они были либо переработаны для обеспечения работоспособности и протестированы, либо удалены.
- virt_volume — механизм передачи переменных функциям-членам был недостаточно гибким для работы с различными требованиями к параметрам. Теперь все параметры передаются как kwargs, что позволяет функциям-членам выбирать необходимые им параметры.
- virt_volume — модуль, по-видимому, был создан на основе virt_pool, но не был очищен от большого объёма неработающего кода. Он переработан: код, относящийся к пулам, удалён, а сам модуль стал гибче.
community.postgresql
- Коллекция не тестируется на Python 2 и начиная с версии 4.0.0 принимает содержимое, написанное на Python 3 (https://github.com/ansible-collections/community.postgresql/issues/829).
community.vmware
- vmware_dvswitch_pvlans — тип идентификатора VLAN обновлён: теперь он обрабатывается как целое число (https://github.com/ansible-collections/community.vmware/pull/2267).
community.zabbix
- Все роли — добавлена поддержка Zabbix 7.4
- Все роли — добавлена поддержка версии 7.2
dellemc.openmanage
- Модули Ansible OpenManage iDRAC теперь совместимы с Ansible Core версии 2.19.
- idrac_attributes — модуль дополнен поддержкой iDRAC10.
- idrac_attributes — роль дополнена поддержкой iDRAC10.
- idrac_bios — модуль дополнен поддержкой iDRAC10.
- idrac_bios — роль дополнена поддержкой iDRAC10.
- idrac_boot — модуль дополнен поддержкой iDRAC10.
- idrac_boot — роль дополнена поддержкой iDRAC10.
- idrac_certificates — модуль дополнен поддержкой iDRAC10.
- idrac_diagnostics — модуль дополнен поддержкой iDRAC10.
- idrac_firmware — модуль дополнен поддержкой iDRAC10.
- idrac_gather_facts — роль дополнена поддержкой iDRAC10.
- idrac_job_queue — роль дополнена поддержкой iDRAC10.
- idrac_lifecycle_controller_job_status_info — модуль дополнен поддержкой iDRAC10.
- idrac_lifecycle_controller_jobs — модуль дополнен поддержкой iDRAC10.
- idrac_lifecycle_controller_logs — модуль дополнен поддержкой iDRAC10.
- idrac_lifecycle_controller_status_info — модуль дополнен поддержкой iDRAC10.
- idrac_network_attributes — модуль дополнен поддержкой iDRAC10.
- idrac_reset — модуль дополнен поддержкой iDRAC10.
- idrac_reset — роль дополнена поддержкой iDRAC10.
- idrac_secure_boot — модуль дополнен поддержкой iDRAC10.
- idrac_server_powerstate — роль дополнена поддержкой iDRAC10.
- idrac_session — модуль дополнен поддержкой iDRAC10.
- idrac_support_assist — модуль дополнен поддержкой iDRAC10.
- idrac_syslog — модуль объявлен устаревшим.
- idrac_system_erase — модуль дополнен поддержкой iDRAC10.
- idrac_system_info — модуль дополнен поддержкой iDRAC10.
- idrac_user — модуль дополнен поддержкой iDRAC10.
- idrac_user — роль дополнена поддержкой iDRAC10.
- idrac_user_info — модуль дополнен поддержкой iDRAC10.
- idrac_virtual_media — модуль дополнен поддержкой iDRAC10.
- ome_firmware — модуль дополнен поддержкой OME 4.5.
- ome_firmware_baseline — модуль дополнен поддержкой OME 4.5.
- ome_firmware_baseline_compliance_info — модуль дополнен поддержкой OME 4.5.
- ome_firmware_baseline_info — модуль дополнен поддержкой OME 4.5.
- ome_firmware_catalog — модуль дополнен поддержкой OME 4.5.
- omevv_baseline_profile — этот модуль позволяет управлять профилем базового уровня.
- omevv_baseline_profile_info — этот модуль позволяет получать сведения о профиле базового уровня.
- omevv_compliance_info — этот модуль позволяет получать отчёты о соответствии встроенного ПО.
- omevv_firmware — этот модуль позволяет обновлять встроенное ПО отдельного узла и отдельного кластера.
- redfish_event_subscription — модуль дополнен поддержкой iDRAC10.
- redfish_firmware — модуль дополнен поддержкой iDRAC10.
- redfish_power_state — модуль дополнен поддержкой iDRAC10.
dellemc.unity
- Добавлена поддержка Unity v5.5.
fortinet.fortios
- Добавлена поддержка check_mode во всех модулях конфигурации.
- Добавлена поддержка новых версий 7.6.1 и 7.6.2.
- В примерах обновлены значения с указанием минимальных и максимальных пределов.
google.cloud
- google_cloud_ops_agents — подмодуль role удалён, поскольку он мешает коллекции проходить проверки sanity и lint
grafana.grafana
- Добавлена возможность указывать пользовательский путь к каталогу с файлами конфигурации *.alloy; автор — @voidquark, https://github.com/grafana/grafana-ansible-collection/pull/294
- Добавлена защита от удаления; автор — @KucicM, https://github.com/grafana/grafana-ansible-collection/pull/381
- Добавлен параметр foldersFromFilesStructure; автор — @root-expert, https://github.com/grafana/grafana-ansible-collection/pull/326
- Добавлена роль tempo; автор — @CSTDev, https://github.com/grafana/grafana-ansible-collection/pull/323
- Добавлены тесты и поддержка последней версии; автор — @pieterlexis-tomtom, https://github.com/grafana/grafana-ansible-collection/pull/299
- Обновлён ansible-lint с версии 24.9.2 до 25.6.1; автор — @dependabot[bot], https://github.com/grafana/grafana-ansible-collection/pull/391
- Обновлён brace-expansion с версии 1.1.11 до 1.1.12 в группе npm_and_yarn в одном каталоге; автор — @dependabot[bot], https://github.com/grafana/grafana-ansible-collection/pull/396
- Изменения для задачи
- При установке фактов содержимое grafana.ini больше не записывается в журнал; автор — @root-expert, https://github.com/grafana/grafana-ansible-collection/pull/325
- Не переопределять значения по умолчанию; автор — @56quarters, https://github.com/grafana/grafana-ansible-collection/pull/382
- Не использовать прокси при проверке готовности Alloy; автор — @benoitc-croesus, https://github.com/grafana/grafana-ansible-collection/pull/375
- Исправлена ошибка «у объекта dict нет атрибута path» при запуске с параметром –check; автор — @JMLX42, https://github.com/grafana/grafana-ansible-collection/pull/283
- Исправлена задача проверки URL Mimir; автор — @parcimonic, https://github.com/grafana/grafana-ansible-collection/pull/358
- Исправлена ошибка, из-за которой раздел loki_operational_config не отображался в config.yml; автор — @olegkaspersky, https://github.com/grafana/grafana-ansible-collection/pull/330
- Исправлен крайний случай с элементами без разделов; автор — @santilococo, https://github.com/grafana/grafana-ansible-collection/pull/303
- Исправлены некоторые регрессии, появившиеся в версии v6; автор — @voidquark, https://github.com/grafana/grafana-ansible-collection/pull/376
- Исправлено наследование переменных по умолчанию тегами; автор — @MJurayev, https://github.com/grafana/grafana-ansible-collection/pull/341
- Исправлены ограждения блоков кода Markdown для команды установки; автор — @benmatselby, https://github.com/grafana/grafana-ansible-collection/pull/306
- Исправлены факты Grafana в main.yml; автор — @voidquark, https://github.com/grafana/grafana-ansible-collection/pull/315
- Импорт панелей мониторинга стал гибче; автор — @torfbolt, https://github.com/grafana/grafana-ansible-collection/pull/308
- Добавлено создание каталога /var/lib/otel-collector средствами systemd; автор — @pieterlexis-tomtom, https://github.com/grafana/grafana-ansible-collection/pull/336
- Обновлён README.md Mimir; автор — @Gufderald, https://github.com/grafana/grafana-ansible-collection/pull/397
- Обновлён шаблон Grafana; автор — @santilococo, https://github.com/grafana/grafana-ansible-collection/pull/300
- Обновлено условие when для проверки наличия файлов панелей мониторинга; автор — @hal58th, https://github.com/grafana/grafana-ansible-collection/pull/363
- В задаче find используется become false; автор — @santilococo, https://github.com/grafana/grafana-ansible-collection/pull/368
- Добавлена проверка конфигурации; автор — @pieterlexis-tomtom, https://github.com/grafana/grafana-ansible-collection/pull/327
- Добавлен файл catalog-info для внутреннего каталога разработчиков; автор — @theSuess, https://github.com/grafana/grafana-ansible-collection/pull/317
- Добавлена поддержка Loki Bloom; автор — @voidquark, https://github.com/grafana/grafana-ansible-collection/pull/298
- В рабочий процесс GitHub Actions для Ansible Galaxy добавлен этап публикации; автор — @thelooter, https://github.com/grafana/grafana-ansible-collection/pull/340
- Добавлен модуль пользователей для создания, обновления и удаления пользователей Grafana; автор — @mvalois, https://github.com/grafana/grafana-ansible-collection/pull/178
- alloy_readiness_check_use_https; автор — @piotr-g, https://github.com/grafana/grafana-ansible-collection/pull/359
- Объявлены зависимости коллекции; автор — @ishanjainn, https://github.com/grafana/grafana-ansible-collection/pull/390
- Объявлены зависимости коллекции; автор — @kleini, https://github.com/grafana/grafana-ansible-collection/pull/386
- Объявлены зависимости коллекции; автор — @kleini, https://github.com/grafana/grafana-ansible-collection/pull/392
- Добавлена проверка, гарантирующая, что IP assert возвращает логическое значение; автор — @aardbol, https://github.com/grafana/grafana-ansible-collection/pull/398
- Добавлена проверка наличия каталога подготовки оповещений; автор — @derhuerst, https://github.com/grafana/grafana-ansible-collection/pull/364
- Обеспечено создание временного каталога для dashboards.yml даже в режиме проверки; автор — @cmehat, https://github.com/grafana/grafana-ansible-collection/pull/339
- Синтаксис YAML для grafana.ini; автор — @intermittentnrg, https://github.com/grafana/grafana-ansible-collection/pull/232
- Улучшен пример плейбука для mimir/alloy; автор — @smCloudInTheSky, https://github.com/grafana/grafana-ansible-collection/pull/369
- Добавлена поддержка устаревших скриптов инициализации SLES; автор — @floerica, https://github.com/grafana/grafana-ansible-collection/pull/184
- Управление config.river с преобразованием config.yaml; автор — @lbrule, https://github.com/grafana/grafana-ansible-collection/pull/149
- Для задачи развёртывания конфигурации установлен
no_log; автор — @kkantonop, https://github.com/grafana/grafana-ansible-collection/pull/380 - Улучшена проверка конфигурации; автор — @pieterlexis-tomtom, https://github.com/grafana/grafana-ansible-collection/pull/354
- Ключ APT сохраняется с расширением .asc; автор — @derhuerst, https://github.com/grafana/grafana-ansible-collection/pull/394
- Добавлен шаблон для разделов ingester и querier; автор — @Gufderald, https://github.com/grafana/grafana-ansible-collection/pull/371
- Вместо переменных ansible_* используются ansible_facts; автор — @kleini, https://github.com/grafana/grafana-ansible-collection/pull/296
- Вместо переменных используются ansible_facts; автор — @kleini, https://github.com/grafana/grafana-ansible-collection/pull/365
junipernetworks.junos
- Обновление
requires_ansibleдо>=2.16.0, поскольку поддержка предыдущих версий ansible-core теперь прекращена.
netapp.ontap
- Библиотека
netapp-libтеперь является необязательной зависимостью. - na_ontap_autoupdate_support — добавлена поддержка включения автоматического обновления ПО только через REST; требуется ONTAP 9.10 или более поздняя версия.
- na_ontap_lun — добавлена совместимость с системами ASA r2.
- na_ontap_lun_copy — добавлена проверка, запрещающая использование в неподдерживаемых системах ASA r2.
- na_ontap_lun_map — добавлена совместимость с системами ASA r2.
- na_ontap_lun_map_reporting_nodes — добавлена совместимость с системами ASA r2.
- na_ontap_nvme_namespace — добавлена совместимость с системами ASA r2.
- na_ontap_nvme_subsystem — добавлена совместимость с системами ASA r2.
- na_ontap_s3_buckets — в REST добавлен новый параметр
snapshot_policy; требуется ONTAP 9.16.1 или более поздняя версия.
vmware.vmware
- Модули кластеров — в вывод модулей кластеров добавлены идентификационные сведения об управляемом кластере
- folder_paths — при указании относительного пути к папке без имени центра обработки данных теперь возникает ошибка
- module_utils/argument_spec — спецификации аргументов стали общедоступными, чтобы их могли использовать другие коллекции https://github.com/ansible-collections/vmware.vmware/issues/144
- module_utils/clients — служебные средства клиентов стали общедоступными, чтобы их могли использовать другие коллекции https://github.com/ansible-collections/vmware.vmware/issues/144
- Обновлён файл запросов: в него добавлены запросы модулей кластеров
vmware.vmware_rest
cloud.commonудалён из числа зависимостей, поэтому теперь он больше не будет устанавливаться автоматически (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).- Модули — турборежим выполнения модулей отключён по умолчанию. Его можно включить с помощью переменной среды (https://github.com/ansible-collections/vmware.vmware_rest/issues/499)
vyos.vyos
- Модули BGP — добавлена поддержка “system-as” для версии 1.4 и новее. Встроенный as_number из версии 1.3 по-прежнему поддерживается
- Модули BGP VyOS — многие атрибуты конфигурации перенесены из модуля
bgp_globalв модульbgp_address_family(см. документацию). - vyos_bgp_address_family — приведён в соответствие с конфигурацией версии 1.3 и новее: aggregate_address, maximum_paths, network и redistribute перенесены из модуля
bgp_global. Теперь эти параметры относятся к конкретному семейству адресов. Многие атрибуты соседей также перенесены из модуляvyos_bgp_globalв модульvyos_bgp_address_family. - vyos_bgp_global — приведён в соответствие с конфигурацией версии 1.3 и новее: aggregate_address, maximum_paths, network и redistribute удалены и перенесены в модуль
bgp_address_family. - vyos_user — добавлена поддержка указания зашифрованного пароля
- vyos_user — добавлена поддержка аутентификации по открытому ключу
Удалённые коллекции
- cisco.asa (ранее включённая версия: 6.0.0)
- cisco.ise (ранее включённая версия: 2.9.5)
- cloud.common (ранее включённая версия: 4.0.0)
- community.network (ранее включённая версия: 5.1.0)
- ibm.spectrum_virtualize (ранее включённая версия: 2.0.0)
- sensu.sensu_go (ранее включённая версия: 1.14.0)
Удалённую коллекцию по-прежнему можно установить вручную с помощью ansible-galaxy collection install <name-of-collection>.
Удалённые функции
- Коллекция
cisco.iseсчиталась неподдерживаемой и была удалена из Ansible 12 (https://forum.ansible.com/t/43367). Пользователи по-прежнему могут установить эту коллекцию с помощьюansible-galaxy collection install cisco.ise. - Коллекция
ibm.spectrum_virtualizeполностью удалена из Ansible. Она переименована вibm.storage_virtualize. Со временем коллекция будет полностью удалена из Ansible. Обновите свои FQCN сibm.spectrum_virtualizeнаibm.storage_virtualize. - Устаревшая коллекция
cisco.asaудалена (https://forum.ansible.com/t/38960). - Устаревшая коллекция
community.networkудалена (https://forum.ansible.com/t/8030). - Коллекция sensu.sensu_go удалена из Ansible 12 из-за несоответствия требованиям Ansible к включению коллекций. В коллекции есть неустранённые ошибки проверок sanity. Подробнее см. в разделе Процесс удаления коллекций, не соответствующих требованиям (https://forum.ansible.com/t/8380). Пользователи по-прежнему могут установить эту коллекцию с помощью
ansible-galaxy collection install sensu.sensu_go.
Ansible-core
- Удалена устаревшая форма множественного числа для пути коллекций (https://github.com/ansible/ansible/pull/84156).
- Удалён устаревший параметр STRING_CONVERSION_ACTION (https://github.com/ansible/ansible/issues/84220).
- encrypt — передача неподдерживаемого типа хеширования passlib теперь вызывает AnsibleFilterError.
- manager — удалён устаревший параметр include_delegate_to из API get_vars.
- modules — модули, возвращающие строки в кодировке, отличной от UTF-8, теперь приводят к ошибке. Для отключения этой проверки можно использовать настройку
MODULE_STRICT_UTF8_RESPONSE. - Удалены устаревшие pycompat24 и compat.importlib.
- selector — удалены устаревшие файлы, связанные с compat.selector (https://github.com/ansible/ansible/pull/84155).
- windows — из модулей Windows удалены общие функции модулей
ConvertFrom-AnsibleJson,Format-AnsibleException, поскольку они не используются и усложняют код без необходимости.
ansible.posix
- skippy — плагин skippy удалён, поскольку больше не поддерживается (https://github.com/ansible-collections/ansible.posix/issues/350).
ansible.windows
- win_domain — устаревший модуль удалён, используйте вместо него
microsoft.ad.domain - win_domain_controller — устаревший модуль удалён, используйте вместо него
microsoft.ad.domain_controller - win_domain_membership — устаревший модуль удалён, используйте вместо него
microsoft.ad.membership - win_feature — устаревшее возвращаемое значение
restart_neededвfeature_resultудалено, используйте вместо негоreboot_required - win_updates — устаревшее возвращаемое значение
filtered_reasonудалено, используйте вместо негоfiltered_reasons
cisco.nxos
- В этом выпуске удалены все устаревшие плагины, срок поддержки которых истёк, в том числе:
- nxos_snmp_community
- nxos_snmp_contact
- nxos_snmp_host
- nxos_snmp_location
- nxos_snmp_user
community.crypto
- Весь контент Entrust удаляется, поскольку сервис Entrust закрывается после продажи бизнеса Entrust по выпуску публичных сертификатов компании Sectigo; подробности см. в объявлении с ключевыми датами и кратком руководстве по миграции для клиентов. Поскольку этот процесс завершится в 2025 году, мы решили удалить весь контент Entrust из community.general 3.0.0 (https://github.com/ansible-collections/community.crypto/issues/895, https://github.com/ansible-collections/community.crypto/pull/901).
- Коллекция больше не поддерживает cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878, https://github.com/ansible-collections/community.crypto/pull/882).
- Утилиты модулей acme.acme — функция
get_default_argspec()удалена. Используйте вместо неёcreate_default_argspec()(https://github.com/ansible-collections/community.crypto/pull/873). - Утилиты модулей acme.backends — методы
get_ordered_csr_identifiers()иget_cert_information()классаCryptoBackendтеперь необходимо реализовать (https://github.com/ansible-collections/community.crypto/pull/873). - Фрагмент документации acme.documentation — фрагмент документации
documentationудалён. Вместо него используйте оба фрагмента документацииbasicиaccountвacme(https://github.com/ansible-collections/community.crypto/pull/873). - Модули acme_* — поддержка ACME v1 удалена (https://github.com/ansible-collections/community.crypto/pull/873).
- community.crypto больше не поддерживает Ansible 2.9, ansible-base 2.10 и версии ansible-core 2.11, 2.12, 2.13, 2.14, 2.15 и 2.16. Контент этой коллекции может по-прежнему работать с некоторыми более ранними версиями ansible-core, но не будет работать ни с одной версией Python ниже 3.7 (https://github.com/ansible-collections/community.crypto/pull/870).
- Утилиты модулей crypto.basic — удалены флаги
CRYPTOGRAPHY_HAS_*. Все проверенные функции поддерживаются начиная с cryptography 3.0 (https://github.com/ansible-collections/community.crypto/pull/878). - Утилиты модулей crypto.cryptography_support — удалена вспомогательная функция
cryptography_serial_number_of_cert()(https://github.com/ansible-collections/community.crypto/pull/878). - Утилиты модулей crypto.module_backends.common — эта утилита модулей удалена. Вместо неё используйте утилиту модулей
argspec(https://github.com/ansible-collections/community.crypto/pull/873). - Утилиты модулей crypto.support — удалён бэкенд
pyopenssl(https://github.com/ansible-collections/community.crypto/pull/874). - ecs_certificate — модуль удалён. Если вам нужен этот модуль, используйте community.crypto 2.x.y (https://github.com/ansible-collections/community.crypto/pull/900).
- ecs_domain — модуль удалён. Если вам нужен этот модуль, используйте community.crypto 2.x.y (https://github.com/ansible-collections/community.crypto/pull/900).
- Зависимости среды выполнения — удалена зависимость PyOpenSSL (https://github.com/ansible-collections/community.crypto/pull/874).
- openssl_csr_pipe — модуль теперь игнорирует режим проверки и всегда работает так, как если бы режим проверки был отключён (https://github.com/ansible-collections/community.crypto/pull/873).
- openssl_pkcs12 — поддержка бэкенда
pyopensslудалена (https://github.com/ansible-collections/community.crypto/pull/873). - openssl_privatekey_pipe — модуль теперь игнорирует режим проверки и всегда работает так, как если бы режим проверки был отключён (https://github.com/ansible-collections/community.crypto/pull/873).
- Утилиты модулей time — удалён бэкенд
pyopenssl(https://github.com/ansible-collections/community.crypto/pull/874). - x509_certificate — провайдер
entrustудалён. Если вам нужен этот провайдер, используйте community.crypto 2.x.y (https://github.com/ansible-collections/community.crypto/pull/900). - x509_certificate_pipe — провайдер
entrustудалён. Если вам нужен этот провайдер, используйте community.crypto 2.x.y (https://github.com/ansible-collections/community.crypto/pull/900). - x509_certificate_pipe — модуль теперь игнорирует режим проверки и всегда работает так, как если бы режим проверки был отключён (https://github.com/ansible-collections/community.crypto/pull/873).
community.general
- Прекращена поддержка ansible-core 2.15. Теперь для коллекции требуется ansible-core 2.16 или новее. Это означает, что на контроллере требуется Python 3.10 или новее. На целевом узле поддерживаются Python 2.7 и Python 3.6 или новее (https://github.com/ansible-collections/community.general/pull/10160, https://github.com/ansible-collections/community.general/pull/10192).
- Контент Proxmox (модули и плагины) перенесён в новую коллекцию community.proxmox. Начиная с community.general 11.0.0 эти модули и плагины заменены устаревшими перенаправлениями в community.proxmox. Необходимо явно установить community.proxmox, например с помощью
ansible-galaxy collection install community.proxmoxили установив достаточно новую версию пакета Ansible community. Рекомендуем как можно скорее обновить роли и плейбуки, чтобы использовать новые FQCN и избежать сообщений об устаревании (https://github.com/ansible-collections/community.general/pull/10110). - apt_rpm — состояния
presentиinstalledбольше не эквивалентныlatest, а эквивалентныpresent_not_latest(https://github.com/ansible-collections/community.general/pull/10126). - Модули и фрагмент документации clc_* — модули удалены, поскольку поддержка сервисов CenturyLink Cloud завершилась в сентябре 2023 года (https://github.com/ansible-collections/community.general/pull/10126).
- django_manage — параметр
ack_venv_creation_deprecationудалён. В любом случае он больше не влиял на работу модуля (https://github.com/ansible-collections/community.general/pull/10126). - git_config — больше нельзя использовать
state=presentбез значения для чтения значения конфигурации. Вместо этого используйте модульcommunity.general.git_config_info(https://github.com/ansible-collections/community.general/pull/10126). - git_config — параметр
list_allудалён. Вместо этого используйте модульcommunity.general.git_config_info(https://github.com/ansible-collections/community.general/pull/10126). - hipchat — модуль удалён, поскольку сервис hipchat прекращён, а самостоятельная версия не поддерживается с 2020 года (https://github.com/ansible-collections/community.general/pull/10126).
- Плагин поиска manifold — плагин удалён, поскольку компания была приобретена в 2021 году, после чего сервис прекратил работу (https://github.com/ansible-collections/community.general/pull/10126).
- Утилиты модулей mh.mixins.deps — эта утилита модулей удалена. Вместо неё используйте утилиту модулей
deps(https://github.com/ansible-collections/community.general/pull/10126). - Утилиты модулей mh.mixins.vars — эта утилита модулей удалена. Вместо неё используйте
VarDictиз утилиты модулейvardict(https://github.com/ansible-collections/community.general/pull/10126). - Утилиты модулей mh.module_helper —
AnsibleModuleиVarsMixinбольше не предоставляются (https://github.com/ansible-collections/community.general/pull/10126). - Утилиты модулей mh.module_helper — теперь
VarDictимпортируется из утилиты модулейvardict, а не из удалённой утилиты модулейmh.mixins.vars(https://github.com/ansible-collections/community.general/pull/10126). - Утилиты модулей mh.module_helper — атрибуты
use_old_vardictиmute_vardict_deprecationизModuleHelperудалены. Если вы больше не поддерживаете community.general < 11.0.0, рекомендуем удалить их из ваших модулей (https://github.com/ansible-collections/community.general/pull/10126). - Утилиты модулей module_helper —
StateMixin,DependencyCtxMgr,VarMeta,VarDictиVarsMixinбольше не предоставляются (https://github.com/ansible-collections/community.general/pull/10126). - pipx — модуль больше не поддерживает
pipxверсии ниже 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137). - pipx_info — модуль больше не поддерживает
pipxверсии ниже 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137). - Модули profitbrick* — модули удалены, поскольку поддерживающая их библиотека не поддерживается с 2021 года (https://github.com/ansible-collections/community.general/pull/10126).
- Утилиты модулей redfish_utils — метод
_init_sessionудалён (https://github.com/ansible-collections/community.general/pull/10126). - Плагин инвентаризации stackpath_compute — плагин удалён, поскольку компания и сервис были закрыты в июне 2024 года (https://github.com/ansible-collections/community.general/pull/10126).
community.libvirt
- virt_volume — класс PoolConnection удалён
- virt_volume — состояние ‘deleted’ удалено, поскольку его определение было не совсем точным; добавлен логический параметр ‘wipe’ для ‘state/absent’ и ‘command/delete’.
- virt_volume — удалены недокументированные, но неиспользуемые FLAGS.
- virt_volume — удалены недокументированные, но неиспользуемые/неработающие функции (get_status, get_status2, get_state, get_uuid, build).
community.postgresql
- postgresql_info — псевдоним db удалён в
community.postgresql 4.0.0. Вместо него используйте параметрlogin_db(https://github.com/ansible-collections/community.postgresql/issues/801). - postgresql_lang — модуль удалён в
community.postgresql 4.0.0. Вместо него используйте модульcommunity.postgresql.postgresql_ext(https://github.com/ansible-collections/community.postgresql/issues/561). - postgresql_privs — аргумент
passwordудалён вcommunity.postgresql 4.0.0. Вместо него используйте аргументlogin_password(https://github.com/ansible-collections/community.postgresql/issues/408). - postgresql_user — аргумент
privудалён вcommunity.postgresql 4.0.0. Для предоставления/отзыва привилегий используйте модульcommunity.postgresql.postgresql_privs(https://github.com/ansible-collections/community.postgresql/issues/493).
community.windows
- win_domain_computer — устаревший модуль удалён, используйте вместо него
microsoft.ad.computer - win_domain_group — устаревший модуль удалён, используйте вместо него
microsoft.ad.group - win_domain_group_membership — устаревший модуль удалён, используйте вместо него
microsoft.ad.membership - win_domain_object_info — устаревший модуль удалён, используйте вместо него
microsoft.ad.object_info - win_domain_ou — устаревший модуль удалён, используйте вместо него
microsoft.ad.ou - win_domain_user — устаревший модуль удалён, используйте вместо него
microsoft.ad.user - win_lineinfile — устаревшее возвращаемое значение
backupудалено, используйте вместо негоbackup_file - win_xml — устаревшее и недокументированное возвращаемое значение
backupудалено, используйте вместо негоbackup_file
junipernetworks.junos
- Сюда входят следующие модули:
- В этом выпуске удалены все устаревшие плагины, срок поддержки которых истёк.
- junos_scp
vmware.vmware
- vm_list_group_by_clusters — модуль удалён в пользу vmware.vmware.vm_list_group_by_clusters_info
Устаревшие функции
- Коллекция
ibm.qradarобъявлена устаревшей. Она будет удалена из Ansible 13, если до выхода Ansible 13 никто не возьмёт на себя её сопровождение. Подробнее см. в разделе Процесс удаления коллекций, не поддерживаемых сообществом (https://forum.ansible.com/t/44259).
Ansible-core
- CLI — псевдоним параметра
--inventory-fileобъявлен устаревшим. Вместо него используйте параметр-iили--inventory. - Плагины тестов Jinja — возвращение результата, не являющегося логическим значением, из плагина теста Jinja объявлено устаревшим.
- Передача ключа
warnings` or ``deprecationsвexit_jsonилиfail_jsonобъявлена устаревшей. Вместо этого используйтеAnsibleModule.warnилиAnsibleModule.deprecate. - Плагины стратегий — использование плагинов стратегий, не входящих в
ansible.builtin, объявлено устаревшим, и в дальнейшем для них не гарантируется обратная совместимость. В одном из будущих выпусков возможность использования внешних плагинов стратегий будет удалена. Альтернативы сторонним плагинам стратегий пока не планируется. - Метод
ShellModule.checksumобъявлен устаревшим и будет удалён в ansible-core 2.23. Вместо него используйтеActionBase._execute_remote_stat(). - Функция
ansible.module_utils.common.collections.count()объявлена устаревшей и будет удалена в ansible-core 2.23. Вместо неё используйтеcollections.Counter()из стандартной библиотеки Python. - Разбор YAML — использование тегов YAML 1.1
!!omapи!!pairsобъявлено устаревшим. Вместо них используйте стандартные отображения. - Разбор YAML — использование недокументированного тега YAML
!vault-encryptedобъявлено устаревшим. Вместо него используйте!vault. -
ansible.compat.importlib_resourcesобъявлен устаревшим и будет удалён в ansible-core 2.23. Вместо него используйтеimportlib.resourcesиз стандартной библиотеки Python. -
ansible.module_utils.compat.datetime— вспомогательные средства совместимости для datetime объявлены устаревшими. Их удаление запланировано вansible-corev2.21. Это относится кUTC,utcfromtimestamp()иutcnow, которые можно импортировать из указанного модуля (https://github.com/ansible/ansible/pull/81874). - Фильтр bool — поддержка приведения нераспознанных входных значений (включая None) объявлена устаревшей. Допустимые значения см. в документации фильтра или рассмотрите возможность использования тестов
truthyиfalsy. - Плагины кэша — модуль Python
ansible.plugins.cache.baseобъявлен устаревшим. Вместо него используйтеansible.plugins.cache. - Плагины обратного вызова — метод обратного вызова
v2_on_anyобъявлен устаревшим. Вместо него используйте специализированные методы обратного вызова. - Плагины обратного вызова — API обратного вызова версии 1 (методы обратного вызова, не имеющие префикса
v2_) объявлен устаревшим. Вместо них используйте методы с префиксомv2_. - Условные выражения — условные выражения с разделителями шаблонов Jinja (например,
{{,{%) следует переписать в виде выражений без разделителей, если только всё значение условия не является одним шаблоном, который преобразуется в доверенное строковое выражение. Это полезно для динамической косвенной ссылки на условные выражения, но применимо только к доверенным строковым литералам. - Конфигурация — параметр конфигурации
ACTION_WARNINGSне действует. Ранее он отключал предупреждения о командах, которые с тех пор были удалены. - Конфигурация — параметр конфигурации
DEFAULT_ALLOW_UNSAFE_LOOKUPSобъявлен устаревшим и больше не действует. При обработке шаблонов Ansible больше не возникает ситуаций, в которых использование плагинов поиска считается «небезопасным». - Конфигурация — параметр
DEFAULT_JINJA2_NATIVEне действует. Режим Jinja2 native теперь является режимом по умолчанию и единственным доступным режимом. - Конфигурация — параметр
DEFAULT_NULL_REPRESENTATIONне действует. Значения null больше не преобразуются автоматически в другие значения при обработке шаблонов с одиночными ссылками на переменные. - Конфигурация — параметр конфигурации
DEFAULT_UNDEFINED_VAR_BEHAVIORобъявлен устаревшим и больше не действует. Попытка использовать неопределённую переменную там, где неопределённые значения недопустимы, теперь всегда приводит к ошибке. Такое поведение было включено по умолчанию в предыдущих версиях, а его отключение приводило к непоследовательным результатам. - Конфигурация — параметр конфигурации
STRING_TYPE_FILTERSобъявлен устаревшим и больше не действует. Поскольку теперь механизм шаблонов всегда сохраняет собственные типы данных, риск непреднамеренного преобразования строк в собственные типы данных отсутствует. - Конфигурация — использование параметра конфигурации
DEFAULT_JINJA2_EXTENSIONSдля включения расширений Jinja2 объявлено устаревшим. Ранее пользовательские расширения Jinja по умолчанию были отключены, поскольку они могут нарушить стабильность среды обработки шаблонов Ansible. В шаблонах следует использовать только плагины фильтров, тестов и поиска. - Конфигурация — использование параметра конфигурации
DEFAULT_MANAGED_STRдля настройки значения переменнойansible_managedобъявлено устаревшим. Теперь переменнуюansible_managedможно задавать так же, как и любую другую переменную. - Отображение — метод
Display.get_deprecation_messageобъявлен устаревшим. Для отображения сообщения об устаревании вызовитеDisplay.deprecatedили вызовите его сremoved=True, чтобы вызвать исключениеAnsibleError. - Загрузка файлов — загрузка текстовых файлов с помощью
DataLoader, содержащих данные, которые невозможно декодировать с использованием ожидаемой кодировки, объявлена устаревшей. В большинстве случаев кодировка должна быть UTF-8, хотя некоторые плагины позволяют выбрать другую кодировку. Ранее некорректные данные без предупреждения оборачивались в последовательности экранирования суррогатов Unicode, что часто приводило к последующим ошибкам или другим повреждениям данных. - Поиск first_found — разбиение путей к файлам по
,;:объявлено устаревшим. Вместо этого передавайте список путей. При необходимости для разбиения переменных на список можно использовать методsplitдля строк. - Определение интерпретатора — параметры
auto_legacyиauto_legacy_silentдляINTERPRETER_PYTHONобъявлены устаревшими. Вместо них используйте параметрыautoилиauto_silent, поскольку они дают тот же результат. - Плагины инвентаризации — установка недопустимых имён переменных Ansible в плагинах инвентаризации объявлена устаревшей.
- Обратный вызов oneline — обратный вызов
onelineи связанные с ним аргументы CLI для специальных команд (-o,--one-line) объявлены устаревшими. - paramiko — плагин подключения paramiko объявлен устаревшим; его удаление запланировано в версии 2.21.
- Плейбук — значение результата задачи
timedout.frame(добавляемое при превышении времени ожидания задачи) объявлено устаревшим. Добавьтеerrorв значение конфигурацииDISPLAY_TRACEBACK, чтобы сохранить полную трассировку стека Python для действий, время ожидания которых истекло. - Синтаксис плейбуков — указание ключевого слова задачи
argsбез значения объявлено устаревшим. - Синтаксис плейбуков — использование аргументов
key=valueи ключевого слова задачиargsв одной задаче объявлено устаревшим. - Синтаксис плейбуков — использование отображения с ключевым словом
actionобъявлено устаревшим. (https://github.com/ansible/ansible/issues/84101) - Переменные плейбуков — переменная
play_hostsобъявлена устаревшей; вместо неё используйтеansible_play_batch. - Обработка ошибок плагинов — аргумент конструктора
suppress_extended_errorдляAnsibleErrorобъявлен устаревшим. Использованиеsuppress_extended_error=Trueдаёт тот же результат, что иshow_content=False. - Плагины — доступ к плагинам с именами файлов, имеющими префикс
_, без этого префикса_объявлен устаревшим. - Публичный API — тип исключения
ansible.errors.AnsibleFilterTypeErrorобъявлен устаревшим. Вместо него используйтеAnsibleTypeError. - Публичный API — тип исключения
ansible.errors._AnsibleActionDoneобъявлен устаревшим. В случае успеха плагины действий должны возвращать словарь результата задачи, а не вызывать исключение. - Публичный API — функция
ansible.module_utils.common.json.json_dumpобъявлена устаревшей. Вместо неё вызывайтеjson.dumpsиз стандартной библиотеки Python, задав дляclsтип кодировщика профиля Ansible изansible.module_utils.common.json.get_encoder. - Поиск шаблонов — параметр jinja2_native больше не используется в кодовой базе Ansible Core. Режим Jinja2 native теперь является режимом по умолчанию и единственным доступным режимом.
- Обработка шаблонов — поддержка включения расширений Jinja2 (не плагинов) объявлена устаревшей.
- Обработка шаблонов — параметр
disable_lookupsне действует, поскольку плагины необходимо обновить так, чтобы доверие проверялось до начала обработки шаблонов. - Обратный вызов tree — обратный вызов
treeи связанные с ним аргументы CLI для специальных команд (-t,--tree) объявлены устаревшими.
amazon.aws
- autoscaling_group — параметр
decrement_desired_capacityобъявлен устаревшим и будет удалён в версии 14.0.0 этой коллекции. Управлять экземплярами, подключёнными к группе автоматического масштабирования, можно с помощью модуляamazon.aws.autoscaling_instance(https://github.com/ansible-collections/amazon.aws/pull/2396). - autoscaling_group — параметры
replace_batch_size,lc_checkиlt_checkобъявлены устаревшими и будут удалены в версии 14.0.0 этой коллекции. Выполнять последовательную замену экземпляров в группе автоматического масштабирования можно с помощью модуляamazon.aws.autoscaling_instance_refresh(https://github.com/ansible-collections/amazon.aws/pull/2396). - autoscaling_group — функциональность, предоставляемая параметром
detach_instances, объявлена устаревшей и будет удалена в версии 14.0.0 этой коллекции. Управлять экземплярами, подключёнными к группе автоматического масштабирования, можно с помощью модуляamazon.aws.autoscaling_instance(https://github.com/ansible-collections/amazon.aws/pull/2396). - autoscaling_group — функциональность, предоставляемая параметром
replace_all_instances, объявлена устаревшей и будет удалена в версии 14.0.0 этой коллекции. Выполнять последовательную замену экземпляров в группе автоматического масштабирования можно с помощью модуляamazon.aws.autoscaling_instance_refresh(https://github.com/ansible-collections/amazon.aws/pull/2396). - autoscaling_group — функциональность, предоставляемая параметром
replace_instances, объявлена устаревшей и будет удалена в версии 14.0.0 этой коллекции. Управлять экземплярами, подключёнными к группе автоматического масштабирования, можно с помощью модуляamazon.aws.autoscaling_instance(https://github.com/ansible-collections/amazon.aws/pull/2396).
ansible.netcommon
- Добавлены предупреждения об устаревании для перечисленных выше плагинов; они отображаются при запуске соответствующих плагинов фильтров.
-
Плагин фильтра
parse_cli_textfsmобъявлен устаревшим и будет удалён в одном из будущих выпусков после 2027-02-01. Вместо него используйтеansible.utils.cli_parseс анализаторомansible.utils.textfsm_parser. -
Плагин фильтра
parse_cliобъявлен устаревшим и будет удалён в одном из будущих выпусков после 2027-02-01. Вместо него используйтеansible.utils.cli_parse. -
Плагин фильтра
parse_xmlобъявлен устаревшим и будет удалён в одном из будущих выпусков после 2027-02-01. Вместо него используйтеansible.utils.cli_parseс анализаторомansible.utils.xml_parser.
cisco.ios
- ios_vlans — параметр mtu объявлен устаревшим; для настройки mtu интерфейса, к которому применяются VLAN, используйте ios_interfaces.
cisco.nxos
- nxos_hsrp — модуль nxos.nxos.nxos_hsrp объявлен устаревшим; вместо него используйте nxos.nxos.nxos_hsrp_interfaces.
- nxos_vrf_interface — модуль nxos.nxos.nxos_vrf_interface объявлен устаревшим; вместо него используйте nxos.nxos.nxos_vrf_interfaces.
community.aws
- Коллекция community.aws — в связи с объявлением AWS SDK о прекращении поддержки Python версий ниже 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) поддержка Python версий ниже 3.8 в этой коллекции объявлена устаревшей и будет удалена в выпуске 10.0.0 (https://github.com/ansible-collections/community.aws/pull/2195).
community.crypto
- Поддержка ansible-core 2.11, 2.12, 2.13, 2.14, 2.15 и 2.16 объявлена устаревшей и будет удалена в следующем мажорном выпуске (community.crypto 3.0.0). Некоторые модули могут продолжить работу с отдельными из этих версий, но мы больше не будем сохранять код совместимости, необходимый для их поддержки. Обратите внимание: это означает, что поддержка всех версий Python ниже 3.7 будет прекращена, в том числе на целевой стороне (https://github.com/ansible-collections/community.crypto/issues/559, https://github.com/ansible-collections/community.crypto/pull/839).
- Поддержка cryptography < 3.4 объявлена устаревшей и будет удалена в следующем мажорном выпуске (community.crypto 3.0.0). Некоторые модули могут продолжить работу со старыми версиями cryptography, но мы больше не будем сохранять код совместимости, необходимый для их поддержки (https://github.com/ansible-collections/community.crypto/issues/559, https://github.com/ansible-collections/community.crypto/pull/839).
- acme_certificate — параметр
agreement, который больше не действует, объявлен устаревшим. Он будет удалён из community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891). - acme_certificate — значение по умолчанию
trueдля параметраmodify_accountобъявлено устаревшим. В community.crypto 4.0.0 оно изменится наfalse. Во избежание предупреждений об устаревании рекомендуется задавать для параметра явное значение и уже сейчас использоватьfalse. Лучше использовать модульcommunity.crypto.acme_account(https://github.com/ansible-collections/community.crypto/issues/924). - openssl_pkcs12 — параметр
maciter_size, который больше не действует, объявлен устаревшим. Он будет удалён из community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891). - openssl_pkcs12 — серверная часть на основе PyOpenSSL объявлена устаревшей и будет удалена из community.crypto 3.0.0. После этого для использования данного модуля потребуется cryptography версии 3.0 или новее (https://github.com/ansible-collections/community.crypto/issues/667, https://github.com/ansible-collections/community.crypto/pull/831).
community.general
- Вспомогательные утилиты модулей MH — определение атрибута
debugв подклассах MH объявлено устаревшим, поскольку в community.general 12.0.0 это имя будет делегировать вызовAnsibleModule, и в этой версии любой такой атрибут будет переопределён этим делегированием (https://github.com/ansible-collections/community.general/pull/9577). - Содержимое Proxmox (модули и плагины) переносится в новую коллекцию community.proxmox. В community.general 11.0.0 эти модули и плагины будут заменены перенаправлениями с предупреждением об устаревании на community.proxmox. Необходимо явно установить community.proxmox, например с помощью
ansible-galaxy collection install community.proxmox. Рекомендуем как можно скорее обновить роли и плейбуки, указав новые полные имена коллекций (FQCN), чтобы избежать сообщений об устаревании (https://github.com/ansible-collections/community.general/pull/10109). - atomic_container — модуль объявлен устаревшим и будет удалён в community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
- atomic_host — модуль объявлен устаревшим и будет удалён в community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
- atomic_image — модуль объявлен устаревшим и будет удалён в community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
- bearychat — модуль объявлен устаревшим и будет удалён в community.general 12.0.0 (https://github.com/ansible-collections/community.general/issues/10514).
- catapult — модуль объявлен устаревшим и будет удалён в community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329).
- cpanm —
mode=compatibilityобъявлен устаревшим; вместо него следует использоватьmode=new(https://github.com/ansible-collections/community.general/pull/10434). - facter — модуль объявлен устаревшим и будет удалён в community.general 12.0.0; вместо него используйте
community.general.facter_facts(https://github.com/ansible-collections/community.general/pull/9451). - github_repo —
force_defaults=trueобъявлен устаревшим (https://github.com/ansible-collections/community.general/pull/10435). - locale_gen —
ubuntu_mode=Trueилиmechanism=ubuntu_legacyобъявлен устаревшим и будет удалён в community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238). - Плагин поиска manifold — плагин объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
- opkg — значение
""для параметраforceобъявлено устаревшим (https://github.com/ansible-collections/community.general/pull/9172). - pacemaker_cluster — параметр
stateстанет обязательным в community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227). - Вспомогательные утилиты модуля pipx — функция
make_process_list()объявлена устаревшей и будет удалена в community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031). - profitbricks — модуль объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
- profitbricks_datacenter — модуль объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
- profitbricks_nic — модуль объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
- profitbricks_volume — модуль объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
- profitbricks_volume_attachments — модуль объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
- Вспомогательные утилиты модулей pure — утилиты объявлены устаревшими и будут удалены из community.general 12.0.0. Использующие их модули были удалены в community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
- Фрагменты документации purestorage — фрагмент документации объявлен устаревшим и будет удалён из community.general 12.0.0. Использующие его модули были удалены в community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
- Вспомогательные утилиты модуля redfish_utils — метод
RedfishUtils._init_session()объявлен устаревшим (https://github.com/ansible-collections/community.general/pull/9190). - rocketchat — значение по умолчанию для
is_pre740, в настоящее времяtrue, объявлено устаревшим и изменится наfalseв community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10490). - sensu_check — модуль объявлен устаревшим и будет удалён в community.general 13.0.0; вместо него используйте коллекцию
sensu.sensu_go(https://github.com/ansible-collections/community.general/pull/9483). - sensu_client — модуль объявлен устаревшим и будет удалён в community.general 13.0.0; вместо него используйте коллекцию
sensu.sensu_go(https://github.com/ansible-collections/community.general/pull/9483). - sensu_handler — модуль объявлен устаревшим и будет удалён в community.general 13.0.0; вместо него используйте коллекцию
sensu.sensu_go(https://github.com/ansible-collections/community.general/pull/9483). - sensu_silence — модуль объявлен устаревшим и будет удалён в community.general 13.0.0; вместо него используйте коллекцию
sensu.sensu_go(https://github.com/ansible-collections/community.general/pull/9483). - sensu_subscription — модуль объявлен устаревшим и будет удалён в community.general 13.0.0; вместо него используйте коллекцию
sensu.sensu_go(https://github.com/ansible-collections/community.general/pull/9483). - slack — значение по умолчанию
autoдля параметраprepend_hashобъявлено устаревшим и изменится наneverв community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443). - Плагин инвентаризации stackpath_compute — плагин объявлен устаревшим и будет удалён в community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
- Плагин обратного вызова yaml — плагин объявлен устаревшим; вместо него используйте
result_format=yamlв плагинеansible.bulitin.default(https://github.com/ansible-collections/community.general/pull/9456). - Плагин обратного вызова yaml — удаление плагина обратного вызова YAML было запланировано в community.general 13.0.0. Поскольку начиная с ansible-core 2.19 он использует внутренние компоненты ansible-core, которые часто меняются, мы удалим этот плагин уже в community.general 12.0.0, чтобы упростить его сопровождение (https://github.com/ansible-collections/community.general/pull/10213).
community.hashi_vault
- ansible-core — поддержка нескольких версий
ansible-coreбудет прекращена вv7.0.0. В дальнейшем коллекция будет ориентироваться на текущие версииansible-core, поддержка которых продолжается, и активнее отказываться от версий, срок поддержки которых истёк или скоро истечёт (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html). - python — поддержка нескольких версий
pythonбудет прекращена вv7.0.0. Как минимум коллекция будет ориентироваться на версииpython, поддерживаемые активными версиямиansible-coreна стороне контроллера, а также на некоторые версии целевых узлов (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
community.hrobot
- boot — различные подопции
archобъявлены устаревшими и будут удалены из community.hrobot 3.0.0 (https://github.com/ansible-collections/community.hrobot/pull/134).
community.postgresql
- Модули postgresql — псевдоним
portобъявлен устаревшим и будет удалён вcommunity.postgresql 5.0.0; вместо него используйте аргументlogin_port. - Модули postgresql — псевдонимы
login,unix_socketиhostобъявлены устаревшими и будут удалены вcommunity.postgresql 5.0.0; вместо них используйте аргументыlogin_user,login_unix_socketиlogin_host. - postgresql_copy — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_db — вариант
renameпараметра state объявлен устаревшим и будет удалён в версии 5.0.0; вместо него используйте модульpostgresql_query. - postgresql_ext — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_idx — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_membership — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_owner — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_ping — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_privs — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_publication — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_query — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_schema — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_script — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_sequence — параметр
rename_toобъявлен устаревшим и будет удалён в версии 5.0.0; вместо него используйте модульpostgresql_query. - postgresql_sequence — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_set — модуль объявлен устаревшим и будет удалён в
community.postgresql 5.0.0. Используйте вместо него модульcommunity.postgresql.postgresql_alter_system(https://github.com/ansible-collections/community.postgresql/issues/823). - postgresql_set — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_slot — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_subscription — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_table — параметр
renameобъявлен устаревшим и будет удалён в версии 5.0.0; вместо него используйтеpostgresql_query module. - postgresql_table — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_tablespace — параметр
rename_toобъявлен устаревшим и будет удалён в версии 5.0.0; вместо него используйте модульpostgresql_query. - postgresql_tablespace — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
- postgresql_user_obj_stat_info — псевдонимы параметров db и database объявлены устаревшими и будут удалены в community.postgresql 5.0.0. Вместо них используйте login_db.
community.vmware
- module_utils.vmware —
connect_to_apiобъявлен устаревшим (https://github.com/ansible-collections/community.vmware/pull/2372). - module_utils.vmware — host_version_at_least объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2303).
- plugin_utils.inventory — эта служебная программа плагина объявлена устаревшей и будет удалена в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2304).
- plugins.httpapi — этот компонент объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2306).
- vcenter_folder — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2340).
- vm_device_helper.py — is_nvdimm_controller объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vm_device_helper.py — is_nvdimm_device объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware — find_host_portgroup_by_name объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware — find_vmdk_file объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware — network_exists_by_name объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware — vmdk_disk_path_split объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware_cluster_ha — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2321).
- vmware_cluster_info — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2260).
- vmware_content_deploy_ovf_template — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2332).
- vmware_content_deploy_template — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2332).
- vmware_content_library_manager — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2345).
- vmware_dvs_portgroup —
mac_learningобъявлен устаревшим; вместо него рекомендуется использоватьnetwork_policy.mac_learning(https://github.com/ansible-collections/community.vmware/pull/2360). - vmware_guest_powerstate — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2398).
- vmware_host — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2337).
- vmware_host_inventory — плагин инвентаризации объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2283).
- vmware_maintenancemode — модуль объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2293).
- vmware_rest_client — get_folder_by_name объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware_vm_inventory — плагин инвентаризации объявлен устаревшим и будет удалён в community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2283).
community.windows
- win_audit_policy_system — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_audit_policy_system. Используйте вместо негоansible.windows.win_audit_policy_system, так как перенаправление будет удалено в версии 4.0.0 - win_audit_rule — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_audit_rule. Используйте вместо негоansible.windows.win_audit_rule, так как перенаправление будет удалено в версии 4.0.0 - win_auto_logon — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_auto_logon. Используйте вместо негоansible.windows.win_auto_logon, так как перенаправление будет удалено в версии 4.0.0 - win_certificate_info — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_certificate_info. Используйте вместо негоansible.windows.win_certificate_info, так как перенаправление будет удалено в версии 4.0.0 - win_computer_description — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_computer_description. Используйте вместо негоansible.windows.win_computer_description, так как перенаправление будет удалено в версии 4.0.0 - win_credential — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_credential. Используйте вместо негоansible.windows.win_credential, так как перенаправление будет удалено в версии 4.0.0 - win_dhcp_lease — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_dhcp_lease. Используйте вместо негоansible.windows.win_dhcp_lease, так как перенаправление будет удалено в версии 4.0.0 - win_dns_record — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_dns_record. Используйте вместо негоansible.windows.win_dns_record, так как перенаправление будет удалено в версии 4.0.0 - win_dns_zone — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_dns_zone. Используйте вместо негоansible.windows.win_dns_zone, так как перенаправление будет удалено в версии 4.0.0 - win_eventlog — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_eventlog. Используйте вместо негоansible.windows.win_eventlog, так как перенаправление будет удалено в версии 4.0.0 - win_feature_info — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_feature_info. Используйте вместо негоansible.windows.win_feature_info, так как перенаправление будет удалено в версии 4.0.0 - win_file_compression — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_file_compression. Используйте вместо негоansible.windows.win_file_compression, так как перенаправление будет удалено в версии 4.0.0 - win_firewall — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_firewall. Используйте вместо негоansible.windows.win_firewall, так как перенаправление будет удалено в версии 4.0.0 - win_hosts — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_hosts. Используйте вместо негоansible.windows.win_hosts, так как перенаправление будет удалено в версии 4.0.0 - win_hotfix — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_hotfix. Используйте вместо негоansible.windows.win_hotfix, так как перенаправление будет удалено в версии 4.0.0 - win_http_proxy — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_http_proxy. Используйте вместо негоansible.windows.win_http_proxy, так как перенаправление будет удалено в версии 4.0.0 - win_iis_virtualdirectory — модуль объявлен устаревшим; используйте вместо него
microsoft.iis.virtual_directory, так как модуль будет удалён в версии 4.0.0 - win_iis_webapplication — модуль объявлен устаревшим; используйте вместо него
microsoft.iis.web_application, так как модуль будет удалён в версии 4.0.0 - win_iis_webapppool — модуль объявлен устаревшим; используйте вместо него
microsoft.iis.web_app_pool, так как модуль будет удалён в версии 4.0.0 - win_iis_webbinding — модуль объявлен устаревшим; используйте вместо него
microsoft.iis.website, так как модуль будет удалён в версии 4.0.0 - win_iis_website — модуль объявлен устаревшим; используйте вместо него
microsoft.iis.website, так как модуль будет удалён в версии 4.0.0 - win_inet_proxy — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_inet_proxy. Используйте вместо негоansible.windows.win_inet_proxy, так как перенаправление будет удалено в версии 4.0.0 - win_listen_ports_facts — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_listen_ports_facts. Используйте вместо негоansible.windows.win_listen_ports_facts, так как перенаправление будет удалено в версии 4.0.0 - win_mapped_drive — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_mapped_drive. Используйте вместо негоansible.windows.win_mapped_drive, так как перенаправление будет удалено в версии 4.0.0 - win_product_facts — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_product_facts. Используйте вместо негоansible.windows.win_product_facts, так как перенаправление будет удалено в версии 4.0.0 - win_region — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_region. Используйте вместо негоansible.windows.win_region, так как перенаправление будет удалено в версии 4.0.0 - win_route — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_route. Используйте вместо негоansible.windows.win_route, так как перенаправление будет удалено в версии 4.0.0 - win_timezone — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_timezone. Используйте вместо негоansible.windows.win_timezone, так как перенаправление будет удалено в версии 4.0.0 - win_user_profile — модуль объявлен устаревшим и будет перенаправлен на
ansible.windows.win_user_profile. Используйте вместо негоansible.windows.win_user_profile, так как перенаправление будет удалено в версии 4.0.0
community.zabbix
- Роль Web —
zabbix_web_SSLSessionCacheTimeoutдляzabbix_web_ssl_session_cache_timeoutобъявлен устаревшим - Роль Web —
zabbix_web_SSLSessionCacheдляzabbix_web_ssl_session_cacheобъявлен устаревшим
vmware.vmware_rest
- content_library_item_info — модуль объявлен устаревшим и будет удалён в vmware.vmware_rest 5.0.0
- Плагины поиска — все плагины поиска объявляются устаревшими в пользу vmware.vmware.moid_from_path (https://github.com/ansible-collections/vmware.vmware_rest/pull/608)
vyos.vyos
- vyos_bgp_global — no_ipv4_unicast — устарел для использования с VyOS 1.4 и новее; вместо него используйте
ipv4_unicast - vyos_firewall_interfaces — устарел для использования с VyOS 1.4 и новее, поскольку межсетевые экраны больше не подключаются напрямую к интерфейсам. Инструкции по настройке связи между наборами правил межсетевого экрана и потоком, интерфейсом или зоной см. в документации по настройке межсетевого экрана.
- vyos_lldp_global —
addressобъявлен устаревшим; вместо него используйтеaddresses. Будет удалён в версии 7.0.0. - vyos_logging_global —
protocolобъявлен устаревшим для версии 1.4 и новее; вместо него используйтеfacility. Будет удалён в следующей основной версии, в которой будет удалена поддержка версии 1.3
© 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/porting_guides/porting_guide_12.html