Scalelite-Server-Infrastruktur

Hallo zusammen,

ich habe mich die letzten Tage nebenher mal um einen eigenen Lastverteiler gekümmert (GROẞES DANKE an @ironiemix + Andi G. für die geteilten Notizen) und versucht, all das, was ich für Scalelite+BBB+Monitoring gemacht habe, nebenher mitzuschreiben.

Die Bashscripte, die dabei entstanden sind, habe ich unter https://gitlab.com/thoschi/bigbluebutton-scripts dokumentiert.

Die Skripte gehen nur davon aus, dass man mehrere (Hetzner-)gemietete Server (ohne BS) per SSH und Passwort unter einer Domäne ansprechen kann, also z.B.

  • scalelite.meine.schule
  • bbb01.meine.schule
  • bbb02.meine.schule

Die Skripte richten erst einen scalelite-Server ein (01_scalelite) und dann die BBB-Server (02_scalelite bbb01). Diese werden am scalelite-Server registriert und stellen prometheus/grafana auf dem scalelite-Server Monitoring-Daten zur Verfügung. Aufnahmen werden per sshfs von den BBB-Servern auf den scalelite-Server übertragen - wenn man Aufzeichnungen nutzt, sollte der Scalelite-Server also etwas Platz haben. Ein externe Server für Aufnahmen ließe sich aber mit wenigen Änderungen ebenfalls realisieren.

Das meiste geht automatisch, nur bei der Ersteinrichtung des Hetzner-Servers, beim üebrtragen der Schlüssel und beim Installieren von prometheus (Datenquelle für Grafana) muss man „mitmachen“.
Außerdem kann natürlich auch mal ein Schritt schiefgehen (z.B. die LetsEncrypt-Zertifikate). Darum wartet das Skript derzeit und man kann notfalls prüfen und Befehle händisch wiederholen.

Die Skripte sind alles andere als schön oder gut gemacht, miserabel dokumentiert und - bis auf unsere Installation - ungetestet - für mehr fehlt gerade die Zeit. Trotzdem kann ja der ein oder andere, der ebenfalls gerne (und evtl. dringend) mehr als einen BBB-Server benötigt, vielleicht etwas damit anfangen.

Was ich noch nicht hinbekommen habe, ist ein Greenlight auf dem Lastserver - dann könnte man sich Greenlight auf den einzelnen BBBs sparen. Hat aber noch nicht geklappt. Darum erstmal auf den BBBs direkt.
Außerdem ist wohl nicht alles „updatefest“ - Ansätze dafür habe ich aber schon implementiert.

Langfristig stelle ich mir das für meine Schule derzeit so vor, dass man den Scalelite und einen BBB (dauerhaft) behält. Die Aufnahmen liegen (nur) auf dem Scalelite-Server. Im Schulnetz hat man Moodle/Greenlight lokal installiert und nutzt den Scalelite als Zugriffspunkt. Bei Bedarf kann man dann jederzeit nochmal Server „dazumieten“ oder die, die zu viel sind, abstoßen. Falls man sich mit anderen zusammenschließt, kann man ja eine passende und „mitwachsende“ Infrastruktur aufbauen.

Wer das testet und Fehler findet oder Verbesserungsvorschläge hat - PR immer willkommen. Wenn jemand das aus Ausgangspunkt nimmt, und etwas besseres draus baut, helfe ich gerne.

Viele Grüße
Thomas

3 Like

Hallo Thomas,

coole Sache aber wir müssen mehr sprechen/schreiben: Seit gestern hat unser Ansble eine Rolle, die einen Scalelite einrichtet:

https://codeberg.org/DigitalSouveraeneSchule/bbb

ansible-playbook -u root -i "scale.q-gym.de," install-scalelite.yml und 10 Minuten später ist (fast alles) durch.

Man muss nur die Variablen, die bei uns aus dem Vault kommen, im Playbook manuell setzen. Lass uns mal PMen…

LG

Frank

2 Like

Hallo,

wollte mal versuchen, nur die scalelite Installation mit dem ansible Skript nachzuvollziehen/hinzubekommen.
Ich muss das ja ohne das vault machen.
Allerdings ist mir für die Variablen Z.B.
scalelite_localnet und secondaryip nicht ganz klar.
Ist localnet die „externe ip/32“?
Dockernet wähle ich ja wahrscheinlich einfach selbst z.b. 172.18.0.0/24, oder?
Und ist secondaryip die externe oder die docker-ip?

