yum – Управляет пакетами с помощью менеджера пакетов yum
Описание
- Устанавливает, обновляет, понижает, удаляет и перечисляет пакеты и группы с помощью менеджера пакетов yum.
- Этот модуль работает только с Python 2. Если вам нужна поддержка Python 3, обратитесь к модулю dnf.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- yum
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_downgrade boolean добавлено в 2.4 |
| Указывает, разрешено ли понизить версию указанного пакета и его версии, если уже установлена более новая версия этого пакета. Обратите внимание, что установка allow_downgrade=True может сделать этот модуль неидемпотентным. Задача может завершиться набором пакетов, который не соответствует полному списку указанных пакетов для установки (потому что зависимости между пониженным пакетом и другими могут привести к изменениям в пакетах, которые были в предыдущей транзакции). |
| autoremove boolean добавлено в 2.7 |
| Если yes, удаляет все пакеты «листьев» из системы, которые изначально были установлены как зависимости пользовательских пакетов, но больше не требуются ни одним из таких пакетов. Должно использоваться самостоятельно или когда состояние отсутствует
ПРИМЕЧАНИЕ: для этой функции требуется yum >= 3.4.3 (RHEL/CentOS 7+) |
| bugfix - добавлено в 2.6 | Значение по умолчанию: "нет" | Если установлено значение yes, и state=latest, то устанавливаются только обновления, которые были помечены как исправление ошибок. |
| conf_file - | Файл удалённой конфигурации yum, который нужно использовать для транзакции. | |
| disable_excludes - добавлено в 2.7 | Отключить исключения, определённые в файлах конфигурации YUM. Если установлено all, отключаются все исключения.Если установлено main, отключаются исключения, определённые в [main] в yum.conf.Если установлено repoid, отключаются исключения, определённые для данного идентификатора репозитория. | |
| disable_gpg_check boolean |
| Отключать ли проверку подписей GPG пакетов, которые устанавливаются. Воздействует только если состояние есть или последняя. |
| disable_plugin - добавлено в 2.5 |
Имя плагина для отключения для операции установки/обновления. Отключенные плагины не сохранятся после транзакции. | |
| disablerepo - |
Идентификатор репозитория для отключения репозиториев для операции установки/обновления. Эти репозитории не сохранятся после транзакции. При указании нескольких репозиториев разделяйте их ",".Начиная с Ansible 2.7, это может быть список вместо "," разделителя строки. | |
| download_dir string добавлено в 2.8 | Указывает альтернативную директорию для хранения пакетов. Воздействует только если указано download_only. | |
| download_only boolean добавлено в 2.7 |
| Только загрузить пакеты, не устанавливать их. |
| enable_plugin - добавлено в 2.5 |
Имя плагина для включения для операции установки/обновления. Включенный плагин не сохранится после транзакции. | |
| enablerepo - |
Идентификатор репозитория для включения репозиториев для операции установки/обновления. Эти репозитории не сохранятся после транзакции. При указании нескольких репозиториев разделяйте их ",".Начиная с Ansible 2.7, это может быть список вместо "," разделителя строки. | |
| exclude - добавлено в 2.0 | Имя(я) пакета(ов) для исключения, когда состояние=present или последняя | |
| install_weak_deps boolean добавлено в 2.8 |
| Также установит все пакеты, связанные слабой зависимостью. ПРИМЕЧАНИЕ: для этой функции требуется yum >= 4 (RHEL/CentOS 8+) |
| installroot - добавлено в 2.3 | Значение по умолчанию: "/" | Указывает альтернативный installroot, относительно которого будут устанавливаться все пакеты. |
| list - | Имя пакета для выполнения эквивалента yum list <package> против. В дополнение к перечислению пакетов можно также перечислить следующие: installed, updates, available и repos. | |
| lock_timeout integer добавлено в 2.8 | Значение по умолчанию: 30 | Время ожидания освобождения файла блокировки yum. |
| name - | Имя пакета или спецификатор пакета с версией, например name-1.0.Если указана предыдущая версия, задаче также необходимо включить allow_downgrade. См. документацию allow_downgrade для замечаний по понижению версий пакетов.При использовании state=latest, это может быть '*', что означает выполнение yum -y update. Вы также можете передать URL или локальный путь к файлу rpm (используя state=present). Для работы с несколькими пакетами можно принять строку пакетов, разделённую запятыми, или (начиная с 2.0) список пакетов. псевдонимы: pkg | |
| releasever - добавлено в 2.7 | Указывает альтернативную версию выпуска, из которой будут устанавливаться все пакеты. | |
| security boolean добавлено в 2.4 |
| Если установлено значение yes, и state=latest, то устанавливаются только обновления, которые были помечены как относящиеся к безопасности. |
| skip_broken boolean добавлено в 2.3 |
| Пропустить пакеты с повреждёнными зависимостями(devsolve) и вызывающими проблемы. |
| state - |
| Установить ( present или installed, latest) или удалить (absent или removed) пакет.present и installed просто гарантируют, что нужный пакет установлен.latest обновит указанный пакет, если он не является последней доступной версией.absent и removed удалят указанный пакет.Значение по умолчанию None, однако фактическое действие по умолчанию present, если параметр autoremove включен для этого модуля, тогда подразумевается absent. |
| update_cache boolean |
| Принудительно заставляет yum проверить, не устарел ли кэш, и перескачать его при необходимости. Воздействует только если состояние есть или последний. псевдонимы: expire-cache |
| update_only boolean added in 2.5 |
| При использовании latest, обновляются только установленные пакеты. Пакеты не устанавливаются. Действует только если состояние latest
|
| use_backend - added in 2.7 |
| Этот модуль поддерживает yum (как всегда), это известно как yum3/YUM3/yum-deprecated разработчиками yum. Начиная с Ansible 2.7+, этот модуль также поддерживает YUM4, который является «новым yum», и имеет бэкенд dnf. По умолчанию этот модуль выбирает бэкенд на основе факта ansible_pkg_mgr. |
| validate_certs boolean added in 2.1 |
| Это применимо только при использовании https url в качестве источника rpm. Например, для localinstall. Если установлено no, сертификаты SSL не будут проверены.Это следует устанавливать только в no на сайтах с собственными сертификатами, так как это позволяет избежать проверки источника сайта.До версии 2.1 код работал так, как будто это было установлено на yes. |
Примечания
Примечание
- При использовании с
loop:каждый пакет будет обрабатываться индивидуально, гораздо эффективнее передать список напрямую в опциюname. - В версиях до 1.9.2 этот модуль устанавливал и удалял каждый пакет, предоставленный модулю yum, по отдельности. Это вызывало проблемы, когда пакеты, указанные по имени файла или URL, должны были быть установлены или удалены вместе. В 1.9.2 эта проблема была исправлена, так что пакеты устанавливаются в одной транзакции yum. Однако, если один из пакетов добавляет новый репозиторий yum, из которого происходят другие пакеты (например, epel-release), то этот пакет необходимо установить в отдельном задании. Это имитирует поведение командной строки yum.
- Сам yum имеет два типа групп. «Группы пакетов» задаются в самом rpm, в то время как «средовые группы» задаются в отдельном файле (обычно дистрибутивом). К сожалению, это разделение становится очевидным для пользователей ansible, потому что ansible нужно работать с группой пакетов в одной транзакции, а yum требует, чтобы группы задавались различными способами при использовании таким образом. Группы пакетов задаются как «@development-tools», а среды — «@^gnome-desktop-environment». Используйте команду «yum group list hidden ids», чтобы увидеть к какой категории группы принадлежит группа, которую вы хотите установить.
- Модуль yum не поддерживает очистку кэша yum и не был реализован, единственный метод — использование оболочки и непосредственное вызов команды yum, а именно «shell: yum clean all» https://github.com/ansible/ansible/pull/31450#issuecomment-352889579
Примеры
- name: install the latest version of Apache
yum:
name: httpd
state: latest
- name: ensure a list of packages installed
yum:
name: "{{ packages }}"
vars:
packages:
- httpd
- httpd-tools
- name: remove the Apache package
yum:
name: httpd
state: absent
- name: install the latest version of Apache from the testing repo
yum:
name: httpd
enablerepo: testing
state: present
- name: install one specific version of Apache
yum:
name: httpd-2.2.29-1.4.amzn1
state: present
- name: upgrade all packages
yum:
name: '*'
state: latest
- name: upgrade all packages, excluding kernel & foo related packages
yum:
name: '*'
state: latest
exclude: kernel*,foo*
- name: install the nginx rpm from a remote repo
yum:
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
yum:
name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
state: present
- name: install the 'Development tools' package group
yum:
name: "@Development tools"
state: present
- name: install the 'Gnome desktop' environment group
yum:
name: "@^gnome-desktop-environment"
state: present
- name: List ansible packages and register result to print with debug later.
yum:
list: ansible
register: result
- name: Install package with multiple repos enabled
yum:
name: sos
enablerepo: "epel,ol7_latest"
- name: Install package with multiple repos disabled
yum:
name: sos
disablerepo: "epel,ol7_latest"
- name: Install a list of packages
yum:
name:
- nginx
- postgresql
- postgresql-server
state: present
- name: Download the nginx package but do not install it
yum:
name:
- nginx
state: latest
download_only: true
Статус
- Данный модуль гарантированно не будет содержать обратной несовместимости в будущих изменениях. [stableinterface]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке Red Hat этого модуля можно найти в этой статье базы знаний Red Hat.
Авторы
- Команда Ansible Core
- Seth Vidal (@skvidal)
- Eduard Snesarev (@verm666)
- Berend De Schouwer (@berenddeschouwer)
- Abhijeet Kasurde (@Akasurde)
- Adam Miller (@maxamillion)
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/yum_module.html