Spec-Zone.ru › Ansible

Руководство по переносу Ansible-core 2.12

В этом разделе обсуждаются изменения в поведении между ansible-core 2.11 и ansible-core 2.12.

Он предназначен для помощи в обновлении ваших плейбуков, плагинов и других частей вашей инфраструктуры Ansible, чтобы они работали с этой версией Ansible.

Мы рекомендуем прочитать эту страницу вместе с Журналом изменений Ansible-core 2.12, чтобы понять, какие обновления вам могут потребоваться.

Этот документ является частью коллекции по переносу. Полный список руководств по переносу можно найти в руководствах по переносу.

  • Плейбук
  • Обнаружение интерпретатора Python
  • Командная строка
  • Устаревшие элементы
  • Модули

    • Удаленные модули
    • Уведомления об устаревании
    • Заметные изменения в модулях
  • Плагины
  • Перенос пользовательских скриптов
  • Сети

Плейбук

  • При вызове задач и установке async, установка ANSIBLE_ASYNC_DIR в environment: больше недействительна. Вместо этого используйте переменную конфигурации shell async_dir, например, установив ansible_async_dir:
tasks:
  - dnf:
      name: '*'
      state: latest
    async: 300
    poll: 5
    vars:
      ansible_async_dir: /path/to/my/custom/dir
  • Функция undef() добавлена в среду шаблонов для создания не определенных переменных непосредственно в шаблоне. При необходимости можно указать подсказку для переменных, которые предполагается переопределить.
vars:
  old: "{{ undef }}"
  new: "{{ undef() }}"
  new_with_hint: "{{ undef(hint='You must override this variable') }}"

Обнаружение интерпретатора Python

Значение по умолчанию для INTERPRETER_PYTHON изменено на auto. Список интерпретаторов Python в INTERPRETER_PYTHON_FALLBACK изменен в пользу Python 3 по сравнению с Python 2. Сочетание этих двух изменений означает, что новое поведение по умолчанию заключается в тихом предпочтении Python 3 перед Python 2 на удаленных хостах. Ранее выдавалось предупреждение об устаревании в ситуациях, когда обнаружение интерпретатора должно было использовать Python 3, но интерпретатор был установлен на /usr/bin/python.

INTERPRETER_PYTHON_FALLBACK можно изменить из списка интерпретаторов по умолчанию, установив переменную ansible_interpreter_python_fallback.

См. документацию по обнаружению интерпретатора для получения более подробной информации.

Командная строка

  • Python 3.8 на узле-контроллере является обязательным требованием для этой версии. Скрипты командной строки не будут работать с более старой версией Python.
  • ansible-vault больше не поддерживает PyCrypto и требует cryptography.

Устаревшие элементы

  • Python 2.6 на целевом узле устарел в этой версии. ansible-core 2.13 удалит поддержку Python 2.6.
  • Необработанные переменные в условных операторах: условные операторы when больше не автоматически преобразуют строковые булевы значения, такие как "true" и "false", в фактические булевы значения. Любая переменная, содержащая непустую строку, считается истинной. Ранее это можно было настроить с помощью параметра конфигурации CONDITIONAL_BARE_VARS (и переменной окружения ANSIBLE_CONDITIONAL_BARE_VARS). Эта настройка больше не имеет никакого эффекта. Пользователи могут обойти эту проблему, используя фильтр |bool:
vars:
  teardown: 'false'

tasks:
  - include_tasks: teardown.yml
    when: teardown | bool

  - include_tasks: provision.yml
    when: not teardown | bool
  • Метод _remote_checksum() в ActionBase устарел. Любой плагин действий, использующий этот метод, должен использовать _execute_remote_stat() вместо него.

Модули

  • cron теперь требует указания name во всех случаях.
  • cron больше не позволяет параметр reboot. Используйте special_time: reboot вместо него.
  • hostname - В FreeBSD результат before больше не будет "temporarystub", если файл постоянного имени хоста не существует. Вместо этого он будет "" (пустая строка) для соответствия другим системам.
  • hostname - В системах на основе OpenRC и Solaris результат before больше не будет "UNKNOWN", если файл постоянного имени хоста не существует. Вместо этого он будет "" (пустая строка) для соответствия другим системам.
  • pip теперь использует модуль Python pip, установленный для интерпретатора Python модуля Ansible, если он доступен, если не были указаны executable или virtualenv.

Удаленные модули

Следующие модули больше не существуют:

  • Без заметных изменений

Уведомления об устаревании

Без заметных изменений

Заметные изменения в модулях

Без заметных изменений

Плагины

  • unique фильтр с Jinja2 < 2.10 чувствителен к регистру и теперь приводит к ошибке, если case_sensitive=False вместо case_sensitive=True.
  • Фильтры теории множеств (intersect, difference, symmetric_difference и union) теперь чувствительны к регистру. Явно используйте case_sensitive=False для сохранения предыдущего поведения. Примечание: с Jinja2 < 2.10 фильтры по умолчанию уже были чувствительны к регистру.
  • password_hash` теперь использует значения по умолчанию passlib, когда параметр не указан, например, bcrypt_sha256 теперь по умолчанию используют формат «2b», а если требуется формат «2a», он должен быть указан.

Перенос пользовательских скриптов

Без заметных изменений

Сети

Без заметных изменений

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

Spec-Zone.ru

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