Naar de inhoud

Documentatie

Pelican

Pelican draait je gameservers: een egg beschrijft waaruit een server gebouwd wordt, een node draagt hem, een allocatie geeft hem zijn adres. Provibr bereikt het vanaf een agent binnen je eigen netwerk, dus het paneel heeft geen inkomende poort nodig en er wordt niets op geïnstalleerd.

Twee API-sleutels

Pelican heeft twee API's met twee verschillende sleutels, en Provibr heeft ze allebei nodig. Ze komen van twee verschillende schermen, en ze moeten allebei bij een account met beheerdersrechten horen.

  • De application-sleutel, uit Admin → API Keys. Hij begint met papp_ en beheert servers: aanmaken, opschorten, herinstalleren, verwijderen. Geef hem lees- en schrijfrechten op Server, Node, Allocation, User en Egg.
  • De client-sleutel, uit je eigen Profile → API Keys. Hij begint met pacc_ en draagt de aan/uit-commando's, live verbruikscijfers en de console.
Kopieer de client-sleutel zodra hij verschijnt. Pelican toont hem één keer en de lijst houdt daarna alleen een korte identifier over. Die identifier wordt als sleutel geaccepteerd, dus als je hem plakt krijg je een gewone authenticatiefout in plaats van een hint dat je het verkeerde gekopieerd hebt. De application-sleutel kun je wel volledig uit de lijst teruglezen.
Er is geen alternatief via de commandoregel: Pelican levert geen artisan-commando voor API-sleutels, dus je maakt ze allebei via de webinterface aan.

Wat je invult

Vier velden, en alleen het laatste is optioneel.

  • Het adres van het paneel, bijvoorbeeld https://panel.example.com. Zet er alleen een poort bij als het paneel daar echt op draait; achter een reverse proxy antwoordt het op de standaardpoort van zijn schema.
  • De application-sleutel die met papp_ begint.
  • De client-sleutel die met pacc_ begint.
  • De TLS-fingerprint van het paneel, alleen nodig als zijn certificaat self-signed is.
Let op welke sleutel in welk veld gaat. Pelican accepteert een client-sleutel óók op de beheer-API, dus de twee verwisselen levert geen zichtbare fout op. Het voorvoegsel is het enige waaraan je ze uit elkaar houdt, en Provibr controleert het aan beide kanten precies daarom.

Self-signed certificaat

Biedt het paneel een self-signed certificaat aan, vul dan zijn fingerprint in. De agent vertrouwt dan dat ene certificaat in plaats van de controle uit te zetten. Lees hem uit met:

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Commando's en terminaluitvoer zijn overal Engels, in het paneel en op deze pagina's. Één tekst, één waarheid: wat je hier leest is letterlijk wat je host teruggeeft.

Laat het veld leeg bij een certificaat van een publieke autoriteit, en ook als het paneel alleen over http bereikbaar is. Een fingerprint naast een http-adres wordt geweigerd, want er is geen certificaat om op te pinnen. Een paneel op gewoon http werkt wel, maar beide sleutels reizen dan onversleuteld over je netwerk.

Eggs en hun variabelen

Een server wordt gebouwd uit een egg: een Docker-image, een startcommando en een set variabelen die het egg zelf definieert. Provibr leest de lijst van je paneel, zodat het bestelformulier de eggs aanbiedt die je echt hebt in plaats van om een nummer te vragen.

Provibr weigert een bestelling als een variabele die het egg als verplicht markeert leeg blijft, ook al zou het paneel het zelf accepteren. Dat is bewust: Pelican maakt de server toch aan en de container crasht dan bij de eerste start, wat een veel slechter antwoord is dan een veld dat rood wordt.

Plannen

In een gameplan staan het egg, de image, het startcommando en de limieten die een server krijgt. Koppel het aan een of meer Pelican-integraties en het wordt bestelbaar.

Geheugen, schijf en cpu accepteren 0 voor onbeperkt, en de cpu-limiet telt in procenten van één core: 100 is één volle core, 200 is er twee. Het IO-gewicht loopt van 0 tot 1000 en 500 is de gebruikelijke waarde.

Op welke node een server terechtkomt

Pelican meldt hoeveel geheugen en hoeveel cpu elke node heeft, en hoeveel daarvan al is uitgedeeld. Provibr gebruikt allebei: een nieuwe server gaat naar een node met plek voor hem, en wordt met een reden geweigerd als geen enkele node die heeft.

De cijfers die het paneel meldt zijn zijn eigen boekhouding, geen meting: ze tellen de limieten op van de servers op een node, ook die nog aan het installeren zijn. Een node kan er daardoor vol uitzien terwijl er weinig echt draait.

Wat je met een server kunt doen

De hele levensloop van een gameserver, vanuit het paneel of via de API:

  • Hem uit een plan aanmaken, en verwijderen als de klant vertrekt.
  • Starten, stoppen, herstarten en killen.
  • Opschorten en weer vrijgeven. Dit gebeurt ook automatisch als een account over zijn limiet gaat.
  • Opnieuw installeren, wat het installatiescript van zijn egg opnieuw draait.

De console

Een gameserver wordt vanuit zijn console bediend: commando's, spelers, en de logregel die verklaart waarom hij crashte. Hij draait in het paneel over dezelfde uitgaande verbinding als al het andere, dus er is geen aparte poort en geen tweede login.

Servers die er al zijn

Servers die je buiten Provibr om hebt aangemaakt blijven met rust. Je kunt ze importeren zodat ze in het paneel verschijnen en meetellen voor je capaciteit, en zo verhuis je een bestaand paneel zonder iets opnieuw te bouwen.

Importeren raakt de server niet aan; het begint hem alleen te tellen. Zolang je hem niet importeert, beheert Provibr hem niet en rekent er ook niets voor.

Wat deze koppeling niet doet

Bestanden, back-ups, databases en schema's blijven in het Pelican-paneel, en het paneel en zijn nodes zelf beheren ook. Provibr dekt het leven van een server en zijn console, niet het beheer van je paneel.

Pelican zit zelf nog in beta en de API verandert tussen releases. Provibr is getest tegen 1.0.0, en het paneel biedt geen manier om te vragen welke versie het draait, dus een upgrade die een antwoord verandert komt als een fout naar boven en niet als een waarschuwing vooraf. Lees de release notes voordat je een paneel bijwerkt waar Provibr mee praat.