ansible.builtin.yum – Управляет пакетами с помощью менеджера пакетов yum
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев, вы можете использовать короткое имя модуля yum, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для лёгкой ссылки на документацию модуля и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Описание
- Устанавливает, обновляет, понижает версию, удаляет и перечисляет пакеты и группы с помощью менеджера пакетов yum.
- Этот модуль работает только с Python 2. Если вам требуется поддержка Python 3, см. модуль ansible.builtin.dnf.
Примечание
Этот модуль имеет соответствующий плагин действия.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- yum
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_downgrade boolean добавлен в 2.4 ansible.builtin |
| Указывает, разрешено ли понижение версии указанного пакета и его версии, возможно уже установленной более высокой версии этого пакета. Обратите внимание, что установка allow_downgrade=True может привести к тому, что этот модуль будет работать неидеемно. Задача может завершиться набором пакетов, не соответствующим полному списку указанных пакетов для установки (потому что зависимости между понижаемым пакетом и другими могут вызвать изменения в пакетах, которые были в предыдущей транзакции). |
| autoremove boolean добавлен в 2.7 ansible.builtin |
| Если yes, удаляет все пакеты "листьев" из системы, которые изначально устанавливались в качестве зависимостей пользовательских установленных пакетов, но больше не требуются ни одним таким пакетом. Следует использовать отдельно или когда состояние отсутствует
ПРИМЕЧАНИЕ: Эта функция требует yum >= 3.4.3 (RHEL/CentOS 7+) |
| bugfix string добавлен в 2.6 ansible.builtin | Значение по умолчанию: "нет" | Если установлено в yes, и state=latest, то устанавливаются только обновления, которые были помечены как относящиеся к исправлению ошибок. |
| conf_file string добавлен в 0.6 ansible.builtin | Файл конфигурации удаленного yum, который следует использовать для транзакции. | |
| disable_excludes string добавлен в 2.7 ansible.builtin | Отключить исключения, определенные в файлах конфигурации YUM. Если установлено в all, отключает все исключения.Если установлено в main, отключает исключения, определенные в [main] в yum.conf.Если установлено в repoid, отключает исключения, определенные для данного идентификатора репозитория. | |
| disable_gpg_check boolean добавлен в 1.2 ansible.builtin |
| Отключить проверку GPG подписей пакетов, которые устанавливаются. Имеет эффект только если состояние present или latest. |
| disable_plugin string добавлен в 2.5 ansible.builtin |
Имя плагина для отключения для операции установки/обновления. Отключенные плагины не сохранятся после транзакции. | |
| disablerepo string добавлен в 0.9 ansible.builtin |
Идентификатор репозитория репозиториев для отключения для операции установки/обновления. Эти репозитории не сохранятся после транзакции. При указании нескольких репозиториев разделяйте их ",". Начиная с Ansible 2.7, это может быть список вместо "," разделенной строки | |
| download_dir string добавлен в 2.8 ansible.builtin | Указывает альтернативную директорию для хранения пакетов. Имеет эффект только если указано download_only. | |
| download_only boolean добавлен в 2.7 ansible.builtin |
| Только загрузить пакеты, не устанавливать их. |
| enable_plugin string добавлен в 2.5 ansible.builtin |
Имя плагина для включения для операции установки/обновления. Включенный плагин не сохранится после транзакции. | |
| enablerepo string добавлен в 0.9 ansible.builtin |
Идентификатор репозитория репозиториев для включения для операции установки/обновления. Эти репозитории не сохранятся после транзакции. При указании нескольких репозиториев разделяйте их ",". Начиная с Ansible 2.7, это может быть список вместо "," разделенной строки | |
| exclude string добавлен в 2.0 ansible.builtin | Имя(а) пакета для исключения при state=present или latest | |
| install_repoquery boolean добавлен в 1.5 ansible.builtin |
| Если repoquery недоступен, установите yum-utils. Если система зарегистрирована в RHN или RHN Satellite, repoquery позволяет запросить все каналы, назначенные системе. Он также необходим для использования параметра 'list'. ПРИМЕЧАНИЕ: Это будет выполнено и зарегистрировано как отдельная транзакция yum, которая происходит до любой другой установки или удаления. ПРИМЕЧАНИЕ: Это будет использовать системные репозитории по умолчанию, не принимая во внимание disablerepo/enablerepo, заданные модулю. |
| install_weak_deps boolean добавлен в 2.8 ansible.builtin |
| Также будут установлены все пакеты, связанные слабой зависимостью. ПРИМЕЧАНИЕ: Эта функция требует yum >= 4 (RHEL/CentOS 8+) |
| installroot string добавлен в 2.3 ansible.builtin | Значение по умолчанию: "/" | Указывает альтернативный installroot, относительно которого будут устанавливаться все пакеты. |
| list string | Имя пакета для запуска эквивалента yum list --show-duplicates <package> против. В дополнение к списку пакетов, вы также можете перечислить следующее: installed, updates, available и repos. Этот параметр несовместим с name. | |
| lock_timeout integer добавлен в 2.8 ansible.builtin | Значение по умолчанию: 30 | Время ожидания освобождения файла блокировки yum. |
| name list / элементы=string | Имя пакета или спецификатор пакета с версией, например name-1.0. Если указана предыдущая версия, задача также должна включить allow_downgrade. См. документацию по allow_downgrade, чтобы узнать о нюансах понижения версий пакетов.При использовании state=latest, это может быть '*', что означает выполнить yum -y update. Вы также можете передать URL или локальный путь к файлу rpm (используя state=present). Чтобы работать с несколькими пакетами, можно передать строку, разделенную запятыми, или (начиная с 2.0) список пакетов. псевдонимы: pkg | |
| releasever string добавлен в 2.7 ansible.builtin | Указывает альтернативную версию, из которой будут установлены все пакеты. | |
| security boolean добавлен в 2.4 ansible.builtin |
| Если установлено в yes, и state=latest, то устанавливаются только обновления, которые были помечены как относящиеся к безопасности. |
| skip_broken boolean добавлен в 2.3 ansible.builtin |
| Пропустить пакеты с поврежденными зависимостями(devsolve), которые вызывают проблемы. |
| state string |
| Установка ( present или installed, latest) или удаление (absent или removed) пакета.present и installed просто гарантируют установку необходимого пакета.latest обновит указанный пакет, если он не последней версии.absent и removed удалят указанный пакет.Значение по умолчанию None, однако фактически действие по умолчанию present, если опция autoremove включена для этого модуля, то absent предполагается. |
| update_cache boolean добавлен в 1.9 ansible.builtin |
| Принудительно заставляет yum проверить, не устарел ли кэш, и перескачивать его при необходимости. Имеет эффект только если состояние present или latest. псевдонимы: expire-cache |
| update_only boolean добавлен в 2.5 ansible.builtin |
| При использовании последней версии, только обновляются установленные пакеты. Пакеты не устанавливаются. Имеет эффект только если состояние latest
|
| use_backend string добавлен в 2.7 ansible.builtin |
| Этот модуль поддерживает yum (как всегда), это известно как yum3/YUM3/yum-deprecated разработчиками yum upstream. Начиная с Ansible 2.7+, этот модуль также поддерживает YUM4, что является "новым yum", и он имеет dnf бэкенд.По умолчанию этот модуль будет выбирать бэкенд на основе факта ansible_pkg_mgr. |
| validate_certs boolean добавлен в 2.1 ansible.builtin |
| Это применяется только при использовании 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 напрямую, а именно «command: 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: Install a list of packages (suitable replacement for 2.11 loop deprecation warning)
yum:
name:
- nginx
- postgresql
- postgresql-server
state: present
- name: Install a list of packages with a list variable
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: Download the nginx package but do not install it
yum:
name:
- nginx
state: latest
download_only: true
Авторы
- Команда 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.10/collections/ansible/builtin/yum_module.html