Прекращение поддержки CentOS 8 и переход к модели непрерывных обновлений в CentOS Stream заставили корпоративных заказчиков искать альтернативные решения. Мы написали пошаговую инструкцию по переходу на RockyLinux или AlmaLinux — популярные бесплатные дистрибутивы, бинарно совместимые с RedHat Enterprise Linux (RHEL).
Системы с коротким жизненным циклом или развивающиеся по модели 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.
В ином случае возникнет ошибка:
Шаг 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
Ниже показан пример предварительной проверки перед миграцией. Проблем с зависимостями пакетов и версией операционной системы не возникает:
Шаг 7. Завершите установку и перезагрузите компьютер
В случае успешной установки появится следующее сообщение:
AlmaLinux:
RockyLinux:
После завершения установки следует перезагрузить систему командой reboot. В случае успешной миграции новый дистрибутив будет присутствовать в списке на этапе загрузки системы и выбора ядра.
AlmaLinux:
RockyLinux:
Шаг 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 всегда поможем с бесшовной миграцией, переездом и любым необходимым обслуживанием. Например, в Нидерландах можно арендовать стойки вместе с с полным комплексом услуг по поддержке вашей ИТ-инфраструктуры. Даже из России, ведь наши специалисты все сделают сами. А платить за услуги по-прежнему можно в рублях.
Комментарии (19)
sden77
02.05.2022 08:05+1Уже год как на домашнем сервере переешел с Centos на Oracle - пока впечатления сугубо положительные, вернее ничем не отличаются от таковых на Centos
13oz
02.05.2022 10:05+3Что вполне ожидаемо, т.к. оракел вообще ничего не делает, просто меняет название дистрибутива и релиза.
13werwolf13
04.05.2022 10:46не только, по дефолту у них идёт своё анбрекабл ядро, и вот с ним есть нюансы. не все драйвера работают (например интел челсио сетёвки).
Kirikekeks
02.05.2022 08:37-2А РЭД ОС почему забыли? Если брать документацию к дистрибутиву- то одна из самых грамотных по Шляпе. Грамотная документация- грамотные мэйнтейнеры и дистрибьютеры. В выше перечисленных близко нет. А с точки зрения версий- по мне что мезозой, что палеолит, без разницы. Если цель смены - "что бы не читать и не думать" так ставьте винду, и крякайте. Разницы нет.
udarnik386
02.05.2022 14:37+1Не забыли, здесь речь о конкретном кейсе, в котором нужна бинарная совместимость. То-есть, если вам буквально нужен RHEL, но без инфраструктуры редхат, то выбор ограничен. "Забыли", в этом контексте, разве что Oracle Linux.
В остальном, каждый самостоятельный настоящий дистрибутив, в котором не просто "обои от убунты поменяли", а действительно проделали инженерную работу, интересен. В том числе и РЕД ОС.
13oz
02.05.2022 10:04Но зачем?..
zorn-v
02.05.2022 17:13+1Булка хлеба + Троллейбус.jpg
Но вообще, ынтерпрайз показал свое литсо (россия иди нахуй).
IBM (текущий владелец RedHat) в их числе.
Так что очевидно, чтобы не зависеть.
13oz
02.05.2022 18:59Что, кто-то запретил пользоваться центосью? А федору, федору-то не запретили еще?
zorn_v
03.05.2022 16:28Ну это мы, обычные пользователи, все знаем и можем мигрировать без проблем.
А конторы которые подписались на поддержку редхат какбе в пролете.
ЗЫ: Я вообще дебианщик )
13oz
03.05.2022 21:26А конторы которые подписались на поддержку редхат какбе в пролете.
Интересно, а это-то тут при чем? На центось никакая поддержка не распространяется
Holser
03.05.2022 09:45Бесплатный сыр только в мышеловке. Предлагать ставить бинарно совместимый дистрибутив энтерпрайсу это то же самое, что предлагать купить копию мерседеса собранную в гараже. При любой мало мальской проблеме решение будут искать на сайте RedHat, и звонить в тех. поддержку RedHat. Я вот уже представляю как создатели Alma или Rocky выпускают решения для закрытия CVE типа Spectre. Есть дистрибутив RHEL, который ценен именно своей поддержкой.
ULP
03.05.2022 11:01+2мне всегда было интересно - кто-нибудь звонил в поддержку Redhat? Или это как обычно разговор по кругу с 5 индусами ни о чем с обещаниями обязательно посмотреть и пустой 999% тратой времени своего админа на всякую ерунду (microsoft style)?
krids
04.05.2022 18:16В моем случае если вдруг индус обрабатываваший критичный кейс начинал подтупливать, то сразу звонил местному российскому аккаунт-менеджеру и через пару-тройку часов в кейс приходил или более правильный индус или "Джон из Техаса". Правда это premium-support, специфический солюшен и заказчик на "особом счету".
litos
Кстати, у кого есть опыт использовать CentOS 8 Stream? Сильно при этом система становятся нестабильной? Ведь в нём пакеты появляются просто раньше чем в RHEL8, но как бы сама ОС это уже и так достаточно старые версии проверенные временем, хотя сломать тем более в тестовом полигоне можно всё что угодно. Сложно ли перейти на него с CentOS 8?
Просто может быть есть кейсы, когда вполне можно не менять дистрибутив, а остаться на продукте от RedHat, но несколько пожертвовав стабильностью (опять же если обновлять сначала тестовый контур, а потом прод, да и при наличии опыта решение проблем с данной ОС риск простоя также можно минимизировать)
skywalk7
Нет, не сильно. Были проблемы один раз с драйверами от Nvidia - kernel panic. Если ничего специфического (топовые сетевухи, райд контроллеры и прочее) нет, то волноваться не надо. Да и на дорогих системах все равно надо сидеть на поддерживаемых дистрибутивах, а не экономить 3 копейки.
Вообще нет - поменять репозитории и сделать distro-sync
Смысла переходить на новые непроверенные дистрибутивы нет.
ZlobniyShurik
Возможно, это мне так не повезло или просто руки кривые. В общем, я попытался использовать CentOS 8 Stream на паре десятков домашних виртуалок (почтовик, базы данных, сайт, мониторинг, e.t.c.). Точнее, пропустил момент, когда просто CentOS 8 мутировал в Stream.
Так вот, если раньше всё апдейтилось автоматом и требовало ручного вмешательства где-то раз в год на виртуалку (какой-то пакет с другим конфликтовать начал, права слетели, e.t.c.), то на стриме приходилось вмешиваться чуть ли не раз в пару недель на некоторых из виртуалок. Что мне очень сильно не понравилось - привык, понимаешь ли, что оно всё на автопилоте пашет годами.
В общем, не поленился, перенёс всё на Alma Linux (Rocky тогда ещё не вышел). Причём поставил с нуля, благо, все конфиги/настройки забэкаплены и тщательно документированы.
Итог - оно всё снова просто работает и моих вмешательств не требует, апдейты качаются и ставятся автоматом (да, я осознаю риск).
13oz
Тебе нужны причины для того, что бы остаться на нормальном дистре, а переход под крыло copycats - это дефолт? Нуок.