Миграция с CentOS 7 на AlmaLinux 8
| Уровень сложности | Высокий |
| Права 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
В выводе должно быть указано что-то вроде:
Если версия отличается, не продолжайте миграцию, так как данная инструкция предназначена именно для 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
Если всё сделано правильно, обновление начнётся без ошибок.
Во время выполнения обновления не прерывайте процесс и дождитесь его полного завершения.
После завершения обновления обязательно выполните перезагрузку, чтобы система начала использовать последнюю версию ядра:
reboot
Установка репозитория EPEL
Для корректного выполнения процесса миграции требуется наличие репозитория EPEL (Extra Packages for Enterprise Linux). В нём содержатся дополнительные пакеты, которые могут понадобиться во время обновления и перехода на AlmaLinux.
sudo yum install epel-release -y
Установка скрипта миграции (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
2) Установка Leapp и данных для AlmaLinux
Теперь установим необходимые пакеты для миграции на AlmaLinux:
sudo yum install -y leapp-upgrade leapp-data-almalinux
Эти пакеты:
- предоставляют утилиту leapp;
- содержат правила и данные, необходимые именно для миграции на AlmaLinux.
3) Предварительная проверка перед обновлением (pre-upgrade)
Перед началом реального обновления обязательно нужно выполнить предварительную проверку системы.
Запустите команду:
Данная процедура займет 10-15 минут.
sudo leapp preupgrade
Что происходит на этом этапе
- утилита не устанавливает и не удаляет пакеты;
- выполняется анализ системы;
- выявляются потенциальные проблемы и несовместимости;
- формируется отчёт и рекомендации по исправлению.
Отчёт сохраняется в файле:
/var/log/leapp/leapp-report.txt
Обязательно внимательно изучите отчёт, особенно если на сервере есть:
- нестандартные конфигурации;
- сторонние пакеты;
- самописные сервисы.
В конце проверки вы можете увидеть предупреждение о пакете, который не существует в AlmaLinux, например связанном с PAM-модулем.
Чтобы увидеть детали, откройте файл ответов:
sudo cat /var/log/leapp/answerfile
В нашем случае видно, что модуль 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.
Обновление займет 20-40 минут. Не вмешивайтесь и не выключайте сервер во время этого процесса.
3) Проверка версии ОС
После успешной перезагрузки и входа на сервер, убедитесь, что система обновлена:
cat /etc/os-release
Ожидаемый результат (пример для AlmaLinux 8.10):
Это подтверждение, что миграция прошла успешно и AlmaLinux работает.
После миграции
Проверьте все сервисы (SSH, веб-серверы, базы данных, контейнеры), они должны работать корректно. Если были выгружены старые драйверы (floppy, pata_acpi) - убедитесь, что это не повлияло на доступ к дискам и периферии.
Выполните полное обновление AlmaLinux 8:
sudo dnf update -y
Обновите список установленных пакетов:
sudo dnf list installed
Заключение
Сервер успешно обновлён с CentOS 7 до AlmaLinux 8.
AlmaLinux 8 будет получать обновления безопасности до 31 мая 2029 года, однако разработка системы завершилась 31 мая 2024 года. Чтобы сохранить доступ к актуальным функциям, улучшениям и полноценной поддержке, рекомендуется выполнить обновление до более новой версии AlmaLinux 9









