Для кого: администратор панели. Требуемые права: администратор панели. Лицензия: тот же ключ, что и у резервных копий Remnawave.
Почему без бэкапа нельзя
Remnawave прогоняет миграции базы при первом запуске нового образа. После этого старый образ её схему уже не прочитает, то есть обновление — дверь в одну сторону. Единственный путь назад — дамп, снятый до переключения. Поэтому бэкап не предварительное условие, о котором оператора спрашивают, а часть обновления: свежий дамп снимается и проверяется прямо в прогоне. Обновление не начнётся, пока не доказано, что бэкапы у этого подключения реально работают. Список препятствий и есть содержимое карточки: на панели без бэкапов «обновлять нельзя» — обычное состояние, и оператор должен видеть, что именно поправить. Что карточка может сказать:- у подключения не настроен профиль бэкапа Remnawave;
- профиль настроен, но ни один бэкап ещё не выполнялся успешно;
- у панели Remnawave не найден compose-файл, а обновление меняет именно его;
- панель Remnawave не обнаружена: без доступа к её стеку обновлять нечего.
Выбор версии
Список — последние пять версий из реестра, и только фиксированные. Плавающие теги (latest, dev, голый мажор) в него не попадают: пин на такой тег и есть та причина, по которой 3.0.0 однажды приехала незаметно и сломала установку.
Версии не новее текущей в списке выключены. Понижение запрещено осознанно: база уже мигрировала вперёд, и честный путь назад — восстановление бэкапа, а это другая операция с другим подтверждением.
Версию Remnawave спрашивает и установщик Axottle при первой установке, из того же списка. Недоступный реестр или неинтерактивный запуск приводят к версии по умолчанию, а не к остановке установки.
Подтверждение
Кнопка обновления открывает диалог, который перечисляет последствия по пунктам: снимется бэкап, панель перезапустится и подписки на несколько минут станут недоступны, база обновится, а при неудаче версия и база вернутся из этого же бэкапа. Галочка подтверждает именно перезапуск и миграцию базы.Порядок шагов
1
Бэкап
Снимается свежий дамп Remnawave выбранным профилем.
2
Проверка бэкапа
Дамп проверяется. Непроверяемый бэкап останавливает обновление: он существует ровно для того, чтобы из него восстанавливаться.
3
Смена версии
В compose-файле правится тег образа, образ скачивается, стек пересоздаётся. Пока идут первые шаги, старая панель продолжает работать.
4
Подтверждение
Панель должна ответить и назвать ту версию, которую просили. Ответ со старой версией считается неудачей обновления, а не затянувшимся стартом.
Откат
Откат бывает двух видов, и разница принципиальна. Не скачался образ. Ничего не запускалось, база не тронута, поэтому возвращается только compose-файл. Восстанавливать базу здесь значило бы потерять данные ни за что. Упало пересоздание или панель не подтвердила версию. Новый образ мог успеть прогнать миграции, поэтому возвращается и файл, и база из бэкапа, снятого на первом шаге. Если не удался и откат, сообщение называет номер бэкапа для ручного восстановления. Это тот текст, который читают в худший момент, поэтому в нём есть всё нужное.Remnawave на отдельном сервере
Обновление работает и когда Remnawave стоит не на сервере панели. Смену образа и пересоздание выполняет агент, установленный на той машине; бэкап, его проверка, подтверждение версии и восстановление базы остаются за панелью в обоих случаях. Требование рабочего бэкапа тоже не слабеет от того, где стоит панель. Слишком старый агент откажется от задачи обновления с внятным сообщением — обновите агент на этой ноде.Совместимость 2.x и 3.x
Axottle работает с обеими ветками Remnawave: версия панели определяется по её ответу, и клиент подстраивается сам. Установщик ставит третий мажор, переезд с чужой панели переносит версию исходной.Проверка
После обновления карточка показывает новую версию, которую панель называет о себе сама, а в списке шагов виден номер снятого бэкапа.
Типовые ошибки
Кнопка обновления неактивна
Кнопка обновления неактивна
Смотрите список препятствий в карточке: почти всегда дело в бэкапах. Настройте профиль в разделе бэкапов и прогоните его один раз вручную.
Обновление остановилось на проверке бэкапа
Обновление остановилось на проверке бэкапа
Дамп снялся, но прочитать его не удалось. Проверьте место на диске и доступ к хранилищу бэкапов, затем повторите.
Панель после обновления отвечает старой версией
Панель после обновления отвечает старой версией
Обновление засчитано неудачным, и панель вернулась на прежнюю версию с восстановлением базы. Проверьте, не переопределён ли тег образа где-то ещё в compose-файле.
