Перейти к основному контенту

Миграция с CentOS 7 на AlmaLinux 8

intro-Migrating-CentOS7-to-AlmaLinux8-planetahost.png

Подробности урока

Уровень сложности Высокая
Права root Требуются
Требования Терминал Linux, VNC/IPMI
Категория Обновление/Миграция
Совместимость с ОС CentOS 7
Примерное время чтения 1-2 часа

Введение

Начиная с 30 июня 2024 года, операционная система CentOS 7 официально достигла конца срока поддержки (EOL, End of Life). Это означает, что она больше не получает обновления, исправления ошибок, критические патчи безопасности и новые функции. Использование CentOS 7 после этой даты создаёт серьёзные риски для безопасности и стабильности системы.

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

Почему стоить выбрать именно AlmaLinux:

  • корпоративный Linux-дистрибутив, управляемый сообществом;
  • бинарно совместим с Red Hat Enterprise Linux (RHEL);
  • бесплатный и с открытым исходным кодом;
  • максимально близок по окружению и логике работы к CentOS.

В этой инструкции рассматривается процесс миграции с CentOS 7 на AlmaLinux 8.

Эту инструкцию необходимо читать полностью, от начала до конца. Пропуск шагов или выборочное выполнение команд может привести к потере данных, сбою системы или остановке сервисов. Все действия выполняются на ваш страх и риск. Автор и третьи лица не несут ответственности за любые последствия, включая повреждение системы или потерю данных. Перед началом убедитесь, что у вас есть актуальные резервные копии всех данных и конфигураций. Использование инструкций предполагает наличие знаний администратора Linux, и выполнение команд без понимания их последствий полностью ложится на вас.

Шаг 1: Резервное копирование данных

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

Рекомендуется хранить резервные копии:

  • на отдельном диске;

  • на внешнем носителе;

  • на удалённом сервере резервного копирования.

Рекомендуемый список данных для резервного копирования:

  • Конфигурационные файлы системы (/etc)

  • Данные пользователей (/home)

  • Данные приложений
    (базы данных, файлы веб-сайтов, данные CMS и т.д.)

  • Пользовательские скрипты и задания cron

  • Конфигурации сервисов

  • Список установленных пакетов

  • Важные журналы логов (/var/log)

  • SSH-ключи и конфигурация SSH

  • Пользовательские сетевые настройки

  • Виртуальные хосты и контейнеры

  • Конфигурация почтового сервера

  • Настройки файрвола и системы безопасности

Чем полнее будет резервная копия, тем проще и быстрее будет восстановление системы при необходимости.

Шаг 2: Миграция

Перед началом миграции необходимо убедиться, что система CentOS 7 полностью обновлена и использует актуальное ядро. Это снижает риск ошибок и конфликтов пакетов во время перехода на AlmaLinux.

Обновление системы CentOS 7

Для начала убедимся, что на сервере действительно установлена CentOS 7.

Выполните команду:

cat /etc/centos-release

В выводе должно быть указано что-то вроде:

изображение.png

Если версия отличается, не продолжайте миграцию, так как данная инструкция предназначена именно для CentOS 7.

Перейдем к обновлению всех пакетов до последних

1. Сделать резервную копию репозиториев (обязательно)