Viele Grüße
Andreas

Hallo Andreas,

der Scalelite braucht eine zweite (virtuelle) NIC mit einer privaten Adresse, damit der Zugriff auf postgres klappt. Genau verstanden hab ich das nicht, ich habe mit Ansible letztlich die Anleitung von Andreas G. nachgebaut.

Die zweite NIC muss nicht physikalisch vorhanden sein, das localnet ist ein privates Netz, die secondaryip eine IP für den SL aus diesem Netz, z.B.:

vault_scalelite_localnet: "192.168.100.0/24"
vault_scalelite_secondaryip: "192.168.100.2"

Bei den Hetzner-Cloudservern kann man im Setup einfach eine weitere NIC konfigurieren.

Das dockernet wird für das Setup von Docker verwendetet, muss auch privat sein, z.B.:

vault_scalelite_dockernet: "172.18.0.0/24"

Die postgres und Redis Passwörter kann man auswürfeln, die Secrets für den Scalelite muss man erzeugen:

Secret Keybase: openssl rand -hex 64
Secret Loadbalancer: openssl rand -hex 32

HTH

Frank

Eine valide Konfiguration wäre also exemplarisch z.B.

vault_scalelite_localnet: "192.168.100.0/24"
vault_scalelite_secondaryip: "192.168.100.2"
vault_scalelite_pg_password: "dVZTMuUDlOLCvnKgp3DGo8Gv"
vault_scalelite_dockernet: "172.18.0.0/24"
vault_scalelite_redispassword: "QyP2OvTRr9Nu3daccJ9dokws"
vault_scalelite_secret_key_base: cd6277f618eff0d0aef3d009b7041a32f892fd0a0838d0daa63d1baf4c64d7c3ffaeb8764e17e5263161196cc34e70a2822387de05fc1941fb3fc99e4b14c68                                                           
vault_scalelite_loadbalancer_secret: e1739bea9585efacce9f587f50c77ec488cba771648476c94a076e394cbbe25d                                                     

Die IPs von localnet und secondaryip müssen natürlich mit der tatsächlichen Konfiguration übereinstimmen. Wäre sicher nett, wenn man die 2. NIC eliminieren könnte :wink:

Hallo,
über die zweite, virtuelle Schnittstelle, wurde bei meinem Setup die Kommunikation zwischen dem Docker-Container in dem PostgreSQL läuft, und dem Docker-Container in dem die eigentliche Scalelite-Software läuft, realisiert. Den PostgreSQL-Server auf der externen IP laufen zu lassen halte ich für zu unsicher, und das normale Setup über Localhost 127.0.0.1 ging nicht, weil der Scalelite-Container dann auf sich selbst zugriff und dachte er habe auch den PostgreSQL-Server an Bord. Da dem nicht so ist, 127.0.0.1 nicht ging, die externe Karte als Sicherheitsrisiko anzusehen ist, habe ich halt kurzerhand diese virtuelle NIC eingeführt über die die beiden Docker-Container dann kommunzieren können. Ich hoffe das bringt etwas Licht in’s Dunkel.
VG, Andreas

1 Like

Hallo zusammen,

hätte jemand Zeit und Lust mir bei der Installtion zu helfen?
Ich bin noch relativ neu in der ganzen Sache unterwegs
und finde keinen richtigen Ansatz.

Ich würde mich echt freuen :slight_smile:

Freue mich auf euer Feedback.

Beste Grüße

Hallo Morpheus,
Glückwunsch zu deinem ersten Beitrag :slight_smile:

Wieviele Server willst Du denn zusammenschalten?
Das Thema interessiert mich auf jeden Fall.

Gib mal etwas techn. Info, damit man sich etwas vorstellen kann.

VG Andreas

Hallo Andreas,

vielen Dank :slight_smile: schön hier sein zu dürfen!

Hab es hinbekommen. Aktuell laufen 3 Server. Einer als reiner Scalelite und zwei als BBB ohne Greenlight, weitere 5 kommen jetzt noch hinzu, werden gerade installiert. Die Server sind alle, wie oft hier empfohlen aus der Hetzner Börse. Ich hab folgende Specs genommen 8 Kern CPU, 32 GB RAM sowie 2x2TB Enterprise HDD. Die Recordfunktion des BBB werden wir nicht verwenden.
Folgende Anleitung hat mir geholfen ->Link<-

