ansible.builtin.dnf – Управление пакетами с помощью менеджера пакетов dnf
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля dnf даже без указания ключевого слова collections:. Несмотря на это, мы рекомендуем использовать FQCN для удобной ссылки на документацию модуля и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Новое в версии 1.9: модуля ansible.builtin
Описание
- Установка, обновление, удаление и вывод списка пакетов и групп с помощью менеджера пакетов dnf.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- python-dnf
- для опции autoremove вам нужен dnf >= 2.0.1”
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_downgrade логический добавлен в 2.7 ansible.builtin |
| Указывает, разрешено ли понизить версию установленного пакета. Обратите внимание, что установка allow_downgrade=True может привести к неидемпотентному поведению этого модуля. Задача может закончиться с набором пакетов, не соответствующим полному списку указанных пакетов для установки (потому что зависимости между пониженным пакетом и другими могут вызвать изменения в пакетах, которые были в предыдущей транзакции). |
| allowerasing логический добавлен в 2.10 ansible.builtin |
| Если yes, то это разрешает удаление установленных пакетов для разрешения зависимостей. |
| autoremove логический добавлен в 2.4 ansible.builtin |
| Если yes, удаляет все "листовые" пакеты из системы, которые изначально были установлены как зависимости пользовательских пакетов, но больше не требуются ни одним из таких пакетов. Должен использоваться отдельно или когда состояние отсутствует |
| bugfix логический добавлен в 2.7 ansible.builtin |
| Если установлено yes, и state=latest, тогда устанавливаются только обновления, которые были помечены как исправления ошибок.Обратите внимание, что, аналогично ``dnf upgrade-minimal``, этот фильтр применяется и к зависимостям. |
| conf_file строка | Удаленный файл конфигурации dnf для использования в транзакции. | |
| disable_excludes строка добавлен в 2.7 ansible.builtin | Отключить исключения, определенные в файлах конфигурации DNF. Если установлено all, отключает все исключения.Если установлено main, отключает исключения, определенные в [main] в dnf.conf.Если установлено repoid, отключает исключения, определенные для данного идентификатора репозитория. | |
| disable_gpg_check логический |
| Выключает ли проверку подписей GPG пакетов, которые устанавливаются. Действует только в том случае, если состояние present или latest. Эта настройка влияет на пакеты, установленные из репозитория, а также на "локальные" пакеты, установленные из файловой системы или URL. |
| disable_plugin строка добавлен в 2.7 ansible.builtin |
Имя плагина для отключения для операции установки/обновления. Отключенные плагины не будут сохраняться после транзакции. | |
| disablerepo строка |
Идентификатор репозитория для отключения для операции установки/обновления. Эти репозитории не будут сохраняться после транзакции. При указании нескольких репозиториев разделяйте их запятыми. | |
| download_dir строка добавлен в 2.8 ansible.builtin | Указывает альтернативную директорию для хранения пакетов. Действует только при указании download_only. | |
| download_only логический добавлен в 2.7 ansible.builtin |
| Только загрузить пакеты, не устанавливать их. |
| enable_plugin строка добавлен в 2.7 ansible.builtin |
Имя плагина для включения для операции установки/обновления. Включенный плагин не будет сохраняться после транзакции. | |
| enablerepo строка |
Идентификатор репозитория для включения для операции установки/обновления. Эти репозитории не будут сохраняться после транзакции. При указании нескольких репозиториев разделяйте их запятыми. | |
| exclude строка добавлен в 2.7 ansible.builtin | Имя(я) пакета(ов) для исключения, когда состояние=present или latest. Это может быть список или строка, разделенная запятыми. | |
| install_repoquery логический добавлен в 2.7 ansible.builtin |
| Это фактически бесполезно в DNF, так как это не нужно в DNF, но это принятый параметр для соответствия функциональности/совместимости с модулем yum. |
| install_weak_deps логический добавлен в 2.8 ansible.builtin |
| Также установит все пакеты, связанные слабой зависимостью. |
| installroot строка добавлен в 2.3 ansible.builtin | По умолчанию: "/" | Указывает альтернативный installroot, относительно которого будут установлены все пакеты. |
| list строка | Различные (неидемпотентные) команды для использования с /usr/bin/ansible и не с плейбуками. Смотрите примеры. | |
| lock_timeout целое число добавлен в 2.8 ansible.builtin | По умолчанию: 30 | Время ожидания освобождения файла блокировки dnf. |
| name список / элементы=строка / обязательный | Имя пакета или спецификатор пакета с версией, например, name-1.0. При использовании state=latest, это может быть '*', что означает выполнение: dnf -y update. Также можно указать url или локальный путь к файлу rpm. Для работы с несколькими пакетами это может принимать строку с именами пакетов, разделённых запятыми, или список пакетов.псевдонимы: pkg | |
| releasever строка добавлен в 2.6 ansible.builtin | Указывает альтернативную версию релиза, из которой будут установлены все пакеты. | |
| security логический добавлен в 2.7 ansible.builtin |
| Если установлено yes, и state=latest, тогда устанавливаются только обновления, которые были помечены как связанные с безопасностью.Обратите внимание, что, аналогично ``dnf upgrade-minimal``, этот фильтр применяется и к зависимостям. |
| skip_broken логический добавлен в 2.7 ansible.builtin |
| Пропустить пакеты с повреждёнными зависимостями(devsolve) и вызывающими проблемы. |
| state строка |
| Установка ( present, latest) или удаление (absent) пакета.По умолчанию None, однако фактическое действие по умолчанию present, если опция autoremove включена для этого модуля, то absent подразумевается. |
| update_cache логический добавлен в 2.7 ansible.builtin |
| Принудительно заставляет dnf проверять, не устарел ли кеш, и перескачивать его при необходимости. Действует только в том случае, если состояние present или latest. псевдонимы: expire-cache |
| update_only логический добавлен в 2.7 ansible.builtin |
| При использовании последней версии, обновлять только установленные пакеты. Не устанавливать новые пакеты. Действует только в том случае, если состояние latest |
| validate_certs логический добавлен в 2.7 ansible.builtin |
| Это применимо только в том случае, если используется https url в качестве источника rpm. например, для localinstall. Если установлено no, сертификаты SSL не будут проверены.Это следует устанавливать только в no на сайтах с собственным контролем, используя самозаверенные сертификаты, так как это позволяет избежать проверки источника сайта. |
Примечания
Примечание
- При использовании с
loop:каждый пакет будет обрабатываться индивидуально, гораздо эффективнее передать список напрямую в опциюname. - Удаление групп не работает, если группа была установлена с Ansible, так как API upstream dnf не правильно помечает группы как установленные, поэтому при удалении модуль не может определить, что группа установлена (https://bugzilla.redhat.com/show_bug.cgi?id=1620324)
Примеры
- name: Install the latest version of Apache
dnf:
name: httpd
state: latest
- name: Install the latest version of Apache and MariaDB
dnf:
name:
- httpd
- mariadb-server
state: latest
- name: Remove the Apache package
dnf:
name: httpd
state: absent
- name: Install the latest version of Apache from the testing repo
dnf:
name: httpd
enablerepo: testing
state: present
- name: Upgrade all packages
dnf:
name: "*"
state: latest
- name: Install the nginx rpm from a remote repo
dnf:
name: 'http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm'
state: present
- name: Install nginx rpm from a local file
dnf:
name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
state: present
- name: Install the 'Development tools' package group
dnf:
name: '@Development tools'
state: present
- name: Autoremove unneeded packages installed as dependencies
dnf:
autoremove: yes
- name: Uninstall httpd but keep its dependencies
dnf:
name: httpd
state: absent
autoremove: no
- name: Install a modularity appstream with defined stream and profile
dnf:
name: '@postgresql:9.6/client'
state: present
- name: Install a modularity appstream with defined stream
dnf:
name: '@postgresql:9.6'
state: present
- name: Install a modularity appstream with defined profile
dnf:
name: '@postgresql/client'
state: present
Авторы
- Игорь Гнатенко (@ignatenkobrain) <i.gnatenko.brain@gmail.com>
- Кристиан ван И (@DJMuggs) <cristian at cvee.org>
- Беренд де Шоувер (@berenddeschouwer)
- Адам Миллер (@maxamillion) <admiller@redhat.com>
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/ansible/builtin/dnf_module.html