Перейти к содержимому

Лицензирование

Vision работает только по лицензии Cesbo. Свежая установка заблокирована, пока администратор её не активирует. Лицензия не привязана к IP-адресу, имени хоста, идентификатору машины или оборудованию: один серийный номер покрывает одно активированное устройство.

Для Vision нужны лицензия Cesbo и сервер Cesbo Alta, которым он управляет. Лицензиями управляют в вашем профиле Cesbo на app.cesbo.com участники компании-владельца лицензии. Чтобы применить лицензию, откройте в Vision Settings → License → Activate и выберите её на странице Cesbo (см. Активация).

  • Один серийный номер покрывает одно активированное устройство: один хост Vision. Он не привязан к IP-адресу, имени хоста, идентификатору машины или оборудованию.
  • Участники компании-владельца лицензии активируют, заменяют и удаляют устройства в профиле Cesbo.
  • Перенос Vision на новое оборудование означает активацию нового хоста и замену старого устройства на странице Cesbo. См. Удаление или замена устройства.
  • Не копируйте один license.txt на второй хост: оба займут один и тот же слот устройства.

Пока лицензия этого не разрешает:

  • каждый вызов API отвечает 403 LICENSE_REQUIRED, кроме входа и конечных точек лицензии;
  • пользователи, которым разрешено читать параметры, перенаправляются на Settings → License; все остальные видят страницу License required;
  • веб-интерфейс, /healthz, /readyz и /metrics остаются доступными, а фоновые worker продолжают работать;
  • открытые сеансы видео работают до истечения своих токенов.

Vision разблокируется сам после следующей успешной проверки.

30-минутная отсрочка после запуска (см. Автономная работа) покрывает только недоступный сервер лицензий — но не отсутствие лицензии.

Активировать может только пользователь, которому разрешено изменять параметры.

  1. Откройте Settings → License и нажмите Activate.
  2. Откройте ссылку и войдите в свой профиль Cesbo как участник компании, которой принадлежит лицензия.
  3. Убедитесь, что имя хоста на странице — это имя данного устройства, затем выберите лицензию. Если у лицензии нет свободного слота, выберите устройство для замены. Оно удаляется только тогда, когда данное устройство получит лицензию, и перестаёт работать при своей следующей проверке после этого.
  4. Vision получает лицензию самостоятельно, записывает license.txt и сразу же её проверяет.

Ссылка истекает через 10 минут. Неудавшуюся или истёкшую активацию можно начать заново кнопкой Start again или убрать кнопкой Dismiss; Cancel отбрасывает ожидающую активацию. Отменённая, неудавшаяся или истёкшая активация не удаляет ни одного устройства, даже если устройство для замены уже было выбрано на странице Cesbo.

Когда активация не может связаться с app.cesbo.com или файл присылает поддержка, скачайте license.txt для устройства из своего профиля Cesbo и запишите его в существующий файл, сохранив владельца и режим (vision:vision, 0600):

Окно терминала
sudo tee /etc/vision/license.txt < license.txt >/dev/null
sudo ls -l /etc/vision/license.txt # -rw------- vision vision

Затем нажмите Settings → License → Re-check now.

tee сохраняет файл, в который сервис может писать. Не заменяйте его через mv или cp от root — файл, принадлежащий root, блокирует следующую активацию (vision doctor называет исправление: sudo chown vision:vision /etc/vision/license.txt).

Любой участник компании-владельца может:

  • удалить устройство: в профиле Cesbo откройте лицензию и используйте Manage device;
  • заменить устройство: активируйте новый хост из его Settings → License и выберите старое устройство на странице Cesbo. Старое устройство удаляется, когда новое получает лицензию.

Удалённое устройство после своей следующей проверки показывает License not found or revoked и блокируется. У Vision нет собственной кнопки удаления. Активация хоста, у которого уже есть лицензия, заменяет его локальный серийный номер; предыдущая активация остаётся действующей в вашем профиле Cesbo, пока вы не удалите её там.

Серийный номер хранится в /etc/vision/license.txt, рядом с config.yaml, владелец vision, режим 0600. vision install создаёт его пустым ({}) и никогда не перезаписывает; unit сервиса позволяет сервису записывать только этот файл, тогда как остальное содержимое /etc/vision остаётся доступным только для чтения. Активация переписывает l и сохраняет все остальные ключи:

