Spec-Zone.ru › Ansible

Модуль community.general.dnf_versionlock — Блокировка версий пакетов в системах на базе dnf

Примечание

Этот модуль входит в коллекцию community.general (версия 9.5.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить её установку, выполните ansible-galaxy collection list.

Для её установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.

Для использования в книге задач, укажите: community.general.dnf_versionlock.

Новое в community.general 4.0.0

  • Описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Блокирует версии пакетов, используя плагин versionlock в системах на базе dnf. Этот плагин принимает набор имён и версий пакетов и исключает все другие версии этих пакетов. Это позволяет, например, защитить пакеты от обновления более новыми версиями. Состояние плагина, отражающее блокировку пакетов, является locklist.

Требования

Ниже приведены требования к хосту, на котором выполняется этот модуль.

  • dnf
  • dnf-plugin-versionlock

Параметры

Параметр

Комментарии

name

список / элементы=строка

Спецификация имени пакета для добавления, исключения или удаления из locklist, используя формат, ожидаемый командой dnf repoquery.

Этот параметр взаимоисключает state=clean.

По умолчанию: []

raw

логическое

Не разрешать спецификации имён пакетов в NEVRAs для поиска конкретной версии для блокировки. Вместо этого спецификации имён пакетов используются как есть. Это позволяет блокировать ещё недоступные версии пакета.

Варианты:

  • false ← (по умолчанию)
  • true

state

строка

Добавить (present или excluded ), или удалить (absent или clean ) из locklist.

present добавит спецификацию имени пакета в locklist. Если есть установленный пакет, соответствующий спецификации, то будет добавлена только эта версия. В противном случае будут добавлены все доступные версии пакетов.

excluded добавит спецификацию имени пакета как исключённую в locklist. Это означает, что пакеты, представленные именем пакета, будут исключены из операций транзакции. Все доступные версии пакетов будут добавлены.

absent удалит записи в locklist, которые соответствуют спецификации имени пакета.

clean удалит все записи в locklist. Этот вариант взаимоисключает name.

Варианты:

  • "absent"
  • "clean"
  • "excluded"
  • "present" ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: частичная

Логика плагина versionlock для особых случаев может быть запутанной, поэтому учтите, что этот модуль сделает всё возможное, чтобы дать прогноз check_mode о том, что произойдёт. В случае сомнений, ознакомьтесь с документацией плагина.

Иногда модуль может предсказать изменения в check_mode, которые не будут такими, потому что versionlock заключает, что в locklist уже есть соответствующая запись.

Может работать в режиме check_mode и возвращать прогноз состояния изменений без модификации цели.

diff_mode

Поддержка: отсутствует

Вернёт детали о том, что изменилось (или, возможно, должно измениться в check_mode), когда находится в режиме сравнения.

Примечания

Примечание

  • В идеальном мире плагин versionlock имел бы опцию пробного запуска, чтобы точно знать, что произойдёт. Пока нам придётся работать с лучшим предположением, максимально приближенным к поведению, выведенному из его кода.
  • В большинстве случаев, когда вы хотите заблокировать и разблокировать определённые версии пакета, это работает достаточно хорошо.

Примеры

- name: Prevent installed nginx from being updated
  community.general.dnf_versionlock:
    name: nginx
    state: present

- name: Prevent multiple packages from being updated
  community.general.dnf_versionlock:
    name:
      - nginx
      - haproxy
    state: present

- name: Remove lock from nginx to be updated again
  community.general.dnf_versionlock:
    package: nginx
    state: absent

- name: Exclude bind 32:9.11 from installs or updates
  community.general.dnf_versionlock:
    package: bind-32:9.11*
    state: excluded

- name: Keep bash package in major version 4
  community.general.dnf_versionlock:
    name: bash-0:4.*
    raw: true
    state: present

- name: Delete all entries in the locklist of versionlock
  community.general.dnf_versionlock:
    state: clean

Значения возврата

Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

locklist_post

список / элементы=строка

Список блокировок после выполнения модуля.

Возвращается: успех и (не режим проверки или состояние чистое)

Пример: ["bash-0:4.4.20-1.el8_4.*"]

locklist_pre

список / элементы=строка

Список блокировок перед выполнением модуля.

Возвращается: успех

Пример: ["bash-0:4.4.20-1.el8_4.*", "!bind-32:9.11.26-4.el8_4.*"]

specs_toadd

список / элементы=строка

Спецификации имён пакетов, предназначенные для добавления модулем versionlock.

Возвращается: успех

Пример: ["bash"]

specs_todelete

список / элементы=строка

Спецификации имён пакетов, предназначенные для удаления модулем versionlock.

Возвращается: успех

Пример: ["bind"]

Авторы

  • Roberto Moreda (@moreda)

Ссылки на коллекцию

  • Система отслеживания ошибок
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Общение

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

Spec-Zone.ru

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