Руководство по переносу Ansible-base 2.10
Предупреждение
В преддверии выпуска версии 2.10 многие плагины и модули переехали в Коллекции на Ansible Galaxy. Состояние разработки Коллекций и часто задаваемые вопросы можно найти в Руководстве сообщества по Ansible Collections. Мы ожидаем, что Руководство по переносу версии 2.10 будет часто обновляться до выпуска 2.10. Следите за обсуждениями о коллекциях на наших различных каналах Связь с сообществом Ansible для получения последней информации о статусе ветки devel.
В этом разделе обсуждаются изменения в поведении между Ansible 2.9 и Ansible-base 2.10.
Он призван помочь обновить ваши плейбуки, плагины и другие части вашей инфраструктуры Ansible, чтобы они работали с этой версией Ansible-base.
Мы рекомендуем прочитать эту страницу вместе с Журналом изменений Ansible-base 2.10, чтобы понять, какие обновления вам могут потребоваться.
Ansible-base представляет интерес в основном для разработчиков и пользователей, которые хотят использовать только небольшой, контролируемый подмножество доступных коллекций. Обычные пользователи должны устанавливать ansible.
Полный список руководств по переносу можно найти по адресу руководства по переносу.
Плейбук
- Исправлена ошибка в ключевых словах boolean, из-за которой случайные строки возвращали 'False', теперь они должны возвращать ошибку, если не являются правильным значением boolean. Например:
diff: yes-возвращалоFalse. - Новый факт,
ansible_processor_nproc, отражает количество vcpu, доступных процессам (возвращает количество vcpu, доступных планировщику).
Командная строка
- Команда
ansible-galaxy loginбыла удалена, так как используемый для аутентификации в GitHub базовый API закрывается. Публикация ролей или коллекций в Galaxy черезansible-galaxyтеперь требует, чтобы токен API Galaxy был передан в командную строку через файл токена (по умолчанию~/.ansible/galaxy_token) или (небезопасно) через аргумент--tokenкansible-galaxy.
Устаревшее
- Windows Server 2008 и 2008 R2 больше не будут поддерживаться или тестироваться в следующем выпуске Ansible, см. Поддерживаются ли Server 2008, 2008 R2 и Windows 7?.
Модули
Предупреждение
Ссылки на этой странице могут не указывать на самые последние версии модулей. Мы обновим их, когда сможем.
- Версия 2.10.0 ansible-base изменила режим по умолчанию для задач на основе файлов на
0o600 & ~umask, если пользователь не указал параметрmodeв задачах на основе файлов. Это было сделано в ответ на отчет о CVE, который мы переосмыслили. В результате, изменение режима отменено в версии 2.10.1, и режим по умолчанию теперь0o666 & ~umask, как и в предыдущих версиях Ansible. - Если вы изменили какие-либо задачи, чтобы указать менее строгие разрешения при использовании 2.10.0, эти изменения будут излишними (но не навредят) в 2.10.1.
- Чтобы избежать проблемы, поднятой в CVE-2020-1736, укажите параметр
modeво всех задачах на основе файлов, которые его принимают. -
dnfиyum- начиная с версии 2.10.1, модульdnf(и действиеyum, когда оно используетdnf) теперь корректно проверяет подписи GPG пакетов (CVE-2020-14365). Если вы видите ошибку, такую какFailed to validate GPG signature for [package name], убедитесь, что вы импортировали правильный ключ GPG для репозитория DNF и/или пакета, который вы используете. Один из способов сделать это — с помощью модуляrpm_key. Хотя мы не рекомендуем этого, в некоторых случаях может потребоваться отключить проверку GPG. Это можно сделать, явно добавивdisable_gpg_check: yesв вашу задачуdnfилиyum.
Заметные изменения в модулях
- Модули Ansible, созданные с помощью
add_file_common_args=True, добавили ряд неудокументированных аргументов, которые в основном были добавлены для упрощения реализации определенных плагинов действий. Недокументированные аргументыsrc,follow,force,content,backup,remote_src,regexp,delimiter, иdirectory_modeтеперь больше не добавляются. Модули, полагающиеся на эти параметры, должны указывать их самостоятельно. - Ansible больше не ищет модули Python в текущей рабочей директории (обычно домашней директории пользователя
remote_user) при выполнении модуля Ansible. Это сделано для устранения получения прав обычного пользователя на OpenBSD и для смягчения потенциальных угроз, если текущая рабочая директория доступна для записи злоумышленному пользователю. Установите необходимые модули Python для работы модулей Ansible на управляемом узле в системе или в другом каталоге, который находится вremote_user’s$PYTHONPATHи доступен для чтения пользователемbecome_user.
Плагины
Чувствительность к регистру имен плагинов поиска
- До Ansible
2.10имена плагинов поиска, переданные в качестве аргумента функцииlookup(), обрабатывались как нечувствительные к регистру в отличие от вызовов поиска черезwith_<lookup_name>.2.10обеспечивает согласованность дляlookup()иwith_для того, чтобы оба были чувствительны к регистру.
Заметные изменения в плагинах
- Плагины кэширования в коллекциях могут использоваться для кэширования данных из плагинов инвентаризации. Раньше плагины кэширования в коллекциях могли использоваться только для кэширования фактов.
- Некоторые неудокументированные аргументы из
FILE_COMMON_ARGUMENTSбыли удалены; плагины, использующие их, в частности плагины действий, необходимо адаптировать. Удаленные неудокументированные аргументы:src,follow,force,content,backup,remote_src,regexp,delimiter, иdirectory_mode.
Плагины действий, которые выполняют модули, должны использовать полные имена модулей
- Плагины действий, которые вызывают модули, должны передавать явные, полные имена модулей в
_execute_module()всякий раз, когда это возможно (например,ansible.builtin.fileвместоfile). Это гарантирует, что порядок поиска коллекций задач не используется для разрешения модуля. В противном случае, модуль из коллекции, более ранней в пути поиска, может быть использован, когда это не предполагалось.
Перенос пользовательских скриптов
Нет заметных изменений
© 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_base_2.10.html