Spec-Zone.ru › Ansible 2.11

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
  • absent
  • installed
  • latest
  • present
  • removed
Установить (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
    Варианты:
  • auto ←
  • yum
  • yum4
  • dnf
Этот модуль поддерживает yum (как всегда), это известно как yum3/YUM3/yum-deprecated разработчиками upstream yum. Начиная с Ansible 2.7+, этот модуль также поддерживает YUM4, что является "новым yum", и он имеет dnf бэкенд.
По умолчанию, этот модуль выберет бэкенд на основе ansible_pkg_mgr факта.
validate_certs
boolean
добавлен в 2.1 ansible.builtin
    Варианты:
  • no
  • да ←
Это применимо только при использовании 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API