Ir para o conteúdo

Documentação

Integrações

Uma integração é um sistema com que o seu agente fala em seu nome: um hipervisor, um painel de controlo, um painel de jogos. Esta página cobre o que têm em comum: como se liga uma, o que o Provibr pode fazer com ela e como saber se funciona mesmo.

Um registo, não um monte de exceções

Cada fornecedor é descrito num único sítio: a que categoria pertence, que tipo de recurso produz, de que credenciais precisa e quais das sete capacidades tem. O painel, a plataforma e o agente leem todos essa mesma descrição. Nada no produto pergunta se um sistema por acaso é Proxmox.

É por isso que os separadores de uma integração diferem consoante o fornecedor. Existe um separador de teste porque o fornecedor declara um teste de ligação; existe um separador de sistemas operativos porque o fornecedor pode conter modelos; existe um separador de importação porque o fornecedor pode listar o que já executa. Um separador ausente é uma capacidade ausente, não uma página que não conseguiu carregar.

As categorias

Hipervisor
Executa máquinas virtuais e entrega a máquina inteira: núcleos, memória, disco, rede. Que hipervisores estão disponíveis e quais estão no roteiro é indicado na página de integrações.
Painel de controlo
Executa contas de alojamento web numa máquina que já está em funcionamento. Cria uma conta com um pacote, não com um sistema operativo. A página de integrações identifica cada painel de controlo como disponível ou roteiro.
Painel de jogos
Executa contentores de servidores de jogos, construídos a partir de uma receita e não de uma imagem de sistema operativo. Fica ao lado dos painéis de controlo e não dentro deles, porque quase nada nos dois é igual. A página de integrações mostra os painéis de jogos que já estão disponíveis.
Servidores dedicados
Máquinas físicas, instaladas através da rede e operadas fora de banda. Anunciado e não construído.
Rede
Switches e routers. Anunciado e não construído, e nem sequer aparece na página de integrações, porque os dispositivos de rede têm as suas próprias páginas e não contam como recurso.

O que um fornecedor pode fazer

Sete capacidades decidem o que aparece e o que a plataforma está disposta a enviar. Um comando que precisa de uma capacidade que o fornecedor não tem é recusado antes de chegar ao seu agente, com o motivo indicado.

  • Consola: uma vista em direto ou um terminal no recurso.
  • Firewall: a plataforma pode impor que endereços um recurso pode usar.
  • Regras de firewall: uma lista ordenada de regras que edita, mais o registo da firewall.
  • Hardware: discos e placas de rede que pode adicionar, redimensionar e remover.
  • Métricas: medições de utilização e, por isso, gráficos.
  • Sistemas operativos: modelos ou imagens a partir dos quais a plataforma pode instalar.
  • Atribuição de endereços: o Provibr decide que endereço o recurso recebe.

Ligar uma

Adicionar uma integração leva três passos: o tipo de sistema, a ligação e as credenciais. Uma categoria sem nada construído por trás fica visível mas não selecionável, para que se veja o que está a caminho sem se poder escolher.

  • Escolhe-se um agente além de um fornecedor. É esse agente que vai chegar ao sistema, por isso tem de estar numa rede que o permita.
  • O nome é seu. É uma etiqueta no painel e mais nada o lê.
  • As credenciais são validadas com as mesmas regras que o agente usa e depois enviadas para esse agente e seladas no seu cofre. A página mantém-se aberta até o agente responder.
  • Se o agente as recusar, o motivo é mostrado e os valores introduzidos mantêm-se, para que um simples erro de escrita não custe o formulário inteiro.

O que é guardado e o que não é

As credenciais nunca são escritas na base de dados da plataforma. O que fica guardado são os nomes dos campos que preencheu, o host e a porta, para que o painel tenha algo para mostrar e o registo de auditoria tenha algo para apontar.

É por isso que não há forma de ver ou editar credenciais, apenas de as voltar a enviar. O formulário começa vazio de cada vez. É também por isso que ninguém no Provibr as consegue ler.

