Documentação
MCSManager
Ligue um painel MCSManager e o Provibr aprovisiona, controla e importa servidores de jogo nele. Esta página cobre o que difere dos outros painéis de jogo.
Chave de API
O MCSManager autentica-se com uma única chave de API, sem cliente OAuth2 e sem par de chaves. Crie uma no painel, dentro da própria conta, e cole-a no Provibr juntamente com a URL do painel.
- Anfitrião: a URL completa do painel, com a porta, por exemplo http://painel.example.com:23333. O MCSManager usa HTTP simples na 23333 por predefinição, e não há porta que o Provibr possa acrescentar sem adivinhar.
- Chave de API: a chave de 32 caracteres que o painel gera. Há uma chave por utilizador do painel e criar uma segunda sobrepõe-se à primeira, por isso convém dar ao Provibr um utilizador próprio em vez da conta de trabalho diário.
- Impressão digital TLS (opcional): apenas para um anfitrião https://, para fixar o certificado.
A chave tem de pertencer a um administrador: criar, alterar e remover instâncias são rotas exclusivas de administrador, pelo que uma chave de um utilizador comum consegue ler o painel mas não aprovisionar nada. O Provibr verifica isso ao testar a ligação, e não apenas na primeira encomenda. É além disso um mandato amplo: a mesma chave abre o gestor de ficheiros e a gestão de utilizadores do painel, e essa é a segunda razão para lhe dar um utilizador próprio.
Transporte
O MCSManager serve HTTP simples na porta 23333 e não traz certificado próprio. Se o painel estiver atrás de um reverse proxy com TLS, preencha a impressão digital desse proxy; o agente passa então a confiar nesse único certificado em vez de desligar a verificação. Leia-a com:
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Deixe o campo vazio com 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 a fixar. Um painel em http simples funciona, mas a chave de API e tudo o que a integração faz viajam então sem cifra.
Instâncias
Uma instância do MCSManager é no fundo um comando de arranque e uma pasta de trabalho. Não há egg, não há código de jogo e não há modelo com variáveis, por isso o Provibr não constrói um servidor a partir de uma entrada de catálogo: o comando de arranque vem do plano de jogo que se escreve.
Planos
Um plano de jogo leva o comando de arranque e, se o servidor precisar, a forma de o parar. A encomenda passa por um plano: o que corre vem do plano, e o daemon onde a instância aterra vem das definições da integração, ou é escolhido automaticamente quando o painel só tem um.
- Comando de arranque: obrigatório. Nada mais decide o que corre, por isso, ao contrário de um painel com eggs, não há predefinição a que recorrer.
- Comando de paragem: opcional. Vazio significa ^C, a notação própria do MCSManager para SIGINT e a predefinição do painel; um servidor Minecraft quer stop.
- Tempo de espera da paragem: opcional. Vazio significa a predefinição do painel, 10 segundos, após os quais o daemon intervém de forma dura.
Colocação
O MCSManager lista os seus daemons e indica a memória total de cada um, por isso o motor de colocação tem um teto real para ordenar, mais do que oferecem o PufferPanel e o GameAP. Num painel com um só daemon, que é a instalação corrente, o agente escolhe-o sozinho e não há nada a preencher.
Suspensão
O MCSManager suspende através de uma data de expiração na instância, e o próprio painel fá-la cumprir: o daemon recusa arrancar uma instância cujo prazo passou. É por isso a suspensão honesta: quem entrar diretamente na interface do MCSManager não consegue arrancar um servidor suspenso pelo Provibr, o que no PufferPanel e no GameAP não acontece.
- A suspensão também para o servidor. A verificação própria do painel corre uma vez por hora, por isso sem esse segundo passo uma instância em execução continuaria até sessenta minutos depois de suspensa.
- Retomar repõe a expiração anterior em vez de a apagar. Se já estivesse definida uma data, apagá-la transformaria a instância, em silêncio, numa que nunca expira.
Docker
O MCSManager executa uma instância de duas maneiras: como processo simples num pty, ou dentro de um contentor Docker. Todo o limite de recursos que o painel conhece pertence à segunda: memória, CPU e disco. Um processo simples corre sem cgroup, sem teto de memória e sem quota de disco.
O que o Provibr não faz
Não há consola: o terminal do MCSManager vai por socket.io com um heartbeat próprio em vez de um websocket simples, e o endereço de daemon que o painel devolve é local e um agente noutro sítio não lhe chega. Também não há gráficos de uso. CPU e memória são medições reais, mas o disco está fixado a zero no daemon e a rede falta por completo, pelo que dois dos quatro gráficos ficariam a zero para sempre. A reinstalação é recusada com um motivo legível, porque o MCSManager só reinstala a partir de uma predefinição e o Provibr não cria a partir de uma. Criar, arrancar, parar, reiniciar, matar, ler o estado, suspender, retomar, eliminar e importar instâncias existentes funcionam todos.