Adicionar um streamer¶
Um streamer é uma máquina que adere a uma instalação existente e passa a carregar canais. O central a admite por uma janela de adesão limitada no tempo; nada é aprovado à mão.
Antes de começar, deixe aberta a lista de streamers: é ali que a máquina nova aparece.
Um streamer roda o pacote catena-streamer. O catena é o plano de controle com o console — só a primeira máquina precisa dele e num streamer ele sobra. Os dois papéis são um só produto: o mesmo serviço catena, o mesmo diretório /etc/catena.
Prepare a máquina¶
Conecte o repositório, coloque uma licença 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
A instalação pergunta três coisas: a chave de licença, o endereço do central e o token de adesão. A chave você já tem — cole-a, e o pacote escreve /etc/catena/license.txt sozinho. Ainda não há token neste ponto: deixe as duas últimas respostas vazias, o próximo passo as preenche.
Cada streamer precisa da sua própria chave de licença — o serviço não inicia sem ela. O --install-recommends preserva os plugins do transcodificador, sem os quais o streamer pode carregar canais mas não codificá-los.
Não há configuração alguma a escrever: um streamer não tem arquivo de configuração principal, e tudo o que ele precisa saber do cluster são três variáveis em /etc/catena/streamer.env.
Abra uma janela de adesão¶
No central, vá em Streamers e pressione Permitir adesão.
O central emite um token de adesão — ele começa com jt- — e abre uma janela que dura exatamente uma hora. A duração é fixa e não configurável. O painel então mostra:
- o token, exibido aqui uma única vez na emissão — depois de recarregar a página ele volta oculto, e o olho o revela de novo;
- uma contagem regressiva até o fechamento da janela;
- Estender, que adia o prazo por mais uma hora e mantém o mesmo token, então as máquinas a quem você já o entregou continuam válidas;
- um comando pronto para colar no streamer.

Não há etapa de aprovação nem fila de confirmação. Um token válido e não expirado admite um streamer por si só; o seu controle é a duração da janela, não uma decisão por streamer. Trate o token de acordo e feche a janela com o botão de excluir assim que as máquinas pretendidas tiverem entrado.
Configure e inicie o streamer¶
Copie o comando do painel e execute-o num shell root do streamer:
cat >> /etc/catena/streamer.env <<EOF
CENTRAL_URL=http://central.example.com
JOIN_TOKEN=jt-...
EOF
systemctl restart catena
Os valores são acrescentados ao final, de propósito. O pacote criou esse arquivo na instalação e a última atribuição vence — por isso o mesmo comando pode ser executado de novo quando o streamer muda de cluster ou quando o token precisou ser reemitido.
Confira o CENTRAL_URL antes de executar. O painel o preenche a partir do endereço do navegador em que você está olhando. Se você acessa o console por um nome que o streamer não resolve, ou através de um proxy reverso em outro endereço, corrija à mão. Essa é a causa mais comum de um streamer novo nunca aparecer.
No mesmo arquivo ficam NODE_NAME — o rótulo de operador da máquina, por padrão o hostname dela — e HTTP, uma sobreposição permanente da porta HTTP.
Implantação sem interação¶
As perguntas da instalação passam pelo debconf, então as respostas podem ser pré-carregadas com as ferramentas padrão do deb — o ansible não precisa saber nada de 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
Nenhuma pergunta é feita, e a máquina sobe e adere sozinha. Passar os valores como variáveis de ambiente da própria instalação dá o mesmo resultado:
CENTRAL_URL=http://central.example.com JOIN_TOKEN=jt-... \
DEBIAN_FRONTEND=noninteractive apt install --install-recommends catena-streamer
As variáveis de ambiente vencem as respostas do debconf. Nenhuma das duas vias sobrescreve o que a máquina já tem: um endereço e um token já presentes sobrevivem tanto a uma reinstalação quanto a uma atualização do pacote.
Veja-o chegar¶
Em segundos o streamer se registra e aparece no registro. O central emite o seu node_id e devolve uma chave de streamer, que o streamer guarda junto com o identificador no seu diretório de estado (/var/lib/catena por padrão).
A partir daí o token de adesão é irrelevante para essa máquina: a cada reinício o streamer se autentica com a sua chave e não se registra de novo. Fechar a janela ou deixá-la expirar não afeta os streamers que já aderiram.
Um streamer recém-chegado não traz nada. Quais canais rodam nele quem decide é o central, não uma configuração na própria máquina.
Se o streamer não aparecer¶
As «Adesões rejeitadas» sobem. O streamer alcança o central e o central o recusa: a janela fechou, ou o token está errado ou expirado. Abra a janela de novo e copie o token novamente. Um registro recusado não é uma falha definitiva — o streamer continua tentando com pausas crescentes, então ele se admite sozinho assim que existir uma janela válida, sem mexer em nada no streamer.
O contador não se move e nada chega. Então o streamer não alcança o central de forma alguma. Verifique o endereço a partir do shell do próprio streamer — ele precisa resolver e responder ali, não apenas da sua máquina — e leia o log do streamer:
journalctl -u catena -n 50
O streamer aparece duas vezes. O registro não é idempotente: cada registro aceito cria um registro novo com um node_id novo. Repeti-lo em uma máquina que já havia aderido — quase sempre depois de apagar o diretório de estado e começar do zero — deixa o registro antigo no lugar e marca as duas linhas como duplicado. Exclua o obsoleto.