Прекращение поддержки CentOS 8 и переход к модели непрерывных обновлений в CentOS Stream заставили корпоративных заказчиков искать альтернативные решения. Мы написали пошаговую инструкцию по переходу на RockyLinux или AlmaLinux — популярные бесплатные дистрибутивы, бинарно совместимые с RedHat Enterprise Linux (RHEL).
![](https://habrastorage.org/getpro/habr/upload_files/cab/2c6/343/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.
В ином случае возникнет ошибка:
![](https://habrastorage.org/getpro/habr/upload_files/16c/986/bf3/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
Ниже показан пример предварительной проверки перед миграцией. Проблем с зависимостями пакетов и версией операционной системы не возникает:
![](https://habrastorage.org/getpro/habr/upload_files/ed2/cb4/030/ed2cb4030dc3077aaa863c0e8ae7558f.png)
Шаг 7. Завершите установку и перезагрузите компьютер
В случае успешной установки появится следующее сообщение:
AlmaLinux:
![](https://habrastorage.org/getpro/habr/upload_files/0e5/ead/53b/0e5ead53b36c3b83f55ed744882def2e.png)
RockyLinux:
![](https://habrastorage.org/getpro/habr/upload_files/3b0/d5d/e51/3b0d5de513e871fcd88f538133fc51ba.png)
После завершения установки следует перезагрузить систему командой reboot. В случае успешной миграции новый дистрибутив будет присутствовать в списке на этапе загрузки системы и выбора ядра.
AlmaLinux:
![](https://habrastorage.org/getpro/habr/upload_files/a76/2d7/4b1/a762d74b1ebc87886c207ba4e03af57c.jpeg)
RockyLinux:
![](https://habrastorage.org/getpro/habr/upload_files/f1d/b27/3da/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 всегда поможем с бесшовной миграцией, переездом и любым необходимым обслуживанием. Например, в Нидерландах можно арендовать стойки вместе с с полным комплексом услуг по поддержке вашей ИТ-инфраструктуры. Даже из России, ведь наши специалисты все сделают сами. А платить за услуги по-прежнему можно в рублях.