Vielleicht kannst du damit auch etwas anfangen.

Beste Grüße

2 Like

Hallo Morpheus883,

Folgende Anleitung hat mir geholfen ->Link<-
https://jffederico.medium.com/scalelite-lazy-deployment-745a7be849f6

was hast du den unter dem scalelite server?
ubuntu 20.04 server?

LG

Holger

Hallo,

ich hab bei hetzner einen 4770 Server geordert 18.04 drauf installiert
und dann per copy and paste nach dieser Anleitung den Scalite server
aufgesetzt und meine zwei BBB Server darin integriert.

Folgende Anleitung hat mir geholfen ->Link<-
https://jffederico.medium.com/scalelite-lazy-deployment-745a7be849f6

das hat ca. 30 Minuten gedauert und flutschte einfach so durch: ich war
total überrascht, weil ich dachte das wird jetzt so ein techologischer
overkill wo ich nix blick und irgend wo hakt es … war aber garnicht so :slight_smile:

LG

Holger

Ich bin beeindruckt.
Ich selbst fühle mich durch meine zahlreichen Aufgaben an unserer Schule (zzgl. Unterricht, und ich habe einen Prüfungskurs, muss also auch noch physisch in der Schule erscheinen) aktuell so eingespannt, dass ich diese Aufgabe einer BBB Hosting Firma übertragen habe, das lief (und läuft) auch super. Firma gerne per PN, wer Interesse hat.

Hallo Holger,

als Scalelite setze ich eine Server von Hetzner mit einem i7 und 16 RAM sowie 4 TB Ent. HDD ein. Installiert ist Ubuntu 16.04 LTS.

Hallo,
habe mich genau an die Anleitung gehalten und nach einer Std.:

VG Andre

… und dann gibt man bei Moodle einfach die Adresse des Scalelite-Servers an und der Rest läuft genauso wie zuvor, ja??

Respekt Andre, dann muss ich wohl doch mal ran.

Gruss Harry

Hallo Michael, hallo Harry,
deine Moodle-Frage interessiert mich auch :wink:
Ich blicke Scalelite noch nicht.
Am Moodle-Plugin für BBB habe ich nichts geändert, alles so gelassen.
Michael:
Nein!
Das Moodle-Plugin benötigt 2 Angaben:
URL des eigentlichen BigBlueButton-Server:
https://bbb.xxxxx.de**/bigbluebutton/**
BigBlueButton Shared Secret:
[z.B.]8cd8ef52e8e101574e400365b55e11a6
Moodle-Plugin: Administration/Suchfenster Bigblue ENTER

Abfrage der Daten:
bash#: bbb-conf --secret

In Moodle eintragen und gut.

Ich verstehe noch nicht wie das alles funktioniert.
Frage in die Runde:
Was passiert wenn der Scalelite-Server offline ist?
Dann findet doch nur keine Skalierung statt, oder?

Harry:
Die Installation war echt nicht so schwer nach der Anleitung, mir ging es wie Holger, war auch überrascht. In dem Howto steht alles Wesentliche für den Anfang zur Installation/Administration drin.

VG Andre

Der Scalelite verteilt auf die BBB ist er offline, läuft bei dir nichts mehr. Du kannst dann zwar z.B über Greenlight an die einzelnen Maschinen aber Moodle ist raus. Du müsstest in dem Fall wieder einen bbb eintragen.

Hallo Rüdiger,
danke für die Info.
Meine Versuche in Moodle statt der direkten BBB-URL die Scalelite-URL/api/ und anstelle des BigBlueButton Shared Secret das LOADBALANCER_SECRET einzugeben, klappte nicht.
Zwischenbilanz:
Mein Scalelite-Server läuft und hat Verbindung zu den eingetragenen BBB-Servern.
Für heute ist der Kopf dicht.
VG Andre

Wenn alles funktioniert geht es auf der Moodle-Seite aber genau so: Du trägst die URL und das Secret des Scalelite-Servers bei Moodle ein, dann verteilt Scalelite Deine BBB Sessions auf Moodle auf die richtigen Server.