sudo mkdir -p /root/centos-repo-backup
sudo cp -a /etc/yum.repos.d/*.repo /root/centos-repo-backup/

2. Отключить mirrorlist и указать vault.centos.org

Отредактируйте все repo-файлы CentOS:

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

Обратите внимание: используется именно vault.centos.org, а не mirror.centos.org.

3. Очистить кэш yum

sudo yum clean all
sudo yum makecache

4. Повторить обновление системы

sudo yum update -y

Если всё сделано правильно, обновление начнётся без ошибок.

изображение.png

 Во время выполнения обновления не прерывайте процесс и дождитесь его полного завершения.

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

reboot

Установка репозитория EPEL

Для корректного выполнения процесса миграции требуется наличие репозитория EPEL (Extra Packages for Enterprise Linux). В нём содержатся дополнительные пакеты, которые могут понадобиться во время обновления и перехода на AlmaLinux.

sudo yum install epel-release -y

изображение.png

Установка скрипта миграции (Elevate)

На этом этапе мы установим инструмент Elevate, который используется для миграции с CentOS 7 на AlmaLinux.
Elevate основан на утилите Leapp и автоматизирует большую часть процесса обновления.

В процессе миграции Elevate:

  • заменяет репозитории CentOS 7 на репозитории AlmaLinux 8;
  • управляет установкой и удалением пакетов;
  • адаптирует системные конфигурации под новую ОС;
  • сохраняет пользовательские данные, что позволяет избежать или минимизировать ручную перенастройку системы после миграции.

1) Установка репозитория Elevate

Для начала установим пакет elevate-release, который добавляет официальный репозиторий проекта и его GPG-ключ:

sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm -E %rhel).noarch.rpm

изображение.png

2) Установка Leapp и данных для AlmaLinux

Теперь установим необходимые пакеты для миграции на AlmaLinux:

sudo yum install -y leapp-upgrade leapp-data-almalinux

Эти пакеты:

  • предоставляют утилиту leapp;
  • содержат правила и данные, необходимые именно для миграции на AlmaLinux.

изображение.png

3) Предварительная проверка перед обновлением (pre-upgrade)

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

Запустите команду:

Данная процедура займет 10-15 минут.

sudo leapp preupgrade

изображение.png

Что происходит на этом этапе

  • утилита не устанавливает и не удаляет пакеты;
  • выполняется анализ системы;
  • выявляются потенциальные проблемы и несовместимости;
  • формируется отчёт и рекомендации по исправлению.

Отчёт сохраняется в файле:

/var/log/leapp/leapp-report.txt

Обязательно внимательно изучите отчёт, особенно если на сервере есть:

  • нестандартные конфигурации;
  • сторонние пакеты;
  • самописные сервисы.

В конце проверки вы можете увидеть предупреждение о пакете, который не существует в AlmaLinux, например связанном с PAM-модулем.

Чтобы увидеть детали, откройте файл ответов:

sudo cat /var/log/leapp/answerfile

изображение.png

В нашем случае видно, что модуль pam_pkcs11 больше не поддерживается в новых версиях ОС, так как был заменён на SSSD.
Оставление этого пакета в системе может привести к проблемам при обновлении.

Для продолжения миграции необходимо подтвердить удаление данного модуля:

sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True

После внесения изменений обязательно запустите предварительную проверку ещё раз:

sudo leapp preupgrade

Убедитесь, что:

  • критических ошибок больше нет;
  • все необходимые подтверждения заданы;
  • система готова к фактическому обновлению.

⚠️ ОЧЕНЬ ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ ⚠️

Прежде чем продолжать миграцию, обязательно тщательно изучите файл отчёта:

/var/log/leapp/leapp-report.txt

Игнорирование этого шага может привести к катастрофическим последствиям, включая:

  • Полную потерю доступа к серверу;
  • Повреждение системных конфигураций, включая PAM, сеть и файрвол;
  • Сбой всех установленных сервисов и проектов;
  • Невозможность восстановить данные без резервной копии;
  • Неисправимые ошибки после обновления, которые потребуют переустановки системы.

Если у вас есть нестандартные настройки, кастомные сервисы, базы данных или веб-проекты - особенно внимательно проверяйте рекомендации отчёта.

Миграция с CentOS 7 на AlmaLinux 8

После того как вы внимательно изучили отчёт preupgrade и убедились, что нет критических проблем, можно приступать к непосредственной миграции.

1) Запуск миграции

sudo leapp upgrade

Эта команда:

  • заменяет репозитории CentOS на репозитории AlmaLinux 8;
  • обновляет пакеты ядра и системные библиотеки;
  • применяет изменения к конфигурации системы;
  • сохраняет пользовательские данные и большинство настроек.

Процесс займет минут 20. Не прерывайте его!

2) Перезагрузка сервера

После выполнения leapp upgrade система требует перезагрузки:

sudo reboot

Особенности перезагрузки:

  • SSH-соединение будет потеряно.
  • Во время загрузки появится специальный пункт загрузки Leapp (Leapp Upgrade Boot Entry).
  • Leapp автоматически применит все обновления ядра и системных пакетов.
  • После завершения процесс снова перезагрузится для запуска уже обновлённой AlmaLinux 8.

изображение.png

Обновление займет 20-40 минут. Не вмешивайтесь и не выключайте сервер во время этого процесса.

3) Проверка версии ОС

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

cat /etc/os-release

Ожидаемый результат (пример для AlmaLinux 8.10):

изображение.png

Это подтверждение, что миграция прошла успешно и AlmaLinux работает.

После миграции

Проверьте все сервисы (SSH, веб-серверы, базы данных, контейнеры), они должны работать корректно. Если были выгружены старые драйверы (floppy, pata_acpi) - убедитесь, что это не повлияло на доступ к дискам и периферии.

Выполните полное обновление AlmaLinux 8:

sudo dnf update -y

Обновите список установленных пакетов:

sudo dnf list installed

Заключение

Сервер успешно обновлён с CentOS 7 до AlmaLinux 8. Система теперь работает на актуальной поддерживаемой версии.