Миграция с CentOS 8 на RHEL 8

Эта статья является инструкцией, с помощью которой вы сможете преобразовать ваш сервер с CentOS 8 на RHEL 8.

· 4 минуты на чтение

Если вы используете CentOS 8, то скорее всего заметили, что с 31 января 2022 года установка пакетов с помощью yum больше не работает, в консоль выводится ошибка:

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
⚠️
Та же проблема может возникнуть, если вы используете образы контейнеров Docker на основе centos:8.

Что случилось? Почему еще "вчера" все работало нормально? 31 января 2022 года команда CentOS окончательно удалила все пакеты для CentOS 8 с официальных зеркал. Срок службы CentOS 8 истек 31 декабря 2021 года, но пакеты какое-то время хранились на официальных зеркалах. Теперь они перенесены на домен https://vault.centos.org.

Правильным способом решения этой проблемы был бы переход на любой другой дистрибутив Linux, который еще поддерживается. Но что, если вы не можете себе этого позволить?

Если вам все еще нужно запустить старую CentOS 8, вы можете обновить репозитории в /etc/yum.repos.d, чтобы использовать vault.centos.org вместо mirror.centos.org. Вот две простые команды для этого sudo:

sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

Они заменяют базовый URL-адрес тем, который все еще работает.

Это должно решить проблему на некоторое время, но имейте в виду, что вы больше не будете получать никаких обновлений для CentOS 8. В долгосрочной перспективе вам необходимо мигрировать свой сервер на другой дестребутив.

Поэтому рассмотрим способ, с помощью которого вы можете мигрировать свой сервер на RHEL 8.

Спонсор поста

Миграция на RHEL

🔙
Обязательно сделайте бэкап вышей системы перед началом

Red Hat Enterprise Linux — дистрибутив Linux компании Red Hat. Данный дистрибутив позиционируется для корпоративного использования. Новые версии выходят с периодичностью около 3 лет. Основная особенность дистрибутива — наличие коммерческой поддержки на протяжении 10 лет, с возможностью продления до 13 лет.

Не смотря на то, что это корпоративное решение, вы можете использовать его совершенно бесплатно на 16 серверах. Если у вас не более 16 серверов, то рекомендую использовать этот дистрибутив. Если больше, то посмотрите в сторону Debian 10.

У меня несколько серверов для моих блогов, поэтому я выбрал переход на RHEL

Чтобы использовать RHEL у вас должен быть аккаунт в RedHat. Необходимо зарегистрировать его, если его у вас еще нет.

Сначала мы выполняем предыдущие команды, чтобы получить доступ к старым репозиториям, так как нам нужно будет скачать официальный пакет convert2rhel для миграции.

sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

Как я уже сказал, мы будем использовать Convert2rhel — это служебный инструмент преобразования нашей системы CentOS 8 в RHEL 8. Сначала загрузите ключ RedHat GPG.

sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txt

Загрузите сертификат SSL для сервера, содержащего репозиторий Convert2RHEL.

sudo curl --create-dirs -o /etc/rhsm/ca/redhat-uep.pem https://ftp.redhat.com/redhat/convert2rhel/redhat-uep.pem

Теперь добавьте репозитории Convert2RHEL YUM в CentOS 8.

sudo curl -o /etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/8/convert2rhel.repo

Наконец, мы готовы установить Convert2RHEL в нашей системе CentOS 8 с помощью приведенной ниже команды yum.

sudo yum -y install convert2rhel
ℹ️
Поскольку Convert2rhel написан на python, Python будет автоматически установлен.

Обновите пакеты CentOS 8 до последних возможных стабильных версий.

yum update

После обновления проверьте обновленную версию CentOS.

$ cat /etc/centos-release
CentOS Linux release 8.5.2111

Проверьте версию ядра.

$ uname -r 
4.18.0-348.7.1.el8_5.x86_64

Перезагрузите систему и продолжите работу с привилегиями root.

⚠️
Убедитесь, что у вас на сервере достаточно свободного места. Думаю 10 гигабайт должно хватить.

Преобразование с идентификатором организации и ключом активации

Если у вас есть идентификатор организации и ключ активации, вы преобразуете свою систему CentOS 8 в RHEL 8 с помощью команды с приведенным ниже синтаксисом.

sudo convert2rhel --org organization_ID --activationkey activation_key

Это не самый удобный вариант для личного использования. Куда удобнее просто использовать логин и пароль.

Преобразование с логином и паролем

Для тех, кто использует эту опцию, синтаксис команды показан ниже.

sudo convert2rhel --auto-attach --username=USERNAME --password='PASSWORD'

В этой команде замените USERNAME именем пользователя вашей учетной записи RedHat, PASSWORD — паролем вашей учетной записи RedHat.

Для целей этого руководства я буду использовать второй вариант, где я укажу имя пользователя без пароля.

sudo convert2rhel --username USERNAME

Независимо от того, какой метод используется, этот или с идентификатором организации, процесс будет продолжаться, как описано ниже.

Дальше утилита сверит все пакеты, которые у вас есть, и которые будут в RHEL и преобразует их, вам остается только внимательно читать и соглашаться со всеми предложениями.

После уточнения всех деталей по пакетам, вам необходимо будет ввести логин и пароль от RedHat аккаунта.

Далее вам предложат выбрать тип подписки из двух вариантов: индивидуальная подписка RedHat или бета доступ. Выбираем индивидуальную подписку: 1.

Затем система выполнит окончательную проверку системы перед началом преобразования.

Сядьте поудобнее и дождитесь завершения процесса преобразования. После этого вы увидите это.

После успешного преобразования перезагрузите систему.

sudo reboot now

Заключение

Вот и все, мы преобразовали нашу систему с CentOS 8 на RHEL 8. Когда система перезагрузится, подтвердите, что ваша система работает под управлением RedHat Enterprise Linux 8, как показано ниже.

$ cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.5 (Ootpa)

Это доказывает, что мы успешно перенесли нашу CentOS 8 на RHEL 8. Я без проблем перенес 2 сервера за 15 минут каждый.

Struchkov Mark
Struchkov Mark
Задавайте вопросы, если что-то осталось не понятным👇