Zum Inhalt springen

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.
In einer frischen MCSManager-Installation sind API-Schlüssel abgeschaltet. Solange Sie sie nicht unter Einstellungen → API einschalten, antwortet jeder Aufruf mit 403 Insufficient Permissions, dieselbe Antwort wie bei einem widerrufenen Schlüssel, und nichts darin weist auf diesen Schalter hin.

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:

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Befehle und Terminal-Ausgaben sind überall auf Englisch, im Panel und auf diesen Seiten. Ein Text, eine Wahrheit: Was Sie hier lesen, ist wörtlich das, was Ihr Host zurückschreibt.

Lassen 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.

Das Panel führt zwar 63 Installationsvorlagen, aber keine einzige hat eine Kennung. MCSManager sucht eine Vorlage über ihren Titel und ihre Beschreibung, einen ganzen Satz, die Titel sind nicht eindeutig, und beide Werte folgen der Sprache des Panels. Eine Verknüpfung darauf bricht, sobald jemand das Panel auf eine andere Sprache stellt; deshalb bietet Provibr sie nicht als Auswahlliste an.

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.
Der Startbefehl läuft nicht durch eine Shell. MCSManager teilt ihn an Leerzeichen und übergibt die Teile als Argumente, also tun Anführungszeichen, Pipes und Umleitungen nicht das, was Sie erwarten. Eine bash -c-Konstruktion kommt als Parse-Fehler im Server zurück. Legen Sie alles, was eine Shell braucht, in eine Skriptdatei und starten Sie diese.

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.

Bei mehreren Daemons tragen Sie den Standard-Daemon in den Einstellungen der Integration ein. Bleibt das Feld leer, lehnt Provibr die Bestellung ab, statt zu raten: Eine Instanz lässt sich nachträglich nicht auf eine andere Maschine verschieben.

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.
Dieses Ablauffeld gehört MCSManager selbst: Sein Business-Modus verkauft damit Instanzen stundenweise. Ist der Business-Modus an, schreibt das Panel in dasselbe Feld wie Provibr, und beide überschreiben einander, weshalb Provibr die Zugangsdaten ablehnt, solange er eingeschaltet ist.

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.

Auf einem Panel ohne Docker ist also überhaupt nichts begrenzt. Provibr lehnt ein solches Panel nicht ab, denn jeder Befehl funktioniert darauf, aber ein Plan, der 2 GB Speicher verspricht, verspricht dann etwas, das das Panel nicht durchsetzt. Prüfen Sie, ob Docker installiert ist, bevor Sie darauf ein begrenztes Produkt verkaufen; Provibr meldet es an der Integration, wenn es fehlt.

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.