dnf5#
Модуль ansible.builtin.dnf5 предоставляет интерфейс для управления пакетами в системах на базе RPM, использующих пакетный менеджер DNF5.
Описание применения модулей приведено в документе Модули.
Особенности работы#
Для работы модуля на управляемых узлах должен быть установлен пакет python3-libdnf5.
Основные возможности:
установка, обновление и удаление пакетов;
установка пакетов указанных версий;
управление набором репозиториев.
Примечание
Модуль ansible.builtin.dnf5 не является прямой заменой ansible.builtin.dnf.
Он предназначен только для систем, где уже используется DNF5.
Для остальных используйте модуль ansible.builtin.dnf.
Параметры#
Модуль принимает следующие параметры:
- allow_downgrade#
Разрешение на замену пакета его более старой версией.
Использование
allow_downgrade=trueможет сделать модульansible.builtin.dnf5неидемпотентным. В результате выполнения задачи список фактически установленных пакетов может отличаться от заданного в параметрах.Возможные значения:
false– замена пакета его более старой версией запрещена;true– разрешено заменить пакет его более старой версией.
Значение по умолчанию:
false.
- allowerasing#
Удаление установленных пакетов для разрешения конфликтов зависимостей.
Возможные значения:
false– удаление пакетов для разрешения зависимостей запрещено;true– удаление пакетов для разрешения зависимостей разрешено.
Значение по умолчанию:
false.
- autoremove#
Удаление пакетов зависимостей, которые больше не нужны.
Применяется только в следующих случаях:
как самостоятельный параметр;
совместно со
state=absent.
Возможные значения:
false– удаление пакетов запрещено;true– удаление пакетов разрешено.
Значение по умолчанию:
false.
- best#
Использование актуального доступного кандидата на установку или обновление пакета.
Возможные значения:
false– если не удастся установить самую новую версию пакета, будет установлена ближайшая к ней.true– должна быть установлена самая новая версия пакета. Если она недоступна, задача завершится ошибкой.
Значение по умолчанию определяется конфигурацией DNF5 и может отличаться в зависимости от дистрибутива.
- bugfix#
Обновление только тех пакетов, которые помечены как исправляющие ошибки (bugfix).
Аналогично команде
dnf upgrade-minimal, фильтрация по признаку исправления ошибок распространяется и на пакеты, от которых зависят целевые пакеты.Применяется только совместно со
state=latest.Возможные значения:
false– устанавливаются все доступные обновления;true– устанавливаются только обновления для исправления ошибок.
Значение по умолчанию:
false.
- cacheonly#
Использование только локального кеша. Данные из удаленных репозиториев не загружаются.
Возможные значения:
false– разрешает использование удаленных репозиториев;true– работает только с локальным кешем.
Значение по умолчанию:
false.
- conf_file#
Путь к конфигурационному файлу DNF5 на управляемом узле.
- disable_excludes#
Список правил исключений (excludes), определенных в конфигурации DNF5, которые следует отключить на время выполнения задачи, например:
disable_excludes: - epel - rhel-7-server-extras-rpms
Может быть полезно, если нужно установить или обновить пакеты, которые были явно исключены администратором системы.
Возможные значения:
all– отключает все исключения, в том числе глобальные и заданные в репозиториях;main– отключает исключения, заданные в секции[main]конфигурационного файлаdnf.conf;<repoid>– отключает исключения для репозиториев с указанными идентификаторами.
- disable_gpg_check#
Отключение проверки подписей GPG при установке пакетов. Установка пакетов из репозиториев выполняется так же, как установка из локальной файловой системы или по URL – без проверки подписей GPG.
Важно
Отключение проверки подписей GPG снижает уровень безопасности и может привести к установке непроверенных или вредоносных пакетов.
Применяется только совместно со
state=presentилиstate=latest.Возможные значения:
false– подпись проверяется;true– подпись не проверяется.
Значение по умолчанию:
false.
- disable_plugin#
Список модулей DNF5, которые следует временно отключить для выполнения задачи.
Для корректной работы параметра на управляемом узле должен быть установлен пакет
python3-libdnf5версии не ниже5.2.0.0.Примечание
disable_pluginимеет приоритет надenable_plugin. Это значит, что если модуль указан в значениях обоих параметров, то он будет отключен.Значение по умолчанию:
[](пустой список).
- disablerepo#
Список идентификаторов репозиториев, которые следует отключить на время выполнения задачи, например:
disablerepo: - epel - rhel-7-server-extras-rpms
Значение по умолчанию:
[](пустой список).
- download_dir#
Каталог для загрузки пакетов.
Применяется только совместно с
download_only=true.
- download_only#
Загрузка пакетов без их последующей установки.
Возможные значения:
false– загрузка и установка;true– только загрузка.
Значение по умолчанию:
false.
- enable_plugin#
Список модулей DNF5, которые следует временно включить для выполнения задачи.
Для корректной работы параметра на управляемом узле должен быть установлен пакет
python3-libdnf5версии не ниже5.2.0.0.Примечание
disable_pluginимеет приоритет надenable_plugin. Это значит, что если модуль указан в значениях обоих параметров, то он будет отключен.Значение по умолчанию:
[](пустой список).
- enablerepo#
Список идентификаторов репозиториев, которые следует включить на время выполнения задачи, например:
enablerepo: - epel - rhel-7-server-extras-rpms
Значение по умолчанию:
[](пустой список).
- exclude#
Список пакетов, которые следует исключить на время выполнения задачи, например:
exclude: - php - php-common
Применяется только совместно со
state=presentилиstate=latest.Значение по умолчанию:
[](пустой список).
- install_repoquery#
Внимание
Параметр
install_repoqueryне влияет на поведение модуля и фактически является заглушкой, добавленной для совместимости с предыдущими версиями Ansible.Запрос информации о зависимостях, версиях пакетов, разрешений групп и так далее.
false– запрет использованияrepoquery;true– использованиеrepoqueryпри необходимости.
Значение по умолчанию:
true.
- install_weak_deps#
Установка пакетов слабых (weak) зависимостей.
Возможные значения:
false– установка слабых зависимостей запрещена;true– установка слабых зависимостей разрешена.
Значение по умолчанию:
true.
- installroot#
Альтернативный корневой каталог для установки пакетов.
Поведение модуля с использованием данного параметра аналогично запуску команды
chroot <root> dnf. Отличительной особенностьюinstallrootявляется возможность работы DNF до создания самого окруженияchroot.Значение по умолчанию:
/.
- list#
Вывод информации о пакетах, аналогично команде
dnf list.Примечание
Параметр не является идемпотентным: он не изменяет состояние системы и не сохраняет результат.
Используется только для запуска отдельных (ad-hoc) команд с помощью утилиты
ansible. Использование в сценариях не допускается.Вместо параметра
listрекомендуется использовать модуль ansible.builtin.package_facts.
- lock_timeout#
Внимание
Параметр
lock_timeoutне влияет на поведение модуля и фактически является заглушкой, добавленной для совместимости с модулем ansible.builtin.dnf.Период ожидания снятия блокировки БД DNF5 в секундах.
Иногда блокировка бывает временной, а эта настройка позволяет модулю предпринять дополнительные попытки в течение указанного периода.
Значение по умолчанию:
30.
- name, pkg#
Список названий пакетов, например:
name: - httpd - nginx >= 1.14.1
Поддерживаемые формы записи:
Форма записи
Пример выражения
Простое название пакета
httpdС указанием версии
httpd-2.4.6-90.el7С операторами сравнения
nginx >= 1.14.1Примечание
Обрамление оператора сравнения пробелами обязательно.
Путь к локальному файлу RPM
/tmp/mypackage.rpmПуть к бинарному файлу, который предоставляется устанавливаемым пакетом
/usr/bin/htpasswdURL-адрес
https://example.com/mypackage.rpmПри
state=latestпараметр поддерживает значение*, эквивалентное выполнению командыdnf -y update(обновление всех установленных пакетов).Значение по умолчанию:
[](пустой список).
- nobest#
Разрешение использования не самой последней версии пакета при установке или обновлении.
Противоположность параметру
best.Возможные значения:
false— предпочтение отдается самой новой доступной версии;true— допускается использование более старой версии, если она доступна.
Значение по умолчанию определяется конфигурацией DNF5 и может отличаться в зависимости от дистрибутива.
- releasever#
Альтернативная версия дистрибутива, которая будет использоваться при установке пакетов. Значение этого параметра на время выполнения задачи заменяет значение переменной
$releaseverв конфигурации DNF5 и URL-адресах репозиториев.Например,
releasever=9позволит установить пакеты, предназначенные для версии 9 используемой ОС, даже если сейчас система работает под другой версией.Полезно при сборке образов, создании контейнеров или тестировании пакетов в различных версиях ОС.
- security#
Обновление только тех пакетов, которые помечены как обновления безопасности. Аналогично команде
dnf upgrade-minimal, фильтрация по признаку обновления безопасности распространяется и на зависимости целевых пакетов.Применяется только совместно со
state=latest.Возможные значения:
false– устанавливаются все доступные обновления;true– устанавливаются только обновления, связанные с безопасностью.
Значение по умолчанию:
false.
- skip_broken#
Вызов ошибки при недоступности пакетов или установке пакетов со сломанными зависимостями. Использование модуля с этим параметром эквивалентно запуску
dnfс аргументом--skip-broken.Возможные значения:
false– при ошибках зависимостей задача завершается с ошибкой;true– проблемные пакеты игнорируются, выполнение продолжается.
Значение по умолчанию:
false.
- sslverify#
Проверка TLS-сертификатов репозиториев.
Полезно при работе с внутренними зеркалами, использующими самоподписанные сертификаты.
Возможные значения:
false– проверка TLS-сертификатов отключена;true– TLS-сертификаты проверяются.
Значение по умолчанию:
true.
- state#
Требуемое состояние пакета.
Возможные значения:
present– установлена любая версия пакета. Если пакет уже существует в системе, он не будет обновлен до последней версии.installed– аналогpresent(поддерживается для совместимости).latest– если пакет не установлен, будет установлена его самая новая версия. Если пакет уже установлен, он будет обновлен до самой новой версии.absent– пакет не установлен.removed– аналогabsent(поддерживается для совместимости).
Значение по умолчанию:
absentеслиautoremove=trueиpresentво всех остальных случаях.
- update_cache, expire-cache#
Проверка актуальности кеша. Если кеш устарел, то модуль обновит его.
Применяется только совместно со
state=presentилиstate=latest.Возможные значения:
false– используется существующий кеш;true– обновление кеша перед выполнением задачи.
Значение по умолчанию:
false.
- update_only#
Обновление уже установленных пакетов. Новые пакеты установлены не будут.
Применяется только совместно со
state=presentилиstate=latest.Возможные значения:
false– допускается установка новых пакетов;true– устанавливаются только обновления для уже установленных пакетов.
Значение по умолчанию:
false.
- validate_certs#
Внимание
В DNF5 проверка сертификатов выполняется средствами самого DNF5, а не Ansible. Параметр
validate_certsне влияет на поведение модуля и фактически является заглушкой, добавленной для совместимости с модулем ansible.builtin.dnf.Проверка сертификатов TLS при загрузке пакетов по протоколу HTTPS.
Возможные значения:
false– проверка отключена (значение игнорируется в DNF5);true– проверка сертификатов выполняется.
Значение по умолчанию:
true.
Возвращаемые значения#
В этом списке указаны только возвращаемые значения, специфичные для модуля ansible.builtin.dnf5.
failures– список ошибок, возникших при выполнении транзакций DNF5.Условия: возвращается при ошибках.
msg– дополнительная информация о результате выполнения модуля.Условия: возвращается всегда.
rc– код возврата.Возможные значения:
0– успешное завершение;1– ошибка выполнения.
Условия: возвращается всегда.
results– список результатов выполнения транзакции DNF5.Условия: возвращается при успешном выполнении.
Атрибуты#
Атрибуты определяют функции Ansible, которые может использовать модуль.
Атрибут |
Описание |
|---|---|
|
Модуль имеет соответствующие расширения действий (action plugin) ansible.builtin.dnf и ansible.builtin.package, которые выполняют работу на управляющем узле. |
|
Модуль не поддерживает асинхронное выполнение. |
|
Модуль не выполняется как глобальная задача. Для каждого узла выполняется отдельный цикл с учетом всех ограничений. |
|
Модуль работает в режиме проверки ( |
|
Модуль поддерживает режим сравнения ( |
|
Модуль поддерживает только Red Hat Enterprise Linux. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Установка одного пакета#
Следующий пример описывает установку пакета:
---
- name: Install htop package
ansible.builtin.dnf5:
name: htop
state: present
Удаление нескольких пакетов#
Следующий пример описывает удаление двух пакетов:
---
- name: Remove nano and mc packages
ansible.builtin.dnf5:
name:
- nano
- mc
state: absent
Установка последней версии пакета с указанием releasever#
Следующий пример описывает установку последней версии пакета openssh с использованием репозитория другой версии системы:
---
- name: Install latest version of openssh package with releasever=9
ansible.builtin.dnf5:
name: openssh
state: latest
releasever: 9
Отключение и включение модулей#
Следующий пример описывает установку пакета с управлением загрузкой модулей:
---
- name: Enable one plugin, disable another and install package mytool
ansible.builtin.dnf5:
name: mytool
state: present
disable_plugin: subscription-manager
enable_plugin: copr
Отключение установки слабых зависимостей#
Следующий пример описывает установку пакета nginx без слабых зависимостей:
---
- name: Install GNINX without weak dependencies
ansible.builtin.dnf5:
name: nginx
state: present
install_weak_deps: false
Обновление только установленных пакетов#
Следующий пример описывает обновление пакетов bash и coreutils, если они установлены в системе:
---
- name: Upgrade installed package
ansible.builtin.dnf5:
name:
- bash
- coreutils
state: latest
update_only: true
Использование альтернативного конфигурационного файла#
Следующий пример описывает установку пакета zsh с использованием альтернативного конфигурационного файла DNF5:
---
- name: Install ZSH with custom dnf5 settings file
ansible.builtin.dnf5:
name: zsh
state: present
conf_file: /etc/dnf/dnf.conf.test
Отключение проверки TLS-сертификатов#
Следующий пример описывает установку пакета nginx с отключением проверки сертификатов:
---
- name: Install NGINX without checking TLS certificates
ansible.builtin.dnf5:
name: nginx
state: present
validate_certs: false