Ir para o conteúdo

Documentação

Pelican

O Pelican executa os seus servidores de jogos: um egg descreve de que é construído um servidor, um nó suporta-o, uma alocação dá-lhe o seu endereço. O Provibr chega até ele a partir de um agente dentro da sua própria rede, por isso o painel não precisa de nenhuma porta de entrada e nada é instalado nele.

Duas chaves de API

O Pelican tem duas APIs com duas chaves diferentes, e o Provibr precisa das duas. Vêm de dois ecrãs diferentes, e ambas têm de pertencer a uma conta com direitos de administrador.

  • A chave de aplicação, de Admin → API Keys. Começa por papp_ e gere os servidores: criar, suspender, reinstalar, eliminar. Dê-lhe acesso de leitura e escrita a Server, Node, Allocation, User e Egg.
  • A chave de cliente, da sua própria Profile → API Keys. Começa por pacc_ e transporta os comandos de energia, os valores de utilização em direto e a consola.
Copie a chave de cliente no momento em que aparece. O Pelican mostra-a uma única vez e a lista guarda apenas um identificador curto depois disso. Esse identificador é aceite como chave, por isso colá-lo dá-lhe um simples erro de autenticação em vez de uma pista de que copiou a coisa errada. A chave de aplicação pode voltar a ser lida por inteiro a partir da lista.
Não há alternativa por linha de comandos: o Pelican não traz nenhum comando artisan para chaves de API, por isso ambas são criadas através da interface web.

O que preenche

Quatro campos, e só o último é opcional.

  • O endereço do painel, por exemplo https://panel.example.com. Acrescente uma porta apenas se o painel funcionar mesmo numa; atrás de um proxy inverso responde na porta predefinida do seu esquema.
  • A chave de aplicação começada por papp_.
  • A chave de cliente começada por pacc_.
  • A impressão digital TLS do painel, necessária apenas quando o seu certificado é autoassinado.
Atenção a qual chave vai em cada campo. O Pelican aceita também uma chave de cliente na API de gestão, por isso trocar as duas não produz um erro visível. O prefixo é a única coisa que as distingue, e o Provibr verifica-o dos dois lados exatamente por essa razão.

Certificado autoassinado

Se o painel apresentar um certificado autoassinado, preencha a sua impressão digital. O agente passa então a confiar nesse certificado em concreto em vez de desligar a verificação. Leia-a com:

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
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.

Deixe o campo vazio para um certificado de uma autoridade pública e também quando o painel só estiver acessível por http. Uma impressão digital ao lado de um endereço http é recusada, porque não há certificado para fixar. Um painel em http simples funciona, mas as duas chaves viajam então sem encriptação pela sua rede.

Os eggs e as suas variáveis

Um servidor é construído a partir de um egg: uma imagem Docker, um comando de arranque e um conjunto de variáveis que o próprio egg define. O Provibr lê a lista a partir do seu painel, por isso o formulário de encomenda oferece os eggs que tem de facto, em vez de pedir um número.

O Provibr recusa uma encomenda quando uma variável que o egg marca como obrigatória fica vazia, mesmo que o próprio painel a aceitasse. É intencional: o Pelican cria o servidor à mesma e o contentor falha depois no primeiro arranque, o que é uma resposta muito pior do que um campo que fica vermelho.

Planos

Um plano de jogos guarda o egg, a imagem, o comando de arranque e os limites que um servidor recebe. Ligue-o a uma ou mais integrações Pelican e passa a ser encomendável.

A memória, o disco e o CPU aceitam 0 para sem limite, e o limite de CPU conta em percentagem de um núcleo: 100 é um núcleo completo, 200 são dois. O peso de E/S vai de 0 a 1000 e 500 é o valor habitual.

Em que nó assenta um servidor

O Pelican comunica quanta memória e quanto CPU cada nó tem, e quanto disso já foi distribuído. O Provibr usa ambos: um servidor novo vai para um nó com espaço para ele e é recusado com uma razão quando nenhum nó tem espaço.

Os valores que o painel comunica são a sua própria contabilidade, não uma medição: somam os limites dos servidores num nó, incluindo os que ainda estão a instalar. Um nó pode, por isso, parecer cheio quando pouco está de facto em execução.

O que pode fazer com um servidor

Toda a vida de um servidor de jogos, a partir do painel ou através da API:

  • Criá-lo a partir de um plano e removê-lo quando o cliente sai.
  • Iniciá-lo, pará-lo, reiniciá-lo e forçá-lo a parar.
  • Suspendê-lo e reativá-lo. É também o que acontece automaticamente quando uma conta ultrapassa o seu limite.
  • Reinstalá-lo, o que executa novamente o script de instalação do seu egg.

A consola

Um servidor de jogos é conduzido a partir da sua consola: comandos, jogadores e a linha de registo que explica uma falha. Corre no painel pela mesma ligação de saída que tudo o resto, por isso não há uma porta separada nem um segundo início de sessão.

Servidores que já existem

Os servidores que criou fora do Provibr ficam intactos. Pode importá-los para que apareçam no painel e contem para a sua capacidade, que é a forma de transferir um painel existente sem reconstruir nada.

Importar não toca no servidor; apenas começa a contá-lo. Enquanto não o importar, o Provibr não o gere nem o cobra.

O que esta integração não faz

Os ficheiros, as cópias de segurança, as bases de dados e os agendamentos ficam no painel Pelican, tal como gerir o painel e os próprios nós. O Provibr cobre a vida de um servidor e a sua consola, não a administração do seu painel.

O próprio Pelican continua em beta e a sua API muda entre versões. O Provibr é testado contra a 1.0.0 e o painel não oferece forma de perguntar que versão executa, por isso uma atualização que mude uma resposta aparece como um erro em vez de um aviso prévio. Leia as notas de lançamento antes de atualizar um painel com o qual o Provibr fala.