leapp
ansible-leapp
Эта роль Ansible пытается выполнить автоматическое обновление на месте для систем на базе EL, преимущественно Red Hat Enterprise Linux.
Она выполняет следующие основные задачи:
- Проверка предварительных условий и требований
- Подготовка системы к обновлению
- Генерация отчета о предстоящем обновлении
- Устранение общих проблем при обновлении (по умолчанию отключено)
- Выполнение обновления (по умолчанию отключено)
- Проверка состояния после обновления (по умолчанию отключено)
По умолчанию эта роль не выполнит фактическое обновление. Она предназначена для подготовки системы и генерации отчета о предстоящем обновлении, который должен быть рассмотрен. Если вы хотите рискнуть, вы можете также попробовать выполнить обновление.
TODO
- Реализовать проверку после обновления (tasks/verify.yml)
Ссылки
Я использовал следующие документы в качестве справки:
- https://developers.redhat.com/products/rhel/download
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/upgrading_from_rhel_7_to_rhel_8/index
- https://www.redhat.com/en/blog/upgrading-rhel-7-rhel-8-leapp-and-boom
- https://access.redhat.com/articles/4263361
- https://access.redhat.com/articles/3664871
Переменные роли
Переменные, которые изменяют поведение этой роли, объявлены в defaults/main.yml
# Укажите список идентификаторов репозиториев, которые существуют в /etc/yum.repos.d
# По умолчанию []
leapp_custom_repositories: []
# Укажите устройство grub, обычно не требуется для большинства установок
leapp_grub_device: '/boot'
# Пропустить Red Hat Subscription Manager? По умолчанию нет
leapp_skip_rhsm: no
# Пропустить проверку предварительных условий? По умолчанию нет
leapp_skip_validate: no
# Пропустить подготовительные задачи? По умолчанию нет
leapp_skip_prepare: no
# Пропустить установку cockpit? По умолчанию нет
leapp_skip_prepare_cockpit_install: no
# Пропустить установку пакетов? По умолчанию нет
leapp_skip_prepare_package_install: no
# Пропустить фактические обновления пакетов? По умолчанию да
leapp_skip_prepare_update: yes
# Пропустить перезагрузку после изменений в обновлениях пакетов? По умолчанию нет
leapp_skip_prepare_update_reboot: no
# Пропустить leapp предустановку? По умолчанию да
leapp_skip_preupgrade: yes
# Пропустить удаление предыдущих отчетов? По умолчанию нет
leapp_skip_preupgrade_cleanup: no
# Пропустить устранение общих проблем? По умолчанию да
leapp_skip_remediate: yes
# Пропустить фактическое обновление leapp? По умолчанию да
leapp_skip_upgrade: yes
# Как долго ждать (в секундах) перезагрузки после обновления? По умолчанию 1200
leapp_reboot_timeout: 1200
Зависимости
Для использования этой роли нет зависимостей, однако эта роль предполагает, что у вас реализована стандартная рабочая среда, которая предоставляет:
- Red Hat Enterprise Linux 7
- Система с правами, предоставленными RHSM или Satellite
- Конфигурированные и включенные репозитории для последних обновлений, в частности для
rhel-7-server-rpms
иrhel-7-server-extras-rpms
Кроме того, вы должны скачать дополнительные необходимые файлы данных (изменения пакетов RPM и отображение репозиториев RPM), прикрепленные к Статье базы знаний, и поместить их в директорию 'files' в той же директории, что и плейбук с этой ролью.
Пример плейбука
Следующий плейбук выполняет стандартные действия до фактического обновления:
---
- name: Выполнить обновление системы EL на месте
hosts: all
become: yes
vars:
# Укажите список идентификаторов репозиториев, которые существуют в /etc/yum.repos.d
# По умолчанию []
leapp_custom_repositories: []
# Пропустить Red Hat Subscription Manager? По умолчанию нет
leapp_skip_rhsm: no
# Пропустить проверку предварительных условий? По умолчанию нет
leapp_skip_validate: no
# Пропустить подготовительные задачи? По умолчанию нет
leapp_skip_prepare: no
# Пропустить установку cockpit? По умолчанию нет
leapp_skip_prepare_cockpit_install: no
# Пропустить установку пакетов? По умолчанию нет
leapp_skip_prepare_package_install: no
# Пропустить фактические обновления пакетов? По умолчанию да
leapp_skip_prepare_update: yes
# Пропустить leapp предустановку? По умолчанию нет
leapp_skip_preupgrade: no
# Пропустить удаление предыдущих отчетов? По умолчению нет
leapp_skip_preupgrade_cleanup: no
# Пропустить фактическое обновление leapp? По умолчанию да
leapp_skip_upgrade: yes
# Как долго ждать (в секундах) перезагрузки после обновления? По умолчанию 1200
leapp_reboot_timeout: 1200
roles:
- mrjoshuap.leapp
Лицензия
GPL-2.0-or-later
Информация об авторе
Джошуа Престон — архитектор решений в компании Red Hat, специализирующийся на платформах и технологиях управления.
An Ansible role that attempts an inplace upgrade of EL7 to EL8 using LEAPP
ansible-galaxy install mrjoshuap/ansible-leapp