Săriți la conținut

Documentație

MCSManager

Conectați un panou MCSManager, iar Provibr aprovizionează, controlează și importă servere de joc pe el. Această pagină acoperă ce diferă față de celelalte panouri de joc.

Cheie API

MCSManager se autentifică cu o singură cheie API, fără client OAuth2 și fără pereche de chei. Creați una în panou, în contul dumneavoastră, apoi lipiți-o în Provibr împreună cu adresa panoului.

  • Gazdă: adresa completă a panoului, cu portul, de exemplu http://panou.example.com:23333. MCSManager folosește HTTP simplu pe 23333 în mod implicit, și nu există port pe care Provibr să-l poată adăuga fără să ghicească.
  • Cheie API: cheia de 32 de caractere pe care o generează panoul. Există o singură cheie pentru fiecare utilizator al panoului, iar crearea celei de-a doua o suprascrie pe prima, așa că dați-i Provibr un utilizator propriu în locul contului în care lucrați zilnic.
  • Amprentă TLS (opțională): doar pentru o gazdă https://, ca să fixați certificatul.
Într-o instalare nouă de MCSManager cheile API sunt oprite. Cât timp nu le porniți din Setări → API, fiecare apel răspunde 403 Insufficient Permissions. Este același răspuns pe care îl dă o cheie revocată, și nimic din el nu arată spre acel comutator.

Cheia trebuie să aparțină unui administrator: crearea, modificarea și ștergerea instanțelor sunt rute rezervate administratorilor, așa că o cheie a unui utilizator obișnuit poate citi panoul, dar nu poate aproviziona nimic. Provibr verifică asta la testul de conexiune, nu abia la prima comandă. Este pe deasupra un mandat larg (aceeași cheie deschide gestionarul de fișiere și gestiunea utilizatorilor panoului), și acesta este al doilea motiv să îi dați un utilizator propriu.

Transport

MCSManager servește HTTP simplu pe portul 23333 și nu aduce niciun certificat propriu. Dacă panoul stă în spatele unui reverse proxy cu TLS, completați amprenta acelui proxy; agentul are atunci încredere doar în acel certificat, în loc să oprească verificarea. Citiți-o cu:

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Comenzile și ieșirea din terminal sunt în engleză peste tot, în panou și în aceste pagini. Un singur text, un singur adevăr: ce citiți aici este literalmente ce va afișa gazda dumneavoastră.

Lăsați câmpul gol la un certificat de la o autoritate publică și, de asemenea, când panoul este accesibil doar prin http: o amprentă lângă o adresă http este respinsă, pentru că nu există niciun certificat de fixat. Un panou pe http simplu funcționează, dar cheia API și tot ce face integrarea circulă atunci necriptat.

Instanțe

O instanță MCSManager este în fond o comandă de pornire și un director de lucru. Nu există egg, nu există cod de joc și nu există șablon cu variabile, așa că Provibr nu construiește un server dintr-o intrare de catalog: comanda de pornire vine din planul de joc pe care îl scrieți.

Panoul poartă într-adevăr 63 de presetări de instalare, dar niciuna nu are identificator: MCSManager caută o presetare după titlul și descrierea ei, o frază întreagă, titlurile nu sunt unice, iar ambele valori urmează limba panoului. O legătură clădită pe asta se rupe de îndată ce cineva schimbă limba panoului, și de aceea Provibr nu le oferă ca listă derulantă.

Planuri

Un plan de joc poartă comanda de pornire și, dacă serverul are nevoie, felul în care este oprit. Comanda trece printr-un plan: ce rulează vine din plan, iar daemonul pe care aterizează instanța vine din setările integrării, sau este ales automat când panoul are unul singur.

  • Comandă de pornire: obligatorie. Nimic altceva nu decide ce rulează, așa că, spre deosebire de un panou cu egg-uri, nu există valoare implicită la care să se revină.
  • Comandă de oprire: opțională. Gol înseamnă ^C, notația proprie a MCSManager pentru SIGINT și valoarea implicită a panoului; un server Minecraft vrea stop.
  • Timp de așteptare la oprire: opțional. Gol înseamnă valoarea implicită a panoului, 10 secunde, după care daemonul intervine dur.
Comanda de pornire nu trece printr-un shell. MCSManager o taie la spații și predă bucățile ca argumente, așa că ghilimelele, conductele și redirectările nu fac ce vă așteptați: o construcție bash -c se întoarce ca eroare de analiză în interiorul serverului. Puneți într-un fișier de script tot ce are nevoie de un shell și porniți acel fișier.

Plasare

MCSManager își listează daemonii și raportează memoria totală a fiecăruia, așa că motorul de plasare are un plafon real după care să ordoneze, mai mult decât oferă PufferPanel și GameAP. Pe un panou cu un singur daemon, care este instalarea obișnuită, agentul îl alege singur și nu aveți nimic de completat.

Cu mai mulți daemoni, indicați-l pe cel implicit în setările integrării. Dacă rămâne gol, Provibr refuză comanda în loc să ghicească: o instanță nu se mai mută pe altă mașină după aceea.

Suspendare

MCSManager suspendă printr-un moment de expirare pus pe instanță, iar panoul îl impune el însuși: daemonul refuză să pornească o instanță al cărei termen a trecut. Asta face din ea suspendarea onestă: cine intră direct în interfața MCSManager nu poate porni un server suspendat de Provibr, ceea ce la PufferPanel și GameAP nu este cazul.

  • Suspendarea oprește și serverul. Verificarea proprie a panoului rulează o dată pe oră, așa că fără acest al doilea pas o instanță în funcțiune ar mai merge până la șaizeci de minute după suspendare.
  • Reluarea pune la loc expirarea anterioară în loc să o șteargă. Dacă fusese deja pusă o dată de expirare, ștergerea ei ar transforma instanța, în tăcere, în una care nu expiră niciodată.
Acel câmp de expirare este al MCSManager: modul lui comercial îl folosește ca să vândă instanțe la oră. Cu acel mod pornit, panoul scrie în același câmp ca Provibr și cele două se suprascriu reciproc, de aceea Provibr refuză datele de autentificare cât timp este pornit.

Docker

MCSManager rulează o instanță în două feluri: ca proces simplu într-un pty sau într-un container Docker. Orice limită de resurse pe care o cunoaște panoul (memorie, CPU, disc) ține de al doilea. Un proces simplu rulează fără cgroup, fără plafon de memorie și fără cotă de disc.

Pe un panou fără Docker nu este, așadar, nimic limitat. Provibr nu refuză un astfel de panou, pentru că orice comandă funcționează pe el, dar un plan care promite 2 GB de memorie promite atunci ceva ce panoul nu impune. Verificați că Docker este instalat înainte de a vinde acolo un produs delimitat; Provibr semnalează asta pe integrare atunci când lipsește.

Ce nu face Provibr

Nu există consolă: terminalul MCSManager merge printr-un socket.io cu un heartbeat propriu în loc de un websocket simplu, iar adresa de daemon pe care o dă panoul este una locală, la care un agent aflat altundeva nu ajunge. Nu există nici grafice de utilizare: CPU și memoria sunt măsurători reale, dar discul este fixat pe zero în daemon, iar rețeaua lipsește cu totul, așa că două din cele patru grafice ar rămâne la zero pentru totdeauna. Reinstalarea este refuzată cu un motiv lizibil, pentru că MCSManager reinstalează doar dintr-o presetare, iar Provibr nu creează dintr-una. Crearea, pornirea, oprirea, repornirea, terminarea forțată, citirea stării, suspendarea, reluarea, ștergerea și importul instanțelor existente funcționează toate.