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