ispmanager 6 lite, pro, host

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

О скрипте

30 июня 2024 года завершился жизненный цикл популярной операционной системы CentOS 7. Для удобной смены ОС мы подготовили скрипт, который конвертирует CentOS 7 в AlmaLinux 8. Это значительно упрощает переезд на новую операционную систему, так как не требует переустановки ОС или переноса данных на новый сервер.

Процесс конвертации состоит из нескольких этапов:

I этап: подготовка к конвертации;

II этап: конвертация ОС;

III этап: перезапуск и восстановление работы панели.

В итоге скрипт запускается дважды: для подготовки к конвертации и после перезапуска для восстановления работы панели. Сама конвертация происходит с помощью инструмента Elevate.

Подготовка

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

Ограничения

В ходе проверок были выявлены следующие ограничения, которые могут блокировать процесс конвертации:

  • версия CentOS ниже 7.9;
  • использование ядра не последней доступной версии. Elevate не позволит провести конвертацию в таком случае. Рекомендуется выполнить yum update и перезапустить сервер перед конвертацией;
  • использование PHP из репозиториев remi/rhel/scl. После конвертации такие конфигурации могут не работать. Рекомендуется воспользоваться импортом панели;
  • использование MySQL версии ниже 8.0.36 или MariaDB ниже 5.5.68. Elevate не может успешно конвертировать базы данных таких версий, что может вызвать множество проблем;
  • недостаток оперативной памяти (менее 4 ГБ) или дискового пространства в директории /var/lib/ (менее 5 ГБ). Конвертация потребляет много ресурсов и при их недостатке может прерваться с ошибкой;
  • xfc ftype=0. Конвертация в такой конфигурации не завершится;
  • зашифрованные разделы файловой системы. Конвертация в таком случае не завершится;
  • версия ispmanager ниже 6.95.0. Проверить можно командой /usr/local/mgr5/bin/core ispmgr -v;
Обратите внимание!
Не рекомендуется запускать процесс конвертации во время обновления панели.

Рекомендации 

  • версия Centos 7.9;
  • ispmanager версии не ниже 6.95.0;
  • установлены следующие пакеты: grub и python3;
  • не меньше 4 Гигабайт оперативной памяти;
  • не меньше 5 Гигабайт дисковой памяти;
  • использовать утилиту screen на случай разрыва ssh соединения;

Как использовать

Запуск скрипта

Скрипт запускается с помощью Python 3. Для запуска выполните команду в директории со скриптом.

screen
curl -o centos7-to-alma8.tgz "http://download.ispmanager.com/tools/centos7-to-alma8.tgz"
tar -xzvf centos7-to-alma8.tgz
cd centos7-to-alma8
python3 main.py

 

После запуска будет выведено предупреждение. Для подтверждения начала процесса подготовки ОС и её конвертации введите yes.

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

Можно не перезапускать сервер вручную, если указать флаг --reboot. В этом случае скрипт сам перезапустит сервер и запустится сразу после того, как сервер поднимется. Пример команды:

python3 main.py --reboot

Дополнительная информация

После успешной конвертации и восстановления работы панели рекомендуется ещё раз перезапустить сервер.

Перед конвертацией проверьте список исключений yum, так как их наличие может повлиять на успешность конвертации.

Скрипт миграции записывает логи в директории скрипта — convertation.log. В них выводится информация о текущем процессе и возможных ошибках. Elevate также записывает логи в /var/log/leapp/preupgrade.log и /var/log/leapp/upgrade.log.

После успешной конвертации в директории скрипта будет создан файл convertation-report.txt, в котором содержатся конфигурационные файлы, измененные при подготовке среды. Исходные варианты конфигурационных файлов сохраняются в /var/config_backups/.

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

На сервере могут остаться пакеты из репозиториев CentOS 7. Проверить их наличие можно командой:

rpm -qa | grep el7

Известные проблемы

  • Если используется OpenLiteSpeed и PostgreSQL, то после конвертации PostgreSQL не запускается. Решения пока нет;
  • Если используется Afterlogic, то после конвертации он будет заменен на RoundCube, но при этом сам Afterlogic продолжает работать.