Обновление и откат
Перед обновлением
- Зафиксируйте текущую версию сервера, агента, протокола и сборочный пакет агента.
- Создайте проверенный дамп PostgreSQL и копию конфигурации
.env. - Сохраните текущий ZIP-релиз агента, манифест, подпись и ключи подписи.
- Проверьте миграции, регистрацию тестового агента и совместимость политик на staging.
- Определите окно обслуживания и способ отката.
Обновление сервера
cd copka_roy_server
docker compose config
docker compose build --no-cache
docker compose up -d
docker compose ps
curl -fsS http://127.0.0.1:5000/roy/api/health/ready
Контейнер db-init выполняет инициализацию и миграции до запуска приложения. После обновления проверьте вход в интерфейс, рабочие области, регистрацию тестового агента, получение политики, события, инциденты, Socket.IO и загрузку пакета агента.
Обновление пакета агента
Новый пакет агента поставляется как подписанный релиз в рамках сопровождения. Перед публикацией администратор проверяет версию агента, совместимость протокола, подпись релиза и доступность пакета в разделе установки агента.
Автоматическое обновление агентов
Сервер публикует актуальную версию, SHA-256 и ссылку на пакет через API версии агента. При heartbeat клиент сообщает свою версию; сервер может создать задание обновления и выдать одноразовый grant на скачивание.
| Параметр | Назначение |
|---|---|
COPKA_ROY_AGENT_UPDATE_MODE | auto - ставить устаревших клиентов в очередь автоматически, manual - только по кнопке администратора, off - не предлагать обновление. |
COPKA_ROY_AGENT_UPDATE_MAX_PARALLEL_PER_WORKSPACE | Ограничивает число одновременных обновлений в рабочей области. |
COPKA_ROY_AGENT_UPDATE_GRANT_TTL_SECONDS | Срок действия одноразового ключа скачивания обновления. |
COPKA_ROY_AGENT_UPDATE_JITTER_SECONDS | Разносит скачивание по времени, чтобы не перегружать сервер. |
Updater проверяет подпись Ed25519 манифеста и SHA-256 каждого файла. Обновление применяется через версионный слот, поэтому при неуспешном запуске службы возможен откат на предыдущую рабочую версию.
Откат
- Остановите новую версию приложения.
- Верните прежний образ, compose-конфигурацию и
.env. - Если миграция несовместима назад, восстановите дамп PostgreSQL на отдельную БД и переключите приложение.
- Верните совместимый пакет агента или временно переведите
COPKA_ROY_AGENT_UPDATE_MODEвmanualилиoff. - Выполните smoke-тест и задокументируйте причину отката.