10 простых шагов: мигрируем с CentOS 8 на RockyLinux или AlmaLinux

Прекращение поддержки CentOS 8 и переход к модели непрерывных обновлений в CentOS Stream заставили корпоративных заказчиков искать альтернативные решения. Мы написали пошаговую инструкцию по переходу на RockyLinux или AlmaLinux — популярные бесплатные дистрибутивы, бинарно совместимые с RedHat Enterprise Linux (RHEL).

cab2c63437a00f39466929091e45713d.jpg

Системы с коротким жизненным циклом или развивающиеся по модели rolling release непригодны для создания развитой корпоративной инфраструктуры: в них слишком многое может пойти не так после очередного обновления. Помимо CentOS существуют и другие дистрибутивы Linux с длительной поддержкой (к примеру, Ubuntu Server LTS), но миграция на них потребует серьезных трудозатрат. Если у вас много физических и виртуальных машин, лучше выбрать бинарно совместимое с RHEL решение, чтобы переход с CentOS 8 оказался простым и безболезненным. 

Мы остановились на бесплатных серверных дистрибутивах AlmaLinux и RockyLinux: первый создан компанией CloudLinux, а второй развивает создатель CentOS Грегори Курцер вместе с сообществом разработчиков. Поддерживать их планируют в течение 10 лет, т.е. весь цикл разработки оригинального RHEL 8.

Полная бинарная совместимость означает, что установленные в CentOS 8 или RHEL 8 прикладные программы продолжат работать на AlmaLinux и Rocky Linux без изменений — это отличная альтернатива, если вы не хотите платить за поддержку RedHat, в которую, напомним, входит и получение бинарных обновлений (бесплатно распространяются только исходные тексты). Ниже представлен вариант миграции, использующийся в компании HOSTKEY.

Шаг 1. Выполните резервное копирование

Перед началом миграции лучше сделать резервную копированию всего сервера или хотя бы важных каталогов. В отлаженных инфраструктурах процесс автоматизирован (есть рабочие процедуры Backup & Deploy), но во время миграции на другой дистрибутив стоит соблюдать максимальную осторожность.

Шаг 2. Проверьте соответствие версий

Перед запуском скрипта миграции следует проверить версию CentOS, которая должна быть не ниже 8.3. В противном случае придется прописать адреса зеркал с пакетами для обновления и выполнить команду dnf update -y (образы CentOS можно скачать по ссылке). Система обновится до версии CentOS Linux release 8.5.2111.

В ином случае возникнет ошибка:

16c986bf3512ca2af7308124b37a61d8.png

Шаг 3. Добавьте зеркала, если ваша система младше CentOS 8.3

Если вы давно не обновляли ОС, необходимо добавить архивные зеркала для CentOS 8, используя следующие команды:

AlmaLinux:

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-*

RockyLinux:

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-*

Шаг 4. Скачайте скрипт для миграции

AlmaLinux:

cd /tmp
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh

RockyLinux:

cd /tmp
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh

Шаг 5. Предоставьте скрипту права на выполнение (execute)

AlmaLinux:

chmod +x almalinux-deploy.sh 

RockyLinux:

chmod +x migrate2rocky.sh

Шаг 6. Запустите скрипт загрузки и установки пакетов

AlmaLinux:

sudo bash almalinux-deploy.sh

RockyLinux:

sudo bash migrate2rocky.sh -r 

Ниже показан пример предварительной проверки перед миграцией. Проблем с зависимостями пакетов и версией операционной системы не возникает:

ed2cb4030dc3077aaa863c0e8ae7558f.png

Шаг 7. Завершите установку и перезагрузите компьютер

В случае успешной установки появится следующее сообщение:

AlmaLinux:

0e5ead53b36c3b83f55ed744882def2e.png

RockyLinux:

3b0d5de513e871fcd88f538133fc51ba.png

После завершения установки следует перезагрузить систему командой reboot. В случае успешной миграции новый дистрибутив будет присутствовать в списке на этапе загрузки системы и выбора ядра.

AlmaLinux:

