Ir al contenido

Documentación

MCSManager

Conecte un panel MCSManager y Provibr aprovisiona, controla e importa servidores de juego en él. Esta página cubre lo que difiere de los demás paneles de juego.

Clave de API

MCSManager se autentica con una única clave de API: ni un cliente OAuth2 ni un par de claves. Cree una en el panel, dentro de la propia cuenta, y péguela en Provibr junto con la URL del panel.

  • Host: la URL completa del panel con el puerto, por ejemplo http://panel.example.com:23333. MCSManager usa HTTP sin cifrar en el 23333 de forma predeterminada, y no hay puerto que Provibr pueda añadir sin adivinar.
  • Clave de API: la clave de 32 caracteres que genera el panel. Hay una clave por usuario del panel y crear una segunda sobrescribe la primera, así que conviene dar a Provibr un usuario propio en lugar de la cuenta de trabajo diario.
  • Huella TLS (opcional): solo para un host https://, para fijar el certificado.
En una instalación nueva de MCSManager las claves de API están desactivadas. Mientras no se activen en Ajustes → API, toda llamada responde 403 Insufficient Permissions: la misma respuesta que da una clave revocada, y nada en ella apunta a ese interruptor.

La clave debe pertenecer a un administrador: crear, modificar y eliminar instancias son rutas exclusivas de administrador, así que una clave de un usuario corriente puede leer el panel pero no aprovisionar nada. Provibr lo comprueba al probar la conexión, no en el primer pedido. Además es un mandato amplio: la misma clave abre el gestor de archivos y la gestión de usuarios del panel, y esa es la segunda razón para darle un usuario propio.

Transporte

MCSManager sirve HTTP sin cifrar en el puerto 23333 y no trae certificado propio. Si el panel está detrás de un reverse proxy con TLS, rellene la huella de ese proxy; el agente confía entonces en ese único certificado en lugar de desactivar la verificación. Se lee con:

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Los comandos y la salida del terminal están en inglés en todas partes, en el panel y en estas páginas. Un solo texto, una sola verdad: lo que se lee aquí es literalmente lo que devolverá su host.

Deje el campo vacío con un certificado de una autoridad pública, y también cuando el panel solo sea accesible por http: una huella junto a una dirección http se rechaza, porque no hay certificado que fijar. Un panel en http sin cifrar funciona, pero la clave de API y todo lo que hace la integración viajan entonces sin cifrar.

Instancias

Una instancia de MCSManager es en esencia un comando de inicio y un directorio de trabajo. No hay egg, ni código de juego, ni plantilla con variables, así que Provibr no construye un servidor a partir de una entrada de catálogo: el comando de inicio viene del plan de juego que se define.

El panel sí trae 63 preajustes de instalación, pero ninguno lleva identificador: MCSManager busca un preajuste por su título y su descripción, una frase entera, los títulos no son únicos y ambos valores siguen el idioma del panel. Un vínculo basado en eso se rompe en cuanto alguien cambia el idioma del panel, y por eso Provibr no los ofrece como lista desplegable.

Planes

Un plan de juego lleva el comando de inicio y, si el servidor lo necesita, cómo detenerlo. El pedido se hace mediante un plan: lo que se ejecuta viene del plan, y el daemon en el que aterriza viene de los ajustes de la integración, o se elige solo cuando el panel tiene uno único.

  • Comando de inicio: obligatorio. Nada más decide qué se ejecuta, así que, a diferencia de un panel con eggs, no hay valor por defecto al que recurrir.
  • Comando de parada: opcional. Vacío significa ^C, la notación propia de MCSManager para SIGINT y el valor por defecto del panel; un servidor de Minecraft quiere stop.
  • Tiempo de espera de parada: opcional. Vacío significa el valor por defecto del panel, 10 segundos, tras los cuales el daemon interviene de forma dura.
El comando de inicio no pasa por un shell. MCSManager lo parte por espacios y entrega las piezas como argumentos, así que las comillas, las tuberías y las redirecciones no hacen lo esperado: una construcción bash -c vuelve como error de sintaxis dentro del servidor. Ponga en un archivo de script todo lo que necesite un shell y arranque ese archivo.

Ubicación

MCSManager sí lista sus daemons e informa de la memoria total de cada uno, así que el motor de ubicación tiene un techo real con el que ordenar, más de lo que ofrecen PufferPanel y GameAP. En un panel con un solo daemon, que es la instalación corriente, el agente lo elige y no hay nada que rellenar.

Con varios daemons, indique el predeterminado en los ajustes de la integración. Si se deja vacío, Provibr rechaza el pedido en lugar de adivinar: una instancia no se puede mover después a otra máquina.

Suspensión

MCSManager suspende mediante una fecha de caducidad puesta en la instancia, y el propio panel la hace cumplir: el daemon se niega a arrancar una instancia cuyo plazo ha pasado. Eso convierte a esta en la suspensión honesta: quien entre directamente en la interfaz de MCSManager no puede arrancar un servidor suspendido por Provibr, y en PufferPanel y GameAP eso no es así.

  • La suspensión también detiene el servidor. El barrido propio del panel se ejecuta una vez por hora, así que sin ese segundo paso una instancia en marcha seguiría funcionando hasta sesenta minutos después de suspenderla.
  • Reanudar restaura la caducidad anterior en lugar de borrarla. Si ya había una fecha puesta, borrarla convertiría la instancia, en silencio, en una que nunca caduca.
Ese campo de caducidad es del propio MCSManager: su modo de negocio lo usa para vender instancias por horas. Con ese modo activo, el panel escribe en el mismo campo que Provibr y ambos se pisan el trabajo, por lo que Provibr rechaza las credenciales mientras esté encendido.

Docker

MCSManager ejecuta una instancia de dos maneras: como proceso simple en un pty o dentro de un contenedor Docker. Todo límite de recursos que conoce el panel pertenece a la segunda: memoria, CPU y disco. Un proceso simple corre sin cgroup, sin techo de memoria y sin cuota de disco.

En un panel sin Docker, por tanto, no hay nada limitado. Provibr no rechaza un panel así, porque todos los comandos funcionan en él, pero un plan que promete 2 GB de memoria promete entonces algo que el panel no hace cumplir. Compruebe que Docker esté instalado antes de vender ahí un producto acotado; Provibr lo indica en la integración cuando falta.

Lo que Provibr no hace

No hay consola: la terminal de MCSManager va por socket.io con un heartbeat propio en lugar de un websocket simple, y la dirección de daemon que devuelve el panel es una local que un agente situado en otro sitio no alcanza. Tampoco hay gráficas de uso. CPU y memoria son medidas reales, pero el disco está fijado a cero en el daemon y la red falta por completo, así que dos de las cuatro gráficas se quedarían en cero para siempre. La reinstalación se rechaza con un motivo legible, porque MCSManager solo reinstala desde un preajuste y Provibr no crea desde uno. Crear, arrancar, detener, reiniciar, matar, leer el estado, suspender, reanudar, eliminar e importar instancias existentes sí funciona todo.