Как перейти с RHEL 6 на сервер RHEL 8
Эта статья создана, чтобы помочь выполнить обновление на месте с системы RHEL 6 до системы RHEL 8. Чтобы быть конкретным, мы будем обновлять RHEL 6.10 до последней версии RHEL, которая на момент написания этой статьи — 8.3. Red Hat Enterprise Linux 6 сейчас находится на этапе «Техническая поддержка 2» жизненного цикла продукта. На этом этапе не планируется наличие новых функций и аппаратного обеспечения. Обновления ограничиваются квалифицированными критическими исправлениями безопасности и неотложными проблемами, влияющими на бизнес.
Подписки Red Hat Enterprise Linux не привязаны к конкретному выпуску операционной системы. Как клиент с активной подпиской, вы можете в любое время бесплатно обновить свою инфраструктуру Red Hat Enterprise Linux 6 до Red Hat Enterprise Linux 7 или 8, чтобы воспользоваться преимуществами последних инноваций в сфере разработки и эксплуатации.
Обновление на месте предлагает способ обновления системы до новой основной версии Red Hat Enterprise Linux путем замены существующей операционной системы. Мы будем выполнять это обновление поэтапно — сначала до RHEL 7, затем с RHEL 7 до RHEL 8.
ДАННОЕ ОБНОВЛЕНИЕ НЕ РЕКОМЕНДУЕТСЯ ДЛЯ ПРОИЗВОДСТВЕННЫХ СИСТЕМ. ЛУЧШЕ УСТАНОВИТЬ НОВЫЙ СЕРВЕР RHEL 8 И ПЕРЕМЕСТИТЬ ПРИЛОЖЕНИЯ. ЭТОТ ПРОЦЕСС ОБНОВЛЕНИЯ МОЖЕТ ВЫПОЛНИТЬ ВАШУ СИСТЕМУ.
Рекомендации и ограничения при обновлении
Ниже приведены общие критерии, которым должна соответствовать система для обновления с RHEL 6 до RHEL 8:
- Архитектура ЦП сервера должна быть Intel 64 или IBM Z.
- Режим FIPS должен быть отключен.
- В системе не должно быть разделов или томов, зашифрованных LUKS.
- Система должна иметь доступ к репозиториям с предоставленным контентом RHEL 6, RHEL 7 и RHEL 8.
Для пользователей, запускающих приложения, не предоставленные Red Hat, вы должны подтвердить, что пакеты будут совместимы с конкретной целевой версией RHEL 8. Зависимости пакетов также должны быть подтверждены, чтобы быть доступными в репозитории, к которому у вас есть доступ, чтобы предотвратить любые зависимости. проблемы, которые могут нарушить работу ваших приложений.
Обновление RHEL 6 до RHEL 8 Server
Это последовательность событий при обновлении на месте с RHEL 6 до RHEL 8.
- Подготовка системы RHEL 6 к обновлению путем обновления до последней версии RHEL 6, которая должна быть 6.10.
- Выполнение оценки перед обновлением в системе RHEL 6, чтобы гарантировать плавное обновление до RHEL 8
- Запуск обновления на месте с RHEL 6.10 до RHEL 7.9
- Подготовка системы RHEL 7 к обновлению до RHEL 8 путем обновления системы RHEL 7 до последней версии RHEL 7 — это 7.9
- Выполнение предварительной оценки RHEL 7 и устранение любых проблем перед обновлением.
- Запуск обновления на месте с RHEL 7.9 до RHEL 8.3.
- Проверить состояние модернизированной системы
Давайте подробно рассмотрим каждый процесс.
Шаг 1. Подготовьте систему RHEL 6 к обновлению до RHEL 7
Подтвердите статус регистрации вашей системы RHEL
$ sudo subscription-manager status
Если нет зарегистрируйтесь и подпишитесь.
sudo subscription-manager register --auto-attach
Убедитесь, что у вас прикреплена подписка Red Hat Enterprise Linux Server:
$ sudo subscription-manager list --installed
Убедитесь, что вы используете последний второстепенный выпуск RHEL 6. Этого можно достичь, обновив систему.
sudo yum -y update
После перезагрузки и обновления.
sudo reboot
Убедитесь, что вы используете последнюю версию или RHEL 6.
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.10 (Santiago)
После перезагрузки системы включите репозиторий Extras, который содержит пакеты preupgrade-assistant, preupgrade-assistant-ui, preupgrade-assistant-el6toel7, preupgrade-assistant-el6toel7-data и redhat-upgrade-tool:
$ sudo subscription-manager repos --enable rhel-6-server-extras-rpms
Repository 'rhel-6-server-extras-rpms' is enabled for this system.
$ sudo subscription-manager repos --enable rhel-6-server-optional-rpms
Repository 'rhel-6-server-optional-rpms' is enabled for this system.
Затем установите необходимые пакеты:
sudo yum -y install redhat-upgrade-tool preupgrade-assistant preupgrade-assistant-el6toel7 preupgrade-assistant-ui
Шаг 2. Выполните оценку системы RHEL 6
Затем мы оцениваем систему на предмет возможных проблем, которые могут возникнуть при обновлении до Red Hat Enterprise Linux 7. Для этой цели используется помощник перед обновлением ( команда preupg ).
Запустите команду preupg, чтобы оценить вашу систему RHEL 6.
sudo preupg
Когда вас спросят, хотите ли вы продолжить, ответьте y.
The Preupgrade Assistant is a diagnostics tool
and does not perform the actual upgrade.
Do you want to continue? [Y/n]
y
Результаты выполненного теста выводятся в стандартный вывод командной строки вместе с его результатом.
....
Gathering logs used by the Preupgrade Assistant:
All installed packages : 01/10 ...finished (time 00:00s)
All changed files : 02/10 ...finished (time 00:47s)
Changed config files : 03/10 ...finished (time 00:00s)
All users : 04/10 ...finished (time 00:00s)
All groups : 05/10 ...finished (time 00:00s)
Service statuses : 06/10 ...finished (time 00:00s)
All installed files : 07/10 ...finished (time 00:02s)
All local files : 08/10 ...finished (time 00:03s)
All executable files : 09/10 ...finished (time 00:00s)
Red Hat signed packages : 10/10 ...finished (time 00:00s)
Assessment of the system, running checks / SCE scripts:
001/140 ...done (Configuration files to be reviewed) (time: 00:02s)
002/140 ...done (File lists for the manual migration) (time: 00:00s)
003/140 ...done (Bacula Backup Software) (time: 00:00s)
004/140 ...done (MySQL configuration) (time: 00:00s)
005/140 ...done (MySQL data stack) (time: 00:00s)
006/140 ...done (Changes related to moving from MySQL to MariaDB) (time: 00:00s)
007/140 ...done (PostgreSQL) (time: 00:00s)
008/140 ...done (GNOME desktop environment) (time: 00:00s)
009/140 ...done (KDE desktop environment) (time: 00:00s)
010/140 ...done (POWER6 processors) (time: 00:00s)
.....
Файл отчета об оценке будет храниться в /root/preupgrade/result.html :
....
|Moving openssh-keycat |needs_inspection |
|Changed configuration files |needs_inspection |
|Changes in utilities |needs_inspection |
|Obsolete RPM packages |needs_inspection |
|httpd |needs_inspection |
|Binaries to be rebuilt |needs_inspection |
|Libraries with their soname bumped |needs_inspection |
|Removed .so libraries |needs_inspection |
|Ethernet interface naming |needs_inspection |
|Python packages |needs_inspection |
|Repositories for Kickstart |needs_inspection |
|Incorrect usage of reserved UIDs and GIDs |needs_inspection |
|Configuration files to be reviewed |needs_action |
|MySQL configuration |needs_action |
|Packages not signed by Red Hat |needs_action |
|Removed RPM packages |needs_action |
|"not-base" channels |needs_action |
|Removing sandbox from SELinux |needs_action |
|GRUB to GRUB 2 migration |needs_action |
|Enabled and disabled services in Red Hat Enterprise Linux 6 |needs_action |
|The /etc/rc.local and /etc/rc.d/rc.local files |needs_action |
|The cgroups configuration compatibility |needs_action |
|GNOME desktop environment |fail |
-------------------------------------------------------------------------------------------------------------------
The tarball with results is stored in '/root/preupgrade-results/preupg_results-210129180616.tar.gz' .
The latest assessment is stored in the '/root/preupgrade' directory.
Summary information:
We have found some critical issues. In-place upgrade or migration is not advised.
Read the file /root/preupgrade/result.html for more details.
Please ensure you have backed up your system and/or data
before doing a system upgrade to prevent loss of data in
case the upgrade fails and full re-install of the system
from installation media is needed.
Upload results to UI by the command:
e.g. preupg -u http://example.com:8099/submit/ -r /root/preupgrade-results/preupg_results-210129180616.tar.gz .
Отчет можно просмотреть в веб-браузере.
sudo firefox file:///root/preupgrade/result.html
Чтобы просмотреть обнаруженные ЧРЕЗВЫЧАЙНЫЕ риски обновления, используйте команду
sudo preupg --riskcheck --verbose
Прежде чем переходить к следующему этапу, устраните все проблемы, обнаруженные помощником по подготовке к обновлению во время оценки.
Шаг 3. Обновите RHEL 6 до RHEL 7
Перед выполнением обновления вашей системы с помощью Red Hat Upgrade Tool убедитесь, что вы сделали резервную копию всех своих данных, чтобы избежать возможной потери данных.
Войдите на портал загрузок Red Hat и загрузите RHEL 7 DVD ISO. Мы будем использовать его в качестве установочного носителя во время обновления.
Вот расположение моего файла.
Сделайте резервную копию нескольких важных файлов конфигурации.
sudo mkdir /root/backups
sudo cp /etc/{shadow,gshadow} /root/backups
sudo cp /etc/grub.conf /root/backups
Запустите инструмент redhat-upgrade-tool, чтобы загрузить пакеты, необходимые для обновления до RHEL 7.
Чтобы обновить систему с помощью образа ISO, укажите путь к образу ISO после параметра --iso
.
sudo redhat-upgrade-tool --iso ~/rhel-server-7.9-x86_64-dvd.iso
Для завершения установки необходимо перезагрузить систему.
sudo reboot
Убедитесь, что система обновлена до RHEL 7:
$ cat /etc/redhat-release
Если ваша система RHEL 6 имела надлежащую регистрацию и подписку на RHSM, процесс обновления должен был автоматически привести к повторной подписке на RHEL 7.
$ sudo yum repolist
Обновление с GRUB Legacy до GRUB 2:
sudo yum remove grub
sudo yum install grub2
Проверьте свое загрузочное устройство:
$ sudo lsblk
Сгенерируйте конфигурации grub2.
sudo grub2-install --grub-setup=/bin/true /dev/device
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Шаг 4. Обновите RHEL 7 до RHEL 8
Включите базовые, дополнительные и дополнительные репозитории:
sudo subscription-manager repos --enable rhel-7-server-rpms
sudo subscription-manager repos --enable rhel-7-server-extras-rpms
sudo subscription-manager repos --enable rhel-7-server-optional-rpms
Настройте диспетчер подписки Red Hat на использование последнего содержимого RHEL 7:
sudo subscription-manager release --unset
Очистить блокировку пакета
sudo yum versionlock clear
Убедитесь, что у вас установлен языковой стандарт системы en_US.UTF-8:
$ cat /etc/locale.conf
Обновите все пакеты до последней версии RHEL 7:
sudo yum update
sudo reboot
Установите утилиту Leapp:
sudo yum install leapp leapp-repository
Загрузите дополнительные необходимые файлы данных (изменения пакетов RPM и сопоставление репозиториев RPM), прикрепленные к статье базы знаний. Данные, необходимые утилите Leapp для обновления на месте с RHEL 7 до RHEL 8, и поместите их в /etc/leapp/files/
каталог.
Выполните этап перед обновлением:
sudo leapp preupgrade
Вручную отредактируйте /var/log/leapp/answerfile
файл, раскомментируйте confirm
строку файла, удалив #
символ, и подтвердите свой ответ как True
или False
. Также изучите отчет в файле /var/log/leapp/leapp-report.txt и устраните все обнаруженные проблемы, прежде чем приступить к обновлению на месте с RHEL 7 до RHEL 8.
Запустите процесс обновления:
sudo leapp upgrade
После обновления перезагрузите систему:
sudo reboot
Убедитесь, что текущая версия ОС — Red Hat Enterprise Linux 8:
$ cat /etc/redhat-release
Проверить список продуктов и версию выпуска
$ sudo subscription-manager list --installed
$ sudo subscription-manager release
Отключите диспетчер подписки Red Hat для использования последнего содержимого RHEL:
sudo subscription-manager release --unset
Обновите до последней версии RHEL.
sudo yum update
Перезагрузить систему.
sudo reboot
Если вам повезет, у вас должна быть обновленная рабочая система RHEL 8 с RHEL 6. Как было сказано ранее, мы настоятельно рекомендуем новую установку RHEL 8 и планирование миграции приложений вместо двухэтапного процесса обновления на месте. Многие вещи могут пойти не так, что приведет к невозможности загрузки системы. Будьте осторожны при выполнении операций, описанных в этой статье.