Spec-Zone.ru › Ansible

Руководство по переносу 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

Spec-Zone.ru

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