Skip to content

Añadir un streamer

Un streamer es una máquina que se une a una instalación existente y empieza a llevar canales. Central la admite mediante una ventana de unión acotada en el tiempo; no se aprueba nada a mano.

Antes de empezar, tenga abierta la lista de streamers: ahí es donde aparece la máquina nueva.

Un streamer ejecuta el paquete catena-streamer. catena es el plano de control con la consola — solo la primera máquina lo necesita y en un streamer sobra. Ambos roles son un mismo producto: el mismo servicio catena, el mismo directorio /etc/catena.

Prepare la máquina

Conecte el repositorio, coloque una licencia e instale:

curl -L http://apt.flussonic.com/repo/master/dev.key > /etc/apt/trusted.gpg.d/dev.gpg
echo "deb http://apt.flussonic.com/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

La instalación pregunta tres cosas: la clave de licencia, la dirección de central y el token de unión. La clave ya la tiene — péguela, y el paquete escribe /etc/catena/license.txt por su cuenta. Todavía no hay token en este punto: deje vacías las dos últimas respuestas, el siguiente paso las rellena.

Cada streamer necesita su propia clave de licencia — el servicio no arranca sin ella. --install-recommends conserva los plugins del transcodificador, sin los cuales el streamer puede llevar canales pero no codificarlos.

No hay ninguna configuración que escribir: un streamer no tiene archivo de configuración principal, y todo lo que necesita saber del clúster son tres variables en /etc/catena/streamer.env.

Abra una ventana de unión

En central, vaya a Streamers y pulse Permitir unión.

Central emite un token de unión — empieza por jt- — y abre una ventana que dura exactamente una hora. La duración es fija y no se configura. El panel muestra entonces:

  • el token, mostrado aquí una sola vez al emitirlo — tras recargar la página vuelve a aparecer oculto, y el ojo lo revela de nuevo;
  • una cuenta atrás hasta el cierre de la ventana;
  • Extender, que aplaza el plazo otra hora y mantiene el mismo token, así que las máquinas a las que ya se lo entregó siguen siendo válidas;
  • un comando listo para pegar en el streamer.

La ventana de unión con el comando listo para el streamer

No hay paso de aprobación ni cola de confirmación. Un token válido y no caducado admite un streamer por sí solo; su control es la duración de la ventana, no una decisión por streamer. Trate el token en consecuencia y cierre la ventana con el botón de eliminar en cuanto hayan entrado las máquinas previstas.

Configure y arranque el streamer

Copie el comando del panel y ejecútelo en una shell root del streamer:

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

Los valores se añaden al final, a propósito. El paquete creó este archivo durante la instalación y la última asignación gana — por eso el mismo comando puede ejecutarse de nuevo cuando el streamer se muda a otro clúster o cuando hubo que reemitir el token.

Compruebe CENTRAL_URL antes de ejecutarlo. El panel lo rellena a partir de la dirección del navegador desde el que la está mirando. Si accede a la consola por un nombre que el streamer no puede resolver, o a través de un proxy inverso en otra dirección, corríjalo a mano. Es la causa más frecuente de que un streamer nuevo no aparezca nunca.

En el mismo archivo se definen NODE_NAME — la etiqueta de operador de la máquina, su hostname por defecto — y HTTP, una sobreescritura permanente del puerto HTTP.

Despliegue desatendido

Las preguntas de la instalación pasan por debconf, así que las respuestas se pueden precargar con las herramientas estándar de deb — ansible no necesita saber nada especial:

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

No se hace ni una sola pregunta, y la máquina arranca y se une sola. Pasar los valores como variables de entorno de la propia instalación da el mismo resultado:

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

Las variables de entorno ganan a las respuestas de debconf. Ninguna de las dos vías sobrescribe lo que la máquina ya tiene: una dirección y un token ya puestos sobreviven tanto a una reinstalación como a una actualización del paquete.

Véalo llegar

En unos segundos el streamer se registra y aparece en el registro. Central emite su node_id y devuelve una clave de streamer, que el streamer guarda junto con el identificador en su directorio de estado (/var/lib/catena por defecto).

A partir de ese momento el token de unión es irrelevante para esa máquina: en cada reinicio el streamer se autentica con su clave y no vuelve a registrarse. Cerrar la ventana o dejarla caducar no afecta a los streamers que ya se unieron.

Un streamer recién llegado no trae nada. Qué canales se ejecutan en él lo decide central, no un ajuste en la propia máquina.

Si el streamer no aparece

Suben las «Uniones rechazadas». El streamer llega a central y central lo rechaza: la ventana se cerró, o el token es incorrecto o ha caducado. Vuelva a abrir una ventana y copie el token de nuevo. Un registro rechazado no es un fallo definitivo — el streamer sigue reintentando con pausas crecientes, así que se admitirá solo en cuanto exista una ventana válida, sin tocar nada en el streamer.

El contador no se mueve y no llega nada. Entonces el streamer no alcanza central en absoluto. Compruebe la dirección desde el propio shell del streamer — tiene que resolverse y responder allí, no solo desde su equipo — y lea el log del streamer:

journalctl -u catena -n 50

El streamer aparece dos veces. El registro no es idempotente: cada registro aceptado crea un registro nuevo con un node_id nuevo. Repetirlo en una máquina que ya se había unido — casi siempre tras borrar el directorio de estado y empezar de cero — deja el registro antiguo en su sitio y marca ambas filas como duplicado. Elimine el obsoleto.