ELevate е проект, който помага за преход от по-стара към по-нова версия на операционната система, базирана на RHEL (например от CloudLinux 7 към CloudLinux 8), без преинсталация.
CloudLinux използва вариация на ELevate, базирана на AlmaLinux версията на проекта, и добавя специални настройки за:
- CloudLinux с cPanel (чрез cPanel Elevate)
- CloudLinux с Plesk (чрез cloudlinux7to8 проект)
Основният инструмент, който извършва реалния ъпгрейд, се казва Leapp.
✅ Готово ли е за реална употреба?
ELevate вече е доста стабилен проект, но поддръжката за CloudLinux е сравнително нова.
- CloudLinux гарантира, че техните собствени продукти (като Imunify360, KernelCare, и т.н.) ще работят коректно след ъпгрейда.
- Не се гарантира, че външни програми или пакети от непознати хранилища ще се обновят правилно.
- Ако използваш по-нестандартна конфигурация или си инсталирал софтуер извън стандартните хранилища – може да има проблеми.
⚠️ Може ли нещо да се счупи?
Да, възможно е.
Ъпгрейд на цяла операционна система е сложен процес, при който:
- може да възникнат грешки поради конфигурации, повреди по време на обновяване, или прекъсване на тока;
- системата може да стане недостъпна;
- понякога, при рестарт, мрежата може да не стартира, което ще направи сървъра невидим през SSH – препоръчва се достъп през VNC или конзола;
- няма лесен начин за връщане назад, така че най-сигурният вариант е архив/бекъп на сървъра преди започване.
💡 Съвет: Първо тествай в лабораторна среда или виртуална машина (VM), преди да ъпгрейднеш продукционна система.
❓ Ще обнови ли всичко на моя сървър?
Не съвсем.
- ELevate обновява само пакетите, които са част от поддържаните хранилища на CloudLinux, AlmaLinux и някои външни източници (като EPEL).
- Софтуер, инсталиран от непознати или ръчно добавени източници, няма да бъде обновен.
- Можеш ръчно да добавиш липсващи пакети или хранилища в Leapp, ако имаш опит.
🧩 Какво конкретно се обновява?
- Всички CloudLinux и AlmaLinux пакети
- Някои допълнителни популярни компоненти, като:
- Imunify360
- KernelCare
- EPEL хранилище (допълнителни пакети за RHEL)
Условие: тези пакети/хранилища трябва да са активирани преди ъпгрейда, иначе няма да бъдат включени в процеса.
⏸️ Ще се прекъсне ли работата на сървъра?
Да.
По време на самия ъпгрейд:
- Сървърът ще се рестартира в специален режим, където започва реалното обновяване на системата;
- През това време сървърът ще бъде недостъпен и нефункционален;
- Тази фаза може да продължи до 1 час – планирай предварително!
👉 В началните стъпки (преди рестарта), услугите ще работят нормално.
Внимание: При сценарий с cPanel, сайтовете ще спрат да работят още от началото на ъпгрейда, докато при система без панел – ще продължат да работят до момента на рестарта.
⏱️ Колко време отнема?
- Обикновено между 30 минути и няколко часа, в зависимост от:
- броя и размера на пакетите;
- натовареността на машината;
- интернет връзката.
⚠️ Ако сървърът не отговаря повече от 2 часа след рестарт, най-вероятно процесът е прекъснат, и системата няма да се възстанови сама.
🛠️ Как се използва CloudLinux ELevate?
В зависимост от това дали имаш контролен панел на сървъра си, стъпките за ъпгрейд от CloudLinux 7 към CloudLinux 8 ще са различни.
📦 Поддържани сценарии:
- ✅ Без панел / собствен панел
- ✅ С cPanel
- ✅ С DirectAdmin
- ✅ С Plesk
🔹 Без контролен панел (или нестандартен панел)
Използва се директно Leapp инструмента.
👉 Потърси ръководството: CloudLinux 7 без панел – ELevate сценарий
🔹 С cPanel
Използвай инструмента elevate-cpanel.
👉 Потърси ръководството: CloudLinux 7 с cPanel – ELevate сценарий
🔹 С DirectAdmin
Няма нужда от допълнителни инструменти – процедурата е същата като при без панел.
🔹 С Plesk
Използвай инструмента cloudlinux7to8, предоставен от Plesk.
👉 Потърси ръководството: CloudLinux 7 с Plesk – ELevate сценарий
🔹 С друг панел?
❌ Засега не се поддържа.
✅ Можеш да направиш чиста инсталация на CloudLinux 8, и след това да прехвърлиш настройките и лиценза.
Полезни линкове:
- Как да направиш backup и миграция на CloudLinux настройки
- Как да възстановиш PHP Selector
- Как да преместиш лиценз
🔹 Имам CentOS 7 – мога ли да ползвам ELevate?
Не директно. Ето вариантите:
- Конвертирай към CloudLinux 7, след това използвай ELevate.
- Ако нямаш панел → ъпгрейд до AlmaLinux 8 с AlmaLinux Elevate → после конвертирай към CloudLinux.
- Ако си с cPanel → използвай cPanel Elevate → после конвертирай към CloudLinux.
⚠️ Забележка: AlmaLinux Elevate и cPanel Elevate са проекти на трети страни. При проблеми се обърни към техните разработчици.
🆘 Имам проблем с ъпгрейда – какво да правя?
- Провери раздела Troubleshooting по-долу.
- Ако не намираш решение:
- За проблеми с cPanel Elevate → докладвай в cPanel Elevate GitHub
- За CloudLinux проблеми → пиши в CloudLinux Elevate GitHub или към техния support
- За проблеми със самия Leapp → пиши в AlmaLinux Leapp GitHub
Когато докладваш проблем:
Изпрати:
- Стъпки за възпроизвеждане
- Файловете от /var/log/leapp
- Файл: /var/lib/leapp/leapp.db
- Изход от journalctl
- Ако си с cPanel: /var/log/elevate-cpanel.log
- Всички други логове, които сметнеш за важни
📦 Компресиране на логовете:
tar -czf leapp-logs.tgz /var/log/leapp /var/lib/leapp/leapp.db
🧨 Чести проблеми и решения (Troubleshooting)
🔸 Не използваш последното ядро:
Грешка:
Inhibitor: Newest installed kernel not in use
Решение: Рестартирай сървъра, за да зареди най-новото ядро.
🔸 Депрекатнати kernel модули
Някои модули не се поддържат в CloudLinux 8. Ще трябва да ги разтовариш (unload):
rmmod floppy pata_acpi btrfs
🔸 Повторени yum/dnf хранилища
Грешка:
Inhibitor: A YUM/DNF repository defined multiple times
Решение: Прегледай файловете в /etc/yum.repos.d/ и премахни дубликати.
🔸 Пакети от непознати хранилища
Ако виждаш:
Packages not signed by a known packager found on the system
Решение: Увери се, че всички активни хранилища са налични и разпознати от Leapp.
🔸 SSH достъпът може да спре след ъпгрейда
Ако не си задал опцията PermitRootLogin изрично, тя ще се промени по подразбиране след ъпгрейда.
Решение:
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
🔸 PAM модул pam_pkcs11 ще бъде премахнат
Този модул не се поддържа в RHEL 8.
Разрешение:
sudo leapp answer –section remove_pam_pkcs11_module_check.confirm=True
🔸 Проблем с регистрация в CLN (CloudLinux Network)
Изпълни:
rhn_check; echo $?
Ако резултатът е различен от 0 → пререгистрирай сървъра.
🔸 CLN репото остана насочено към CL8 след неуспешна миграция
Решение:
cln-switch-channel -t 7 -o -f
🔸 Липсващ DNF plugin
Инсталирай липсващия plugin:
dnf install ‘dnf-command(config-manager)’
🔸 Грешка по време на основната DNF транзакция
Може да се получи при повредени пакети или грешки в prein/preun скриптове.
Решение:
- Премахни проблемните пакети преди ъпгрейд
- Или ги добави в списъка to_keep, за да не бъдат ъпгрейдвани
🔸 Липсващи .rpm файлове по време на ъпгрейд
Пример:
Error opening /var/cache/dnf/…
Package has incorrect checksum
Това се случва, ако:
- CLN репото е изключено по време на процеса
- Или има проблем с dnf-plugin-spacewalk
Решения:
- Провери дали dnf-plugin-spacewalk е с версия cloudlinux.2.leapp.2 или по-нова
- Потърси реда: Leapp upgrade is running – using cache. в логовете
❗ Проблеми при CloudLinux 7 + cPanel сценарий с ELevate
⚠️ Грешка при dnf upgrade след рестарт (етап 4)
Симптоми:
- Грешка при изтегляне на repomd.xml
- Логът съдържа:
Error: Failed to download metadata for repo ‘cloudlinux-base’
…
The elevation process failed during stage 4.
Причини:
- Конфигурационен файл на Yum репо не е достъпен след ъпгрейда (например – променена променлива $releasever).
- Ръчно редактиран репо файл, който не е бил автоматично обновен.
Решение:
- Провери .repo файла и дали линкът (или mirrorlist) работи.
- Ако има .rpmnew версия – сравни и евентуално замени старата с новата.
🧱 Липсващи EasyApache (EA4) пакети след ъпгрейд
Симптоми:
- Липсват пакети като ea-apache24-mod_lsapi
- Грешка в /var/log/elevate-cpanel.log:
requires liblsapi < 1:1.1-65, but none of the providers can be installed
Причини:
- Активни тестови (testing) хранилища преди ъпгрейда.
- Leapp обновява всички пакети, включително до версии, несъвместими с EA4.
- EA4 пакетите имат строги зависимости, и ea_install_profile не може автоматично да прави downgrade.
Решение:
- Инсталирай проблемните пакети ръчно с подходящите зависимости:
dnf -y install ea-apache24-mod_lsapi
- Изпълни отново скрипта от лога:
/usr/local/bin/ea_install_profile –install /etc/cpanel/ea4/profiles/custom/current_state_…
⛔ Стара версия на cPanel
Съобщение:
This installation of cPanel *…* does not appear to be up to date.
Решение:
- Ъпгрейдни cPanel до последна версия от следните канали:
STABLE, RELEASE, CURRENT или EDGE - LTS версии НЕ се поддържат
⚠️ Несъвместими EasyApache пакети
Пример:
Elevation Blocker detected: ea-apache24-mod-unsupported-package
Решение:
- Деинсталирай изброените EA пакети
- След това рестартирай процеса по ъпгрейд
❌ Външни хранилища (YUM repo) не се поддържат
Съобщение:
One or more enabled YUM repo are currently unsupported.
Решение:
- Изключи тези хранилища
- Деинсталирай пакетите от тях преди да продължиш
💡 Ако искаш Leapp да разпознава нови репота – трябва да добавиш информация за тях в Leapp. Виж „Contribution“ секцията в официалната документация.
🔧 Променени или локални хранилища
CloudLinux Elevate работи само с официалните CloudLinux репота.
Ако:
- Използваш локални копия
- Или си спрял връзка с CLN (CloudLinux Network)
➡️ Процесът може да се провали.
Решение:
- Върни стандартната конфигурация на репота
- Увери се, че RHN/CLN плъгините са активни
- Провери дали .repo файловете използват $releasever, а не твърдо кодирано 7
- Рестартирай процеса
🐞 Известни проблеми
🔸 LiteSpeed уеб сървър
- LiteSpeed не се обновява автоматично при сценарии без контролен панел
- Може да се инсталира/обнови след приключване на ъпгрейда
Мога ли да допринеса към проекта?
Да! ELevate е отворен проект, и поддържа добавяне на:
- нови пакети,
- репозитории,
- скриптове за ъпгрейд (Leapp actors),
- поддръжка за други панели или допълнителен софтуер.
CloudLinux не предлага официална поддръжка за интеграция на външни пакети, но можеш да го направиш сам, като следваш ръководството за принос в ELevate GitHub.
🔄 Как да добавиш поддръжка за други пакети/репота
Ако използваш custom панел или нестандартен софтуер, ELevate може да ги пропусне по време на ъпгрейда.
Какво можеш да направиш:
- Стартирай:
sudo leapp preupgrade
- Прегледай файла:
/var/log/leapp/leapp-report.txt
- Потърси:
- пакети, които няма да бъдат обновени
- непознати/неподписани пакети
- грешки, които блокират ъпгрейда
- Ако тези пакети са важни за системата ти:
- добави репозиторите им към Leapp
- опиши как да се обновят пакетите в конфигурационните файлове
- ако е нужно, добави скрипт (Leapp actor) за специфично поведение (напр. миграция на конфигурация)
📁 Местоположение на конфигурациите:
/etc/leapp/transaction/
| Файл | Какво прави |
| to_install | Задължително да се инсталират |
| to_remove | Задължително да се премахнат |
| to_keep | Да останат непроменени |
| to_reinstall | Да се премахнат и преинсталират |
📘 Инструкции за системи без контролен панел (или със собствен такъв)
🧱 Подготовка:
- Увери се, че CloudLinux 7 е:
- напълно обновен
- работи с най-новото ядро (uname -r)
- ако е нужно – рестартирай
- Инсталирай ELevate:
sudo yum install https://repo.cloudlinux.com/elevate/elevate-release-latest-el7.noarch.rpm
- Инсталирай Leapp и нужните данни:
sudo yum install -y leapp-upgrade leapp-data-cloudlinux
📌 Ако ти е казано от съпорта, активирай cloudlinux-elevate-updates-testing репото преди инсталацията.
🧪 Pre-upgrade проверка:
sudo leapp preupgrade
Файл с резултати:
/var/log/leapp/leapp-report.txt
⚠️ Нормално е проверката да се провали, защото CloudLinux 7 не отговаря напълно на новите изисквания.
💡 Възможна грешка:
Inhibitor: Newest installed kernel not in use
➡️ Решение: рестартирай, за да заредиш новото ядро
📁 Leapp може да създаде answerfile, в който ще трябва да отговориш на въпроси с true/false. Пример:
sudo leapp answer –section remove_pam_pkcs11_module_check.confirm=True
⚙️ Стартиране на реалния ъпгрейд:
sudo leapp upgrade
sudo reboot
🔁 След рестарт, GRUB ще зареди автоматично специален запис:
ELevate-Upgrade-Initramfs
Процесът може да отнеме до 40–50 минути. Ако след 2 часа няма отговор, най-вероятно процесът е блокирал.
🔍 Ако имаш достъп през VNC или KVM, прегледай:
/var/log/leapp/
✅ Проверка след ъпгрейда:
cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el7 # Провери дали има останали пакети от el7
cat /var/log/leapp/leapp-report.txt
cat /var/log/leapp/leapp-upgrade.log
📁 Провери дали има .rpmnew файлове, които трябва да се преименуват (примерно os-release.rpmnew → os-release)
🧩 Обобщение: Как да разшириш ELevate за твоята система
| Стъпка | Описание |
| 1. | Инсталирай leapp-upgrade и leapp-data-cloudlinux |
| 2. | Стартирай leapp preupgrade |
| 3. | Прегледай leapp-report.txt |
| 4. | Добави липсващи репота и конфигурации, ако има нужда |
| 5. | Използвай Leapp actor-и при нужда от допълнителни действия |
| 6. | Повтори проверката и ако всичко е наред – стартирай leapp upgrade |
🧱 Сценарий 1: CloudLinux 7 без контролен панел / с custom панел
Този сценарий описва как да преминеш от CloudLinux 7 към CloudLinux 8, ако нямаш контролен панел, или използваш собствен/нестандартен такъв.
✅ Подготовка:
- Увери се, че системата е напълно обновена и използва последното ядро:
sudo yum -y update
uname -r
Ако е необходимо — рестартирай.
- Инсталирай ELevate репото:
sudo yum install https://repo.cloudlinux.com/elevate/elevate-release-latest-el7.noarch.rpm
- Инсталирай Leapp инструментите:
sudo yum install -y leapp-upgrade leapp-data-cloudlinux
💡 Ако support ти е казал, можеш да включиш и тестовото репо:
yum-config-manager –enable cloudlinux-elevate-updates-testing
🔎 Предварителна проверка (Pre-upgrade check):
sudo leapp preupgrade
Това ще създаде доклад:
/var/log/leapp/leapp-report.txt
⚠️ Възможна грешка:
Inhibitor: Newest installed kernel not in use
➡️ Решение: рестартирай системата.
💡 Leapp може да създаде /var/log/leapp/answerfile с въпроси, на които трябва да отговориш (true/false), например:
sudo leapp answer –section remove_pam_pkcs11_module_check.confirm=True
⚙️ Фини настройки (по избор)
Можеш да ръчно контролираш кои пакети да:
- се инсталират (to_install)
- се премахнат (to_remove)
- не се пипат (to_keep)
- се преинсталират (to_reinstall)
Файловете се намират тук:
/etc/leapp/transaction/
🔄 Стартиране на ъпгрейда:
sudo leapp upgrade
sudo reboot
GRUB ще зареди:
ELevate-Upgrade-Initramfs
⌛ Процесът може да отнеме 40–50 минути. Ако след 2 часа няма отговор, нещо се е объркало.
✅ Проверка след ъпгрейда:
cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el7 # Проверява за стари пакети
cat /var/log/leapp/leapp-report.txt
cat /var/log/leapp/leapp-upgrade.log
📁 Провери за .rpmnew файлове, които може да се наложи да преименуваш ръчно (напр. os-release.rpmnew → os-release).
🖥️ Сценарий 2: CloudLinux 7 + cPanel
Ако имаш cPanel, използваш специален скрипт от екипа на cPanel:
📥 elevate-cpanel
✅ Подготовка:
- Обнови системата и cPanel:
sudo yum -y update
- Провери дали имаш нужния пакет:
yum install ea-cpanel-tools
Ако го няма – активирай тестовото репо:
yum-config-manager –enable cloudlinux-ea4-testing
- Изтегли и подготви скрипта:
wget -O /scripts/elevate-cpanel https://raw.githubusercontent.com/cpanel/elevate/release/elevate-cpanel
chmod 700 /scripts/elevate-cpanel
- Провери състоянието:
/scripts/elevate-cpanel –check
📄 Прегледай логовете:
- /var/log/leapp/leapp-report.txt
- /var/log/elevate-cpanel.log
🔁 Стартиране на ъпгрейда:
/scripts/elevate-cpanel –start
💡 Ако искаш ръчни рестарти между фазите:
/scripts/elevate-cpanel –start –manual-reboots
📌 По време на процеса:
- ще има няколко рестарта
- ще се покаже custom MOTD (съобщение при логване)
- SSH ще е недостъпен за известно време
Провери състоянието с:
/scripts/elevate-cpanel –status
Продължи при нужда:
/scripts/elevate-cpanel –continue
✅ След ъпгрейда:
Провери:
cat /etc/redhat-release
cat /etc/os-release
/scripts/elevate-cpanel –status
cat /var/log/elevate-cpanel.log
📁 Прегледай дали има .rpmnew файлове, които изискват ръчно преименуване.
💡 Задължително направи пълен бекъп преди ъпгрейд!
🖥️ Сценарий: Ъпгрейд от CloudLinux 7 до CloudLinux 8 със Plesk
Този сценарий показва как да преминеш от CloudLinux 7 към CloudLinux 8, ако използваш Plesk.
👉 Процесът използва инструмент, създаден и поддържан от екипа на Plesk:
cloudlinux7to8
Той комбинира Plesk специфични действия и Leapp за основната част на ъпгрейда.
📄 Официална документация: cloudlinux7to8 (GitHub)
🔒 Преди да започнеш
✅ Направи пълен бекъп на сървъра!
(ако нещо се обърка – това е твоето спасение)
✅ Увери се, че CloudLinux 7 системата ти е напълно обновена:
sudo yum -y update
📥 Инсталация на инструмента
- Изтегли и разархивирай инструмента:
wget https://github.com/plesk/cloudlinux7to8/releases/download/latest/cloudlinux7to8-1.0.0.zip
unzip cloudlinux7to8-1.0.0.zip
chmod 755 cloudlinux7to8
🚀 Стартиране на процеса
📌 Препоръчително е да използваш screen, за да не прекъснеш случайно процеса при затворена сесия:
screen -S cloudlinux7to8
./cloudlinux7to8
Ако прекъснеш връзката – можеш да се върнеш в сесията така:
screen -r cloudlinux7to8
🔁 Може и да стартираш процеса във фонов режим:
nohup ./cloudlinux7to8 &
🛠️ Какво се случва по време на ъпгрейда:
- Plesk ще спре временно
- Уебсайтовете няма да са достъпни
- Системата ще се рестартира няколко пъти
- При основния етап, ще се стартира специална среда (initramfs), където Leapp ще извърши прехода към CloudLinux 8
- През това време SSH достъпът ще бъде невъзможен
📊 Мониторинг на процеса
Прегледай текущия статус:
./cloudlinux7to8 –status
Следи в реално време:
./cloudlinux7to8 –monitor
📁 Логове ще намериш тук:
- /var/log/plesk/cloudlinux7to8.log – специфично за този инструмент
- /var/log/leapp/ – логове от Leapp
⏪ Връщане назад (Revert)
❗ Работи само ако още не си направил първия рестарт след стартиране на инструмента.
Ако нещо се обърка в началото:
./cloudlinux7to8 –revert
⚠️ Ограничения:
- Не възстановява напълно системата – може да се наложи да върнеш бекъп
- Не премахва Leapp и не освобождава използваното от него пространство
- Не работи след като вече си рестартирал в initramfs (след основната част от ъпгрейда)
✅ След приключване
След последния рестарт:
- Влез в системата
- Провери дали вече си на CloudLinux 8:
cat /etc/redhat-release
cat /etc/os-release
- Прегледай дали има останали пакети от el7:
rpm -qa | grep el7
- Проверка за .rpmnew файлове: Някои конфигурации (като /etc/os-release, yum) може да имат нова версия със суфикс .rpmnew, която трябва ръчно да преименуваш, ако не се е заменила автоматично.