Руководство по переносу Ansible-core 2.13
В данном разделе рассматриваются изменения в поведении между версией ansible-core 2.12 и версией ansible-core 2.13.
Данное руководство предназначено для помощи в обновлении ваших плейбуков, плагинов и других частей вашей инфраструктуры Ansible, чтобы они работали с этой версией Ansible.
Мы рекомендуем прочитать эту страницу вместе с Журналом изменений Ansible-core 2.13, чтобы понять, какие обновления вам могут потребоваться.
Этот документ является частью коллекции руководств по переносу. Полный список руководств по переносу можно найти по адресу руководствам по переносу.
Плейбук
- Шаблоны - Вы больше не можете выполнять арифметические и конкатенационные операции вне шаблона Jinja. Следующее утверждение необходимо переписать, чтобы получить
[1, 2]:
- name: Prior to 2.13
debug:
msg: '[1] + {{ [2] }}'
- name: 2.13 and forward
debug:
msg: '{{ [1] + [2] }}'
- Значение возвращаемое методом
__repr__для неопределенной переменной, представленной объектомAnsibleUndefined, изменилось.{{ '%r'|format(undefined_variable) }}возвращаетAnsibleUndefined(hint=None, obj=missing, name='undefined_variable')в 2.13 по сравнению с простоAnsibleUndefinedв версиях 2.12 и ранее. - Метод
finalizeбольше не доступен в глобальных переменных для использования в шаблонах. Чтобы преобразоватьNoneв пустую строку, можно использовать следующее выражение:{{ value if value is not none }}.
Командная строка
Нет заметных изменений
Устаревшие элементы
Нет заметных изменений
Модули
- Для использования Ansible-core 2.13 для выполнения модулей, необходимо использовать Python 2 версии 2.7 или Python 3 версии 3.5 или более поздней. Любой код, использующий
ansible.module_utils.basic, не будет работать с более ранними версиями Python.
Удаленные модули
Следующие модули больше не существуют:
- Нет заметных изменений
Уведомления об устаревании
Нет заметных изменений
Заметные изменения модулей
Нет заметных изменений
Критические изменения
-
ansible.module_utils.urls.fetch_urlтеперь вернет пойманное исключениеHTTPErrorкакr.HTTPError- это объект ответа, который может предоставить авторам модулей больше информации. Модули должны полагаться наinfo['status'] >= 400для определения наличия ошибки, вместо использованияr is Noneили перехватаAttributeErrorпри попыткеr.read().
Плагины
Нет заметных изменений
Перенос пользовательских скриптов
Нет заметных изменений
Сеть
Нет заметных изменений
© 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.13.html