-
Intro
-
Herald: Ja, und dann freue ich mich euch
für den ersten Talk in diesem Block
-
vorstellen zu dürfen: devnope. devnope ist
Operator im Bereich Linux und Unix und hat
-
wie alle von uns das Gefühl gehabt, dass
man WorkAdventure-Entzugserscheinungen am
-
besten entgegenwirkt, indem man selber
WorkAdventure aufsetzt und in diesem Talk
-
wird er uns eine kleine Einführung geben,
wie man das so machen kann. devnope - dein
-
Vortrag.
-
devnope: Vielen Dank. [Willkommen] zu
[meinem] Vortrag. Nun, zum aktuellen
-
Zeitpunkt ist die Dokumentation noch recht
dürftig in meinen Augen und ich hatte hier
-
und da durchaus Probleme meine Instanz zum
laufen zu bekommen. Ich habe später
-
erfahren, dass das nicht nur mir so ging
und ich dachte mir, das muss doch a -
-
automatisierbar sein und b - angenehmer
gehen. Basierend darauf habe ich dann
-
etwas gebaut und bin nun der Meinung dazu
lohnt es sich, einen kleinen Vortrag zu
-
halten. Was braucht es für meine Lösung?
Eine VM oder ein VPS, ein Virtual Private
-
Service, der eine Debian 10 VM hosted.
Natürlich kann man auch eine andere Linux-
-
Distribution nehmen, aber das war das, womit
ich mich am wohlsten gefühlt habe. Außerdem
-
braucht ihr eine Domain, bei der ihr eure
eigenen Subdomains einrichten könnt. Diese
-
Domain ist dann dafür da, damit andere
Leute eure WorkAdventure-Instanz erreichen
-
können. Außerdem hilft es, ein gewisses
Grundverständnis von Linux, Ansible und
-
Docker zu haben. Nun, was ist zu tun? Ich
gehe davon aus, dass ihr erstmal eine
-
blanke Debian-Maschine habt. Konfiguriert
am besten die Domains von vornherein.
-
Welche Sub-Domains genau zu konfigurieren
sind, das findet ihr dann in der Readme
-
des Repositories. Den Link seht ihr später
dann nochmal. Ladet euch am besten gleich
-
das ganze Repository mit runter. Innerhalb
des Repositories gibt es Konfigurationen,
-
die ihr noch treffen müsst, um den
Deployment-Prozess auf eure Umgebung
-
anzupassen. Das umfasst die Domain, über
die ihr später laufen wollt, welchen Raum
-
ihr standardmäßig öffnen lassen wollt und
mit welchem User ihr später per ssh auf
-
den Host connecten können wollt. Wende
dann das Ansible Playbook an, wenn ihr
-
fertig mit der Konfiguration seid. Hier
kurz der Befehl... Anschließend ist ein
-
Reboot nötig. Es werden einige Pakete
installiert oder geupdatet, die dies notwendig
-
notwendig machen. Wenn die Maschine wieder
da und verfügbar ist, könnt in den Ordner
-
/opt/workadventure/contrib/docker wechseln
und mit docker compose up -d WorkAdventure
-
starten. Was macht jetzt das Ansible
daran? Erstmal wird Debian 10 auf Testing
-
geupdatet und das komplette System wird
auf einen aktuellen Stand gebracht.
-
Außerdem werden einige Pakete installiert,
wie zum Beispiel htop, lynis, tmux und
-
vieles weiteres. Es wird ein User
angelegt, wie gerade schon erwähnt, der es
-
euch ermöglicht, euch später zu diesem
Host zu verbinden. Es werden viele
-
Security Settings angezogen, wie zum
Beispiel Firewall-Regeln, configs für den
-
ssh daemon, die zum Beispiel verbieten,
dass der root-User sich per ssh auf dem
-
Host verbinden kann. All dies sind
Maßnahmen, um euch einen schmerzfreien
-
Betrieb zu gewährleisten, wo ihr euch
nicht mehr so viel Sorgen machen müsst.
-
Anschließend wird docker und docker-
compose installiert und eingerichtet,
-
sodass ihr auch da keine weiteren Probleme
habt. Später wird ein WorkAdventure
-
heruntergeladen und für euch
bereitgestellt. Anschließend werden noch
-
ein paar config files ausgeliefert, sodass
ihr dann nichts weiter großartig herum
-
ändern müsst, sondern gleich loslegen
könnt. Kurz: wie ist WorkAdventure
-
überhaupt aufgebaut? Wir finden für die
einzelnen Funktionseinheiten einzelne
-
Container. Das Kopfstück hierbei ist der
Reverse Proxy. Dieser wird mit traefik
-
realisiert. traefik ist ein Reverse Proxy,
auch wie nginx. Jedoch läuft dieser
-
innerhalb von docker und greift auf andere
Container in docker zu. Dies ermöglicht
-
eine gewisse Menge an Automatisierung, die
andere Reverse Proxies nicht leisten
-
können. Außerdem wird gleich von Haus aus
Let's Encrypt mit angewandt und ihr
-
braucht euch keine Sorgen machen darüber,
woher ihr jetzt ein TLS-Zertifikat
-
bekommt, damit ihr euren Dienst mit HTTPS
und eurer URL erreichen könnt. Start und
-
Stopp der Anwendung wird auch über docker-
compose realisiert. Jetzt werden sich
-
vielleicht ein paar Leute denken: "Ja ja
ich hab's eilig, das ist schon so weit da,
-
aber irgendwie startet mein compose file
nicht." Das, was ich festgestellt habe,
-
was am meisten nerven kann, ist die
Anbindung dieses acme.json Files, was die
-
Informationen für das TLS-Zertifikat und
das Setup von Let's Encrypt ausmacht.
-
Außerdem kann es durchaus zu Problemen
kommen, wenn der docker socket nicht
-
ordentlich erreichbar ist. traefik möchte
mindestens lesend auf den Socket
-
zugreifen. Ich bin davon jetzt kein Fan.
Deswegen schränke ich da auch ganz stark
-
ein auf read only, lieber wär's mir
allerdings, wenn traefik das nicht tun
-
müsste. Außerdem, noch mal: stellt sicher,
dass ihr alle Sub-Domains entsprechend
-
konfiguriert habt. traefik wird nicht
ordentlich starten können, wenn nicht
-
alle Sub-Domains ordentlich erreichbar
sind. Beim initialen Start vor allem gebt
-
traefik ein bisschen Zeit, um alle anderen
Container und deren Schnittstellen zu
-
erreichen. Das kann einen Moment dauern
und kann für Irritationen sorgen. Ja, auf
-
die Karten bin ich jetzt noch nicht
eingegangen. Grundsätzlich könnt ihr jede
-
Karte nehmen und besuchen, die ihr
öffentlich findet. Die genaue Position der
-
Karte wird über die URL mit angegeben. Ihr
seht hier in dem Screenshot, in dem rot
-
markierten Bereich die quasi URL zu der
Map. Wir sehen hier [die URL] vom
-
Raumzeit-Labor, die uns zum Launch-Bereich
des rC3's quasi schickt. Alle Personen,
-
die auf euren Host gehen und auf diese
Map, werden dann in der gleichen Instanz
-
und in der gleichen Gegend landen. Ihr
seid dann in der Position, miteinander zu
-
kommunizieren und zu interagieren. Ihr
könnt natürlich auch eure eigenen Karten
-
bauen. Dazu findet ihr Infomaterial auf
der Seite von WorkAdventure, auf Youtube
-
und auf anderen Quellen. Seid aber
gewarnt: hier gibt es noch einige Bugs,
-
die zumindest mir aufgefallen sind, dass
bestimmte Positionsinformation nicht
-
ordentlich interpretiert werden. Macht
euch bereit, dass es hier ab und zu zu
-
Frust kommen kann. Noch ein Wort zu Jitsi.
Jitsi ist sehr mächtig. Ihr könnt
-
grundsätzlich jeden beliebigen Jitsi-
Server nutzen, der für euch euch
-
erreichbar ist. Ich schließe allerdings
den Betrieb eines eigenen Jitsi's im
-
Rahmen dieses Deployments aus.
Grundsätzlich würde ich empfehlen, Jitsi
-
komplett auf einer eigenen VM oder auf
einem eigenen Cluster zu betreiben. Jitsi
-
ist sehr ressourcenhungrig. WorkAdventure
nicht. Einfach aufgrund einer ordentlichen
-
Trennung würde ich davon abraten, das im
Mischbetrieb zu fahren. Jitsi kann auf
-
sehr viele Arten und Weisen konfiguriert
werden und hat viele Parameter.
-
Grundsätzlich wäre hier ein eigener
Vortrag angemessen, den werde ich aber
-
nicht leisten. Wie geht es weiter mit
meinem Repository? Ich habe vor, noch mehr
-
Energie und Zeit in das Thema Monitoring
zu investieren. Und in das Thema Logging.
-
Ich möchte mich hier nicht unbedingt auf
irgendwelche Docker-Befehle verlassen,
-
sondern möchte klassische Files. Weil, ich
bin ein klassischer Admin in dem Moment.
-
Außerdem stört mich noch das Thema
traefik. Das heraus zu operieren scheint
-
aber ein größeres Problem zu sein und
dafür habe ich aktuell noch keine Lösung.
-
Ich danke euch für eure Aufmerksamkeit und
freue mich auf die Q&A-Session. Außerdem
-
seid ihr eingeladen, mir natürlich auch
bidirektional Fragen zu stellen.
-
Herald: Ja - devnope! Danke für den
Vortrag! Da steht ja immer ein bisschen
-
Arbeit dahinter, die gar nicht so zwingend
in einem Einführungsvortrag erkennbar ist.
-
Aber bis die Fragen eintrudeln - also
liebe Leute im Stream schreibt gerne ins
-
Pad eure Fragen rein - vielleicht von mir
eine eine kleine Frage, wie viele Leute
-
hast du denn schon so an die Hand genommen
bei einer WorkAdventure-Implementierung
-
und Live-Schaltung?
devnope: Ich denke 4 oder sowas. Mit vier
-
Leuten habe ich darüber etwas länger
diskutiert und hab denen geholfen, Dinge
-
zu debuggen und Dinge zu tun. Ich bin
natürlich für Fragen und weiteres Feedback
-
sehr dankbar, damit mehr Leute das nutzen
und nutzen können.
-
Herald: Ja. Was was war da so die
häufigste Rückfrage, die du bekommen hast
-
von den Leuten?
devnope: Warum startet der Container
-
nicht? So grob zusammengefasst war so
meistens das Ding, das ist manchmal ein
-
bisschen frustrierend, irgendwie
ordentliche Fehlermeldungen aus dem Docker
-
Start rauszubekommen. Gerade so das
traefik und das Frontend, glaube ich, ja
-
doch das Frontend, waren so meistens die
Container, die gern etwas zickig sein
-
können. Ja, also vielleicht klappt es ja
irgendwann mal, dass man die Informationen
-
noch ein bisschen besser aufbereitet
bekommt, damit die Fehlersuche so es
-
denn Fehler gibt, leichter ist.
Herald: So, jetzt rollen hier langsam die
-
Fragen aus dem Stream rein. Die erste
Frage: Welches Specs sollte der Server
-
haben, bei ungefähr wie viel
gleichzeitigen Usern? Hast du da
-
Erfahrungswerte?
devnope: Also, ich hab's zwischenzeitlich
-
mal mit 20 Leuten probiert und hatte die
zweitkleinste Instanz von Hetzner, das
-
sind zwei Standard-CPUs mit 2 GB RAM oder
sowas. Storage braucht das Ding fast kaum,
-
also es hat, glaube ich, 10 oder 20 GB,
hat die Standard-VM, die Container-Images,
-
die es runterlädt, die sind etwas größer,
wie diesen nodejs-Container. Da hat man,
-
glaube ich, am Ende irgendwie 500 MB, 1GB
an dependencies, die da mit runterkommen,
-
aber das sollte passen, so weit. So weit
ich das beobachten kann, ist die Nutzlast
-
quasi auf dem Server gar nicht so
dramatisch groß wie das jetzt bei... wie
-
das jetzt für 100-200 Leute skaliert, kann
ich jetzt nicht sagen in Ermangelung einer
-
Testgruppe.
Herald: Schade, dass wäre etwas gewesen,
-
das ich mal ausprobieren würde. Aber gut,
die Zukunft ist ja noch lang. Nächste
-
Frage: das Ansible - wird das lokal oder
remote ausgeführt?
-
devnope: Ich führ's aktuell lokal aus. Ich
hatte da im Hinterkopf, dass es durchaus
-
auch Leute gibt, selbst im Admin-Umfeld,
die halt einfach einen Windows Desktop
-
haben und Ansible unter Windows-Bedingung
irgendwie zum laufen zu kriegen ist halt
-
ein schmerzhaft und da war es einfacher zu
sagen: okay Freunde, ich lad' dir das
-
einfach auf die VM direkt runter und
führ's da aus. Da weiß ich, was da für ein
-
Linux läuft und was da für ein Ansible
installiert ist. Das funktioniert
-
weitestgehend.
Herald: Dann die nächsten brennenden
-
Fragen rollen hier zu Jitsi rein. Ich
kombiniere mal die zwei fragen: Welchen
-
Jitsi-Server würdest du empfehlen und gibt
es Dinge, auf die man oder mensch achten
-
müsste, bei dem Jitsi-Server?
devnope: Ich persönlich nutze meinen
-
eigenen Jitsi, den ich auf einer anderen
Instanz betreibe. Da läuft aber noch ein
-
bisschen mehr drauf, deswegen - mit Specs
bin ich da ein bisschen vorsichtig.
-
Ansonsten: es gibt auch Leute, die nutzen
den public Jitsi von Jitsi direkt. Der
-
wird über eine Umgebungsvariable im .env-file
angegeben, ansonsten kann man, habe ich
-
gesehen, kann mensch Jitsi-Server und
Jitsi-Räume in den Maps als Properties
-
angeben. Und das geht tatsächlich wohl
auch pro Bereich den man halt angibt, also
-
das funktioniert halt über Layer und ein
bestimmter Layer kann halt ein bestimmter
-
Jitsi-Raum sein und da kann man halt
sagen: alles klar, wir haben jetzt hier
-
einen großen Meeting-Saal, wir haben jetzt
hier ein dickes Jitsi, das ist halt nur
-
dafür da, da kann ich halt sagen, okay,
extra Property für Jitsi-Server und so
-
heißt der Jitsi-Room, und Feuer frei.
Ansonsten ist vielleicht noch drauf zu
-
achten, ich hab immer wieder Probleme
gehabt bei Jitsi mit der Authentifikation,
-
wenn man dort irgendwie Authentifikation
einbaut und User Management. Da gibt's
-
bestimmt Leute, die haben da wesentlich
detailliertere Erfahrungen. Ich hab's bei
-
meinen Jitsi-Servern dann einfach
irgendwann gesagt, es interessiert mich
-
nicht. Ich mach' die Authentifikation an
der Stelle aus. Grundsätzlich gibt es wohl
-
aber die Möglichkeit, auch mit JWT-Tokens
zu arbeiten und da ein bisschen den
-
öffentlichen Gebrauch einzuschränken und
auf das WorkAdventure zu limitieren.
-
Herald: Ja, das ist, so wie ich das Pad
beobachte, ein Hot Topic. Alle wollen
-
WorkAdventure aufsetzen. Uns läuft leider
die Zeit davon. Der Slot ist nicht so
-
lang. Sag' noch mal kurz, wie die Leute
dich erreichen können, um die Fragen
-
weiter zu diskutieren.
devnope: Ihr könnt mich gerne über Twitter
-
erreichen, unter @devnope. Ansonsten bin
ich auch hier im Matrix-Raum vom R2R zu
-
erreichen. Genau. Also das sind so die
primären Ansprechmöglichkeiten. Ansonsten
-
ist es bestimmt auch möglich, wenn ihr
über GitHub was zukommen lasst, und mich
-
anschreit, dann werde ich darauf
entsprechend reagieren.
-
Herald: Alles klar. devnope - ganz
herzlichen Dank für deinen Vortrag und das
-
Q&A und dann, ja, wir sehen uns hier auf
der Veranstaltung.
-
devnope: Vielen Dank und wir sehen uns!
-
Outro
-
Untertitel erstellt von c3subtitles.de
im Jahr 2021. Mach mit und hilf uns!