{
"l": "<serial>",
"s": "https://ls.example/"
}
  • l — серийный номер, 40 шестнадцатеричных символов в нижнем регистре. Это секрет: Vision показывает и пишет в журнал только его первые 14 символов, публичный ID.
  • s необязателен: единственный сервер лицензий, который заменяет серверы Cesbo (тестовые стенды, обращения в поддержку). Значение s, которое пусто или не является строкой, игнорируется.

vision backup переносит файл вместе с секретами.

Каждая проверка опрашивает серверы лицензий (ls1–ls3.cesbo.com) в случайном порядке, пока один из них не выдаст лицензию. Отказ или ответ, не прошедший проверку, учитывается, только когда ни один сервер её не выдал.

  • После выдачи Vision проверяет снова через 24 часа или в дату истечения лицензии, если она раньше, так что продление подхватывается сразу.
  • После отказа (истекла, удалена или заменена) или ответа, не прошедшего проверку, он проверяет каждый час.
  • Re-check now проверяет немедленно (не чаще одного раза в 10 секунд).

Серверы лицензий отклоняют запрос, время которого отличается от их времени более чем на 5 минут. Тогда страница License показывает код 40003. Включите NTP на хосте (timedatectl set-ntp true), затем нажмите Re-check now.

КодЗначение
40000Лицензия не найдена, отозвана, либо это устройство удалено или заменено — активируйте снова
40002Срок действия лицензии истёк — продлите её в своём профиле Cesbo
40003Часы хоста расходятся более чем на 5 минут — включите NTP
40004Сервер лицензий не смог прочитать запрос — повтор каждую минуту; если не проходит, обратитесь в поддержку Cesbo
40006Сервер лицензий сейчас не может ответить — повтор каждую минуту
40100Нет файла лицензии или в нём нет серийного номера — активируйте
40110s в license.txt не является пригодным URL — исправьте или удалите его
40111Не удаётся подключиться к серверам лицензий (сеть, TLS, прокси, тайм-аут)
40112Ответ пришёл не от сервера лицензий (прокси, captive portal или неверный s) — повтор каждую минуту
40120–40135Ответ сервера лицензий не прошёл проверку — повтор каждую минуту; проверьте часы хоста и любой прокси, подменяющий HTTPS
40140Ответ сервера лицензий не прошёл проверку подписи — заблокирован; проверьте, нет ли прокси, подменяющего HTTPS

Когда лицензия истекла либо её устройство удалено или заменено, серверы лицензий отклоняют проверку (40002 — истекла, 40000 — удалена или заменена), и Vision блокируется, как описано в разделе Что значит «заблокирован». После этого он проверяет лицензию каждый час, поэтому разблокируется сам, как только лицензия продлена в профиле Cesbo; Re-check now делает это сразу. В последние 7 дней до окончания баннер над каждой страницей предупреждает пользователей, которые могут читать настройки.

Vision повторяет попытку каждую минуту, когда серверы лицензий недоступны.

  • В течение 30 минут после запуска он продолжает работать без какого-либо ответа.
  • После успешной проверки он продолжает работать до 30 дней без неё. В течение последних 7 дней страница License и баннер над каждой страницей показывают, до какого момента.
  • 30-дневное окно хранится только в памяти: перезапуск сервиса начинает всё заново с 30-минутной отсрочки.

Vision нужен исходящий HTTPS (443) к:

  • ls1.cesbo.com, ls2.cesbo.com, ls3.cesbo.com — проверки (хотя бы к одному);
  • app.cesbo.com — только активация.

За прокси задайте HTTPS_PROXY в /etc/vision/vision.env и выполните sudo vision restart. Прокси не должен перехватывать TLS: подменённый ответ не проходит проверку.

  • Записи остаются на ваших серверах Alta. Собственную базу данных и данные приложения Vision хранит на своём хосте, в /var/lib/vision/.
  • Для лицензирования нужен исходящий HTTPS только к хостам из раздела Сеть.
  • При активации страница Cesbo показывает имя хоста активируемого устройства.
  • vision status показывает публичный ID файла лицензии или not activated. Текущее состояние и срок действия — в Settings → License.
  • vision doctor проверяет файл (существует, владелец vision, режим 0600, разрешён сервису unit) и отвечают ли серверы лицензий и app.cesbo.com. Недоступный сервер — это предупреждение, а не сбой.
  • journalctl -u vision и Журналы (компонент license) записывают каждое изменение состояния.