Skip to content

Добавление стримера

Стример — это машина, которая присоединяется к существующей инсталляции и начинает нести каналы. Central впускает её через окно присоединения, ограниченное по времени; ничего подтверждать руками не нужно.

Держите открытым список стримеров — там новая машина и появится.

На стримере работает пакет catena-streamer. catena — это управляющий контур с консолью, он нужен только первой машине; на стримере он лишний. Обе роли — один продукт: тот же сервис catena, тот же каталог /etc/catena.

Подготовьте машину

Подключите репозиторий, положите лицензию и поставьте пакет:

curl -L http://apt.flussonic.ru/repo/master/dev.key > /etc/apt/trusted.gpg.d/dev.gpg
echo "deb http://apt.flussonic.ru/branch/sapsan/master repo/" > /etc/apt/sources.list.d/flussonic.list
apt update

mkdir -p /etc/catena
cp license.txt /etc/catena/license.txt
chmod 600 /etc/catena/license.txt

apt install --install-recommends catena-streamer

Установка спрашивает три вещи: лицензионный ключ, адрес central и join-токен. Ключ у вас уже есть — вставьте его, и файл /etc/catena/license.txt пакет заведёт сам. Токена на этом шаге ещё нет: оставьте два последних вопроса пустыми, их заполнит следующий шаг.

Каждому стримеру нужен свой ключ лицензии — без него сервис не стартует. --install-recommends сохраняет плагины транскодера, без которых стример может нести каналы, но не может их кодировать.

Конфигурацию писать не нужно совсем: у стримера нет головного конфига, всё что ему нужно знать о кластере — три переменные в /etc/catena/streamer.env.

Откройте окно присоединения

На central откройте Стримеры и нажмите Разрешить присоединение.

Central выдаёт join-токен — он начинается с jt- — и открывает окно ровно на один час. Срок фиксирован и не настраивается. В панели появляются:

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

Окно присоединения с готовой командой для стримера

Никакого подтверждения и очереди заявок нет. Действующий непросроченный токен впускает стример сам по себе; ваш инструмент контроля — длина окна, а не решение по каждой машине. Относитесь к токену соответственно и закрывайте окно кнопкой удаления, как только нужные машины вошли.

Настройте и запустите стример

Скопируйте команду из панели и выполните её в root-шелле стримера:

cat >> /etc/catena/streamer.env <<EOF
CENTRAL_URL=http://central.example.com
JOIN_TOKEN=jt-...
EOF
systemctl restart catena

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

Проверьте CENTRAL_URL перед выполнением. Панель подставляет его из адреса того браузера, в котором вы смотрите на неё. Если вы открываете консоль по имени, которое стример не разрешит, или через обратный прокси на другом адресе, поправьте руками. Это самая частая причина, по которой новый стример так и не появляется.

В том же файле задаются NODE_NAME — операторская метка машины, по умолчанию её hostname — и HTTP, постоянное перекрытие HTTP-порта.

Раскатка без интерактива

Вопросы установки задаются через debconf, поэтому ответы можно преднабить штатными средствами deb — ansible ничего особенного знать не должен:

debconf-set-selections <<EOF
catena-streamer catena-streamer/license_key string l4|...
catena-streamer catena-streamer/central_url string http://central.example.com
catena-streamer catena-streamer/join_token password jt-...
EOF

DEBIAN_FRONTEND=noninteractive apt install --install-recommends catena-streamer

Вопросов не будет ни одного, машина поднимется и присоединится сама. Тот же результат даёт передача значений переменными окружения самой установки:

CENTRAL_URL=http://central.example.com JOIN_TOKEN=jt-... \
  DEBIAN_FRONTEND=noninteractive apt install --install-recommends catena-streamer

Переменные окружения выигрывают у ответов debconf. Ни один из способов не перезаписывает то, что на машине уже есть: заполненные адрес и токен переживают и переустановку, и обновление пакета.

Дождитесь появления

Через несколько секунд стример регистрируется и появляется в реестре. Central выдаёт ему node_id и возвращает ключ, который стример вместе с идентификатором складывает в свой каталог состояния (по умолчанию /var/lib/catena).

С этого момента join-токен для этой машины не важен: при каждом перезапуске стример аутентифицируется ключом и заново не регистрируется. Закрытие или истечение окна уже присоединившиеся стримеры не трогает.

Новый стример приезжает пустым. Что на нём запускать, решает central, а не настройка на самой машине.

Если стример не появился

Растут «Отклонённые попытки». Стример до central достучался, и central его разворачивает: окно закрыто либо токен неверен или просрочен. Откройте окно снова и скопируйте токен заново. Отказ в регистрации — не фатальная ошибка: стример продолжает попытки с нарастающей паузой, поэтому впустит себя сам, как только появится действующее окно, — на машине делать ничего не нужно.

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

journalctl -u catena -n 50

Стример появился дважды. Регистрация не идемпотентна: каждая принятая регистрация создаёт новую запись с новым node_id. Повтор на машине, которая уже присоединялась — чаще всего после стирания каталога состояния и запуска заново, — оставляет старую запись на месте и помечает обе строки как дубликат. Удалите устаревшую.