Spec-Zone.ru › Ansible

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

Примечание

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

Эта коллекция может быть уже установлена, если вы используете пакет 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

list / elements=string

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

Этот параметр не может использоваться вместе с state=clean.

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

raw

boolean

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

Варианты:

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

state

string

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

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

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

В режиме diff возвращает сведения об изменениях (или о тех, которые, возможно, требуется внести в check_mode).

Примечания

Примечание

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

Примеры

- 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:
    name: nginx
    state: absent

- name: Exclude bind 32:9.11 from installs or updates
  community.general.dnf_versionlock:
    name: 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

list / elements=string

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

Возвращается: при успешном выполнении и (если это не режим check или состояние не clean)

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

locklist_pre

list / elements=string

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

Возвращается: при успешном выполнении

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

specs_toadd

list / elements=string

Спецификации имен пакетов, которые versionlock должен добавить.

Возвращается: при успешном выполнении

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

specs_todelete

list / elements=string

Спецификации имен пакетов, которые versionlock должен удалить.

Возвращается: при успешном выполнении

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

Авторы

  • Roberto Moreda (@moreda)

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

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

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

Spec-Zone.ru

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