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, удаляет все "листовые" пакеты из системы, которые были изначально установлены как зависимости пользовательских пакетов, но больше не требуются ни одним из таких пакетов. Должен использоваться отдельно или когда состояние равно absent
ПРИМЕЧАНИЕ: Эта функция требует yum >= 3.4.3 (RHEL/CentOS 7+) |
| bugfix boolean добавлен в 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, отключает исключения, определенные для данного id репозитория. | |
| disable_gpg_check boolean добавлен в 1.2 ansible.builtin |
| Отключить проверку подписей GPG пакетов, которые устанавливаются. Действует только если состояние равно present или latest. |
| disable_plugin list / elements=string добавлен в 2.5 ansible.builtin |
Имя плагина для отключения для операции установки/обновления. Отключенные плагины не сохраняются после транзакции. | |
| disablerepo list / elements=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 list / elements=string добавлен в 2.5 ansible.builtin |
Имя плагина для включения для операции установки/обновления. Включенный плагин не сохраняется после транзакции. | |
| enablerepo list / elements=string добавлен в 0.9 ansible.builtin |
Идентификатор репозитория репозиториев для включения для операции установки/обновления. Эти репозитории не сохраняются после транзакции. При указании нескольких репозиториев разделяйте их с помощью ",".Начиная с Ansible 2.7, это может быть список вместо "," разделенных строкой | |
| exclude list / elements=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 / elements=string | Имя пакета или спецификатор пакета с версией, например name-1.0.Операторы сравнения для версии пакета допустимы здесь >, <, >=, <=. Пример - 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, только обновлять установленные пакеты. Не устанавливать пакеты. Действует только если состояние равно latest
|
| use_backend string добавлен в 2.7 ansible.builtin |
| Этот модуль поддерживает yum (как всегда), это известно как yum3/YUM3/yum-deprecated разработчиками upstream yum. Начиная с 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 Apache >= 2.4
yum:
name: httpd>=2.4
state: present
- 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
- Сет Видаль (@skvidal)
- Эдуард Смесарев (@verm666)
- Беренд Де Шоувер (@berenddeschouwer)
- Абхиджит Касурде (@Akasurde)
- Адам Миллер (@maxamillion)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/yum_module.html