No host são cifradas com uma chave misturada com a identidade dessa máquina. Copiar o cofre e a sua chave para outra máquina não dá nada. Não protege contra o root no seu próprio host. Esse host é seu, e as credenciais também.

Impressões digitais TLS

Todos os fornecedores que falam HTTPS oferecem um campo de impressão digital. Preencha-o e o agente passa a aceitar apenas o certificado exato que fixou, que é o que torna seguro usar um certificado autoassinado no seu próprio nó. Obtenha a impressão digital a partir do host do agente, para fixar aquilo que o agente vai realmente ver:

shell
openssl s_client -connect <host>:<port> </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Uma impressão digital ao lado de um host sem cifra é recusada em vez de ignorada, porque sugeriria uma proteção que ali não pode existir.
Os comandos e a saída do terminal estão em inglês em todo o lado, no painel e nestas páginas. Um só texto, uma só verdade: o que aqui se lê é literalmente o que o seu host vai devolver.

A lista de verificação da configuração

«Ativa» significa apenas que o agente aceitou as suas credenciais. Não significa que a integração esteja pronta para entregar máquinas. A lista de verificação por cima dos separadores mostra o que ainda falta e liga diretamente para lá.

  • Credenciais: entregues ao agente e aceites.
  • Definições: as escolhas não secretas de que o fornecedor precisa, como o nó e o intervalo de IDs de máquina. Um fornecedor sem nada a escolher salta este passo em vez de o mostrar por fazer.
  • Método de instalação: se as máquinas são clonadas a partir de um modelo ou instaladas através da rede.
  • Sistemas operativos: pelo menos uma imagem associada, para o método escolhido.
Nenhum passo é uma garantia. A lista de verificação confirma que as coisas estão preenchidas, não que estão corretas. É para isso que serve o teste.

Testar a ligação

O botão de teste coloca em fila uma chamada real ao seu sistema, executada pelo seu agente, e mostra o que veio de volta. O que comunica difere consoante o fornecedor, porque aquilo que um teste de ligação pode dizer com sentido decorre da API desse produto.

  • Proxmox: a versão e a lista de nós com o respetivo estado online.
  • DirectAdmin: a versão do painel, o número de contas, quantos comandos a sua chave de acesso pode executar e se a ligação é cifrada. Este último ponto só o seu agente consegue determinar.
  • Webmin: se o módulo Virtualmin responde, quantas contas de alojamento e planos existem e se o certificado corresponde à impressão digital indicada.
  • Pterodactyl: o número de nós e de servidores de jogos, e se a chave de cliente funciona. Sem ela não há controlo de energia nem consola, e convém saber isso antes do primeiro botão de arranque, e não depois.
Um teste numa integração cujas credenciais nunca foram aceites mostra o motivo da recusa em vez de correr, porque é essa a resposta procurada.

Desativar e eliminar

Desativar é o passo intermédio seguro: o agente deixa de receber comandos para essa integração e tudo fica onde está. Voltar a ativar repõe-na como ativa se as credenciais já tinham sido aceites e, caso contrário, à espera de credenciais, porque se ainda funcionam é algo que só um teste pode dizer.

Uma integração com servidores associados não pode ser eliminada, e a recusa indica a contagem. Esses servidores dependem da integração e desapareceriam em silêncio, contagem de licenças incluída.

Quando algo corre mal

O agente comunica um código com parâmetros, não uma frase, para que o painel possa mostrar o motivo no seu próprio idioma. Quando o outro lado disse algo por si mesmo (um corpo HTTP do seu hipervisor, um erro do seu painel), isso fica citado por baixo, sem tradução, porque é uma citação.

Há um segundo canal para o caso «funcionou, mas». Um painel que trabalha sobre uma ligação não cifrada não é uma falha, e também não é um estado, por isso aparece como aviso no separador de vista geral enquanto o seu agente o continuar a comunicar.