a762d74b1ebc87886c207ba4e03af57c.jpeg

RockyLinux:

f1db273dae1e89d8dc89ba5845303c8f.jpeg

Шаг 8. Проверьте отсутствие ошибок

После перезагрузки системы необходимо проверить отсутствие ошибок, а также наименование и версию системы:

cat /etc/redhat-release #позволяет проверить переход на AlmaLinux и RockyLinux
dmesg #проверка аппаратных ошибок
journalctl #ошибки в системе

Шаг 9. Проверьте работу сервисов

После завершения миграции стоит проверить корректность работы всех настроенных сервисов и установленного прикладного ПО. Обычно сбоев не возникает, но могут быть исключения.

Шаг 10. Дополнительные действия для Rocky Linux

Если переносится система с графическим интерфейсом, то при миграции с CentOS на Rocky Linux могут возникнуть проблемы (скрипт Alma более надежен). В процессе выполнения сценария возможны проблемы с установкой пакетов, при этом старые пакеты CentOS будут испорчены. 

Необходимо проверить версию системы указанными ниже командами:

cat /etc/os-release
cat /etc/redhat-release

Если возникла ошибка, будет выведено сообщение:

Unable to detect release version (use '--releasever' to specify release version

Аналогичное сообщение вы получите при попытке выполнить команду:

dnf makecache & dnf update

Решить проблему поможет частичный откат системы CentOS с установкой пакетов из архивного зеркала vault. Необходимо скачивать пакеты установленной у вас версии дистрибутива (см. Шаг 2). В нашем случае использовалась CentOS version 8.5.2111. 

Выполните следующую последовательность команд:

cd /tmp
wget https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-linux-release-8.5-1.2111.el8.noarch.rpm
wget https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-linux-repos-8-3.el8.noarch.rpm
wget https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-3.el8.noarch.rpm
rpm -ivh ./centos-gpg-keys-8-3.el8.noarch.rpm  --force
rpm -ivh ./centos-linux-release-8.5-1.2111.el8.noarch.rpm ./centos-linux-repos-8-3.el8.noarch.rpm --force

Перед выполнением скрипта миграции предварительно установите все зависимости. Мы получили список из 6 проблемных пакетов:

Error: Check discovered 6 problem(s)
anaconda-gui-33.16.5.6-1.el8.x86_64 has missing requires of system-logos
firefox-91.4.0-1.el8_5.x86_64 has missing requires of redhat-indexhtml
gdm-1:40.0-15.el8.x86_64 has missing requires of system-logos
gnome-session-3.28.1-13.el8.x86_64 has missing requires of system-backgrounds
gnome-session-3.28.1-13.el8.x86_64 has missing requires of system-logos
plymouth-graphics-libs-0.9.4-10.20200615git1e36e30.el8.x86_64 has missing requires of system-logos

Пришлось установить 3 пакета:

yum install system-logos
yum install system-backgrounds
yum install redhat-indexhtml

После выполнения указанных действий по устранению проблем с зависимостями необходимо повторить процедуру начиная с Шага 6.

Выводы

Процесс  миграции с CentOS 8 на AlmaLinux не требует значительных затрат времени, а также позволяет получить стабильную ОС без изменений инфраструктуры. При переходе на Rocky Linux могут возникнуть легко разрешимые проблемы. Оба дистрибутива-клона основаны на свободно распространяемых исходных текстах RHEL 8, а все отличие между ними сводится к поддержке. Наличие корпоративного разработчика AlmaLinux может насторожить часть сообщества, несмотря на заверения представителей CloudLinux в независимости проекта.

_______

Кстати, при размещении ваших серверов в дата-центрах Москвы или Западной Европы мы в HOSTKEY всегда поможем с бесшовной миграцией, переездом и любым необходимым обслуживанием. Например, в Нидерландах можно арендовать стойки вместе с с полным комплексом услуг по поддержке вашей ИТ-инфраструктуры. Даже из России, ведь наши специалисты все сделают сами. А платить за услуги по-прежнему можно в рублях.

© Habrahabr.ru