Dokumentation
MCSManager
Verbinden Sie ein MCSManager-Panel, und Provibr stellt darauf Gameserver bereit, steuert und importiert sie. Diese Seite beschreibt, was sich von den anderen Gamepanels unterscheidet.
API-Schlüssel
MCSManager authentifiziert sich mit einem einzigen API-Schlüssel, ohne OAuth2-Client und ohne Schlüsselpaar. Erstellen Sie einen im Panel unter Ihrem Konto und fügen Sie ihn zusammen mit der Panel-URL in Provibr ein.
- Host: die vollständige Panel-URL samt Port, zum Beispiel http://panel.example.com:23333. MCSManager läuft standardmäßig über einfaches HTTP auf 23333, und es gibt keinen Port, den Provibr ohne Raten ergänzen könnte.
- API-Schlüssel: der 32 Zeichen lange Schlüssel, den das Panel erzeugt. Es gibt einen Schlüssel je Panel-Benutzer, und ein zweiter überschreibt den ersten; geben Sie Provibr deshalb einen eigenen Panel-Benutzer statt des Kontos, in dem Sie täglich arbeiten.
- TLS-Fingerabdruck (optional): nur bei einem https://-Host, um das Zertifikat anzuheften.
Der Schlüssel muss zu einem Administrator gehören: Instanzen anlegen, ändern und entfernen sind allesamt Admin-Routen, ein Schlüssel eines gewöhnlichen Benutzers kann das Panel also lesen, aber nichts bereitstellen. Provibr prüft das beim Verbindungstest und nicht erst bei der ersten Bestellung. Es ist außerdem ein weites Mandat: Derselbe Schlüssel öffnet die Dateiverwaltung und die Benutzerverwaltung des Panels, und das ist der zweite Grund für einen eigenen Benutzer.
Transport
MCSManager liefert einfaches HTTP auf Port 23333 aus und bringt kein eigenes Zertifikat mit. Steht das Panel hinter einem Reverse-Proxy mit TLS, tragen Sie den Fingerabdruck dieses Proxys ein; der Agent vertraut dann genau diesem Zertifikat, statt die Prüfung abzuschalten. Auslesen mit:
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Lassen Sie das Feld leer bei einem Zertifikat einer öffentlichen Stelle und auch dann, wenn das Panel nur über http erreichbar ist. Ein Fingerabdruck neben einer http-Adresse wird abgelehnt, denn es gibt kein Zertifikat zum Anheften. Ein Panel über einfaches http funktioniert, aber der API-Schlüssel und alles, was die Integration tut, reisen dann unverschlüsselt.
Instanzen
Eine MCSManager-Instanz ist im Kern ein Startbefehl und ein Arbeitsverzeichnis. Es gibt kein Egg, keinen Game-Code und keine Vorlage mit Variablen, also baut Provibr keinen Server aus einem Katalogeintrag: Der Startbefehl kommt aus dem Gameplan, den Sie schreiben.
Pläne
Ein Gameplan trägt den Startbefehl und, falls der Server das braucht, die Art ihn zu stoppen. Bestellt wird über einen Plan: Was läuft, kommt aus dem Plan, und der Daemon, auf dem er landet, kommt aus den Einstellungen der Integration, oder wird für Sie gewählt, wenn das Panel nur einen hat.
- Startbefehl: erforderlich. Nichts anderes bestimmt, was läuft; anders als bei einem Panel mit Eggs gibt es keinen Standard, auf den man zurückfällt.
- Stoppbefehl: optional. Leer bedeutet ^C, MCSManagers eigene Schreibweise für SIGINT und der Standard des Panels; ein Minecraft-Server will stop.
- Stopp-Zeitlimit: optional. Leer bedeutet den Standard des Panels, 10 Sekunden, danach greift der Daemon hart ein.
Platzierung
MCSManager listet seine Daemons auf und meldet je Daemon den Gesamtspeicher, die Platzierung hat also eine echte Obergrenze zum Sortieren, mehr, als PufferPanel und GameAP bieten. Auf einem Panel mit einem Daemon, und das ist die gewöhnliche Installation, wählt der Agent ihn selbst, und es ist nichts einzutragen.
Sperren
MCSManager sperrt über einen Ablaufzeitpunkt an der Instanz, und das Panel setzt ihn selbst durch: Der Daemon weigert sich, eine abgelaufene Instanz zu starten. Das macht dies zur ehrlichen Art der Sperre: Wer sich direkt in der MCSManager-Oberfläche anmeldet, kann einen von Provibr gesperrten Server nicht starten, und das gilt bei PufferPanel und GameAP gerade nicht.
- Das Sperren stoppt den Server außerdem. Die eigene Prüfung des Panels läuft einmal pro Stunde; ohne diesen zweiten Schritt liefe eine laufende Instanz nach dem Sperren also noch bis zu sechzig Minuten weiter.
- Das Entsperren stellt den vorherigen Ablaufzeitpunkt wieder her, statt ihn zu löschen. War bereits ein Ablauf gesetzt, würde ein Löschen die Instanz stillschweigend in eine verwandeln, die nie ausläuft.
Docker
MCSManager führt eine Instanz auf zwei Arten aus: als einfachen Prozess in einer Pty oder in einem Docker-Container. Jede Ressourcengrenze, die das Panel kennt, gehört zur zweiten: Speicher, CPU und Festplatte. Ein einfacher Prozess läuft ohne cgroup, ohne Speicherobergrenze und ohne Plattenkontingent.
Was Provibr nicht tut
Eine Konsole gibt es nicht: Das Terminal von MCSManager läuft über socket.io mit einem eigenen Heartbeat statt über einen einfachen WebSocket, und die Daemon-Adresse, die das Panel herausgibt, ist eine lokale, die ein Agent anderswo nicht erreicht. Verbrauchsgrafiken gibt es ebenso wenig. CPU und Speicher sind echte Messungen, aber die Festplatte ist im Daemon fest auf null gesetzt und das Netzwerk fehlt ganz, zwei der vier Grafiken stünden also für immer auf null. Neuinstallieren wird mit einer lesbaren Begründung abgelehnt, denn MCSManager installiert nur aus einer Vorlage neu, und Provibr legt nicht aus einer an. Anlegen, Starten, Stoppen, Neustarten, Abschießen, Status lesen, Sperren, Entsperren, Löschen und das Importieren vorhandener Instanzen funktionieren alle.