Documentation
MCSManager
Connectez un panneau MCSManager et Provibr y provisionne, contrôle et importe des serveurs de jeu. Cette page couvre ce qui diffère des autres panneaux de jeu.
Clé d'API
MCSManager s'authentifie avec une seule clé d'API, sans client OAuth2 ni paire de clés. Créez-en une dans le panneau, sous votre compte, puis collez-la dans Provibr avec l'URL du panneau.
- Hôte : l'URL complète du panneau avec le port, par exemple http://panel.example.com:23333. MCSManager tourne par défaut en HTTP en clair sur le 23333, et il n'y a aucun port que Provibr puisse ajouter sans deviner.
- Clé d'API : la clé de 32 caractères que le panneau génère. Il y a une clé par utilisateur du panneau et en créer une deuxième écrase la première ; donnez donc à Provibr un utilisateur dédié plutôt que le compte dans lequel vous travaillez tous les jours.
- Empreinte TLS (facultative) : uniquement pour un hôte https://, afin d'épingler le certificat.
La clé doit appartenir à un administrateur : créer, modifier et supprimer des instances sont des routes réservées aux administrateurs, donc une clé d'utilisateur ordinaire peut lire le panneau mais ne peut rien provisionner. Provibr le vérifie au test de connexion, et non à la première commande. C'est en outre un mandat large : la même clé ouvre le gestionnaire de fichiers et la gestion des utilisateurs du panneau, ce qui est la deuxième raison de lui donner un utilisateur dédié.
Transport
MCSManager sert du HTTP en clair sur le port 23333 et n'apporte aucun certificat. Si le panneau est derrière un reverse proxy avec TLS, renseignez l'empreinte de ce proxy ; l'agent fait alors confiance à ce seul certificat au lieu de désactiver la vérification. Lisez-la avec :
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Laissez le champ vide pour un certificat d'une autorité publique, et aussi lorsque le panneau n'est joignable qu'en http. Une empreinte à côté d'une adresse http est refusée, car il n'y a aucun certificat à épingler. Un panneau en http fonctionne, mais la clé d'API et tout ce que fait l'intégration circulent alors en clair.
Instances
Une instance MCSManager est au fond une commande de démarrage et un répertoire de travail. Il n'y a ni egg, ni code de jeu, ni modèle avec des variables, donc Provibr ne construit pas un serveur à partir d'une entrée de catalogue : la commande de démarrage vient du plan de jeu que vous écrivez.
Plans
Un plan de jeu porte la commande de démarrage et, si le serveur en a besoin, la façon de l'arrêter. La commande passe par un plan : ce qui tourne vient du plan, et le daemon sur lequel l'instance atterrit vient des réglages de l'intégration, ou est choisi pour vous quand le panneau n'en a qu'un.
- Commande de démarrage : obligatoire. Rien d'autre ne décide de ce qui tourne ; contrairement à un panneau à eggs, il n'y a aucune valeur par défaut sur laquelle se rabattre.
- Commande d'arrêt : facultative. Vide signifie ^C, la notation propre de MCSManager pour SIGINT et la valeur par défaut du panneau ; un serveur Minecraft veut stop.
- Délai d'arrêt : facultatif. Vide signifie la valeur par défaut du panneau, 10 secondes, après quoi le daemon intervient durement.
Placement
MCSManager liste ses daemons et indique la mémoire totale de chacun, le moteur de placement dispose donc d'un vrai plafond pour classer, plus que ce qu'offrent PufferPanel et GameAP. Sur un panneau à un seul daemon, ce qui est l'installation ordinaire, l'agent le choisit lui-même et il n'y a rien à saisir.
Suspension
MCSManager suspend au moyen d'une date d'expiration posée sur l'instance, et le panneau la fait respecter lui-même : le daemon refuse de démarrer une instance dont le délai est passé. C'est donc la suspension honnête : qui se connecte directement à l'interface MCSManager ne peut pas démarrer un serveur suspendu par Provibr, ce qui n'est le cas ni chez PufferPanel ni chez GameAP.
- La suspension arrête aussi le serveur. Le balayage propre du panneau tourne une fois par heure ; sans cette seconde étape, une instance en marche continuerait donc jusqu'à soixante minutes après la suspension.
- La reprise rétablit l'expiration précédente au lieu de l'effacer. Si une date était déjà posée, l'effacer transformerait discrètement l'instance en une instance qui n'expire jamais.
Docker
MCSManager exécute une instance de deux façons : comme simple processus dans un pty, ou dans un conteneur Docker. Toute limite de ressources que connaît le panneau relève de la seconde : mémoire, processeur, disque. Un simple processus tourne sans cgroup, sans plafond mémoire et sans quota de disque.
Ce que Provibr ne fait pas
Il n'y a pas de console : le terminal de MCSManager passe par socket.io avec son propre heartbeat plutôt que par un websocket simple, et l'adresse de daemon que rend le panneau est une adresse locale qu'un agent situé ailleurs n'atteint pas. Il n'y a pas non plus de graphiques d'usage. Le processeur et la mémoire sont de vraies mesures, mais le disque est figé à zéro dans le daemon et le réseau manque entièrement, deux des quatre graphiques resteraient donc à zéro pour toujours. La réinstallation est refusée avec un motif lisible, car MCSManager ne réinstalle qu'à partir d'un préréglage et Provibr n'en crée pas depuis un. Créer, démarrer, arrêter, redémarrer, tuer, lire l'état, suspendre, reprendre, supprimer et importer des instances existantes fonctionnent tous.