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.
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:
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Lă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.
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.
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.
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ă.
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.
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.