1
00:00:00,000 --> 00:00:18,041
Intro
2
00:00:18,041 --> 00:00:22,550
Herald: Ja, und dann freue ich mich euch
für den ersten Talk in diesem Block
3
00:00:22,550 --> 00:00:29,240
vorstellen zu dürfen: devnope. devnope ist
Operator im Bereich Linux und Unix und hat
4
00:00:29,240 --> 00:00:35,540
wie alle von uns das Gefühl gehabt, dass
man WorkAdventure-Entzugserscheinungen am
5
00:00:35,540 --> 00:00:39,830
besten entgegenwirkt, indem man selber
WorkAdventure aufsetzt und in diesem Talk
6
00:00:39,830 --> 00:00:45,950
wird er uns eine kleine Einführung geben,
wie man das so machen kann. devnope - dein
7
00:00:45,950 --> 00:00:48,203
Vortrag.
8
00:00:48,203 --> 00:00:55,290
devnope: Vielen Dank. [Willkommen] zu
[meinem] Vortrag. Nun, zum aktuellen
9
00:00:55,290 --> 00:01:00,660
Zeitpunkt ist die Dokumentation noch recht
dürftig in meinen Augen und ich hatte hier
10
00:01:00,660 --> 00:01:05,580
und da durchaus Probleme meine Instanz zum
laufen zu bekommen. Ich habe später
11
00:01:05,580 --> 00:01:11,070
erfahren, dass das nicht nur mir so ging
und ich dachte mir, das muss doch a -
12
00:01:11,070 --> 00:01:17,730
automatisierbar sein und b - angenehmer
gehen. Basierend darauf habe ich dann
13
00:01:17,730 --> 00:01:22,980
etwas gebaut und bin nun der Meinung dazu
lohnt es sich, einen kleinen Vortrag zu
14
00:01:22,980 --> 00:01:30,540
halten. Was braucht es für meine Lösung?
Eine VM oder ein VPS, ein Virtual Private
15
00:01:30,540 --> 00:01:36,480
Service, der eine Debian 10 VM hosted.
Natürlich kann man auch eine andere Linux-
16
00:01:36,480 --> 00:01:41,490
Distribution nehmen, aber das war das, womit
ich mich am wohlsten gefühlt habe. Außerdem
17
00:01:41,490 --> 00:01:46,950
braucht ihr eine Domain, bei der ihr eure
eigenen Subdomains einrichten könnt. Diese
18
00:01:46,950 --> 00:01:52,020
Domain ist dann dafür da, damit andere
Leute eure WorkAdventure-Instanz erreichen
19
00:01:52,020 --> 00:01:57,780
können. Außerdem hilft es, ein gewisses
Grundverständnis von Linux, Ansible und
20
00:01:57,780 --> 00:02:03,630
Docker zu haben. Nun, was ist zu tun? Ich
gehe davon aus, dass ihr erstmal eine
21
00:02:03,630 --> 00:02:08,970
blanke Debian-Maschine habt. Konfiguriert
am besten die Domains von vornherein.
22
00:02:08,970 --> 00:02:16,920
Welche Sub-Domains genau zu konfigurieren
sind, das findet ihr dann in der Readme
23
00:02:16,920 --> 00:02:23,220
des Repositories. Den Link seht ihr später
dann nochmal. Ladet euch am besten gleich
24
00:02:23,220 --> 00:02:29,910
das ganze Repository mit runter. Innerhalb
des Repositories gibt es Konfigurationen,
25
00:02:29,910 --> 00:02:36,030
die ihr noch treffen müsst, um den
Deployment-Prozess auf eure Umgebung
26
00:02:36,030 --> 00:02:43,140
anzupassen. Das umfasst die Domain, über
die ihr später laufen wollt, welchen Raum
27
00:02:43,140 --> 00:02:49,410
ihr standardmäßig öffnen lassen wollt und
mit welchem User ihr später per ssh auf
28
00:02:49,410 --> 00:02:56,730
den Host connecten können wollt. Wende
dann das Ansible Playbook an, wenn ihr
29
00:02:56,730 --> 00:03:02,580
fertig mit der Konfiguration seid. Hier
kurz der Befehl... Anschließend ist ein
30
00:03:02,580 --> 00:03:07,050
Reboot nötig. Es werden einige Pakete
installiert oder geupdatet, die dies notwendig
31
00:03:07,050 --> 00:03:12,750
notwendig machen. Wenn die Maschine wieder
da und verfügbar ist, könnt in den Ordner
32
00:03:12,750 --> 00:03:18,210
/opt/workadventure/contrib/docker wechseln
und mit docker compose up -d WorkAdventure
33
00:03:18,210 --> 00:03:25,260
starten. Was macht jetzt das Ansible
daran? Erstmal wird Debian 10 auf Testing
34
00:03:25,260 --> 00:03:30,000
geupdatet und das komplette System wird
auf einen aktuellen Stand gebracht.
35
00:03:30,000 --> 00:03:34,770
Außerdem werden einige Pakete installiert,
wie zum Beispiel htop, lynis, tmux und
36
00:03:34,770 --> 00:03:39,600
vieles weiteres. Es wird ein User
angelegt, wie gerade schon erwähnt, der es
37
00:03:39,600 --> 00:03:43,950
euch ermöglicht, euch später zu diesem
Host zu verbinden. Es werden viele
38
00:03:43,950 --> 00:03:48,690
Security Settings angezogen, wie zum
Beispiel Firewall-Regeln, configs für den
39
00:03:48,690 --> 00:03:54,150
ssh daemon, die zum Beispiel verbieten,
dass der root-User sich per ssh auf dem
40
00:03:54,150 --> 00:03:59,430
Host verbinden kann. All dies sind
Maßnahmen, um euch einen schmerzfreien
41
00:03:59,430 --> 00:04:03,150
Betrieb zu gewährleisten, wo ihr euch
nicht mehr so viel Sorgen machen müsst.
42
00:04:03,150 --> 00:04:07,920
Anschließend wird docker und docker-
compose installiert und eingerichtet,
43
00:04:07,920 --> 00:04:13,320
sodass ihr auch da keine weiteren Probleme
habt. Später wird ein WorkAdventure
44
00:04:13,320 --> 00:04:19,500
heruntergeladen und für euch
bereitgestellt. Anschließend werden noch
45
00:04:19,500 --> 00:04:24,390
ein paar config files ausgeliefert, sodass
ihr dann nichts weiter großartig herum
46
00:04:24,390 --> 00:04:30,810
ändern müsst, sondern gleich loslegen
könnt. Kurz: wie ist WorkAdventure
47
00:04:30,810 --> 00:04:36,150
überhaupt aufgebaut? Wir finden für die
einzelnen Funktionseinheiten einzelne
48
00:04:36,150 --> 00:04:42,600
Container. Das Kopfstück hierbei ist der
Reverse Proxy. Dieser wird mit traefik
49
00:04:42,600 --> 00:04:47,970
realisiert. traefik ist ein Reverse Proxy,
auch wie nginx. Jedoch läuft dieser
50
00:04:47,970 --> 00:04:53,700
innerhalb von docker und greift auf andere
Container in docker zu. Dies ermöglicht
51
00:04:53,700 --> 00:04:59,010
eine gewisse Menge an Automatisierung, die
andere Reverse Proxies nicht leisten
52
00:04:59,010 --> 00:05:06,820
können. Außerdem wird gleich von Haus aus
Let's Encrypt mit angewandt und ihr
53
00:05:06,820 --> 00:05:10,720
braucht euch keine Sorgen machen darüber,
woher ihr jetzt ein TLS-Zertifikat
54
00:05:10,720 --> 00:05:17,530
bekommt, damit ihr euren Dienst mit HTTPS
und eurer URL erreichen könnt. Start und
55
00:05:17,530 --> 00:05:22,870
Stopp der Anwendung wird auch über docker-
compose realisiert. Jetzt werden sich
56
00:05:22,870 --> 00:05:26,260
vielleicht ein paar Leute denken: "Ja ja
ich hab's eilig, das ist schon so weit da,
57
00:05:26,260 --> 00:05:31,510
aber irgendwie startet mein compose file
nicht." Das, was ich festgestellt habe,
58
00:05:31,510 --> 00:05:39,820
was am meisten nerven kann, ist die
Anbindung dieses acme.json Files, was die
59
00:05:39,820 --> 00:05:45,130
Informationen für das TLS-Zertifikat und
das Setup von Let's Encrypt ausmacht.
60
00:05:45,130 --> 00:05:49,990
Außerdem kann es durchaus zu Problemen
kommen, wenn der docker socket nicht
61
00:05:49,990 --> 00:05:54,910
ordentlich erreichbar ist. traefik möchte
mindestens lesend auf den Socket
62
00:05:54,910 --> 00:05:59,260
zugreifen. Ich bin davon jetzt kein Fan.
Deswegen schränke ich da auch ganz stark
63
00:05:59,260 --> 00:06:04,090
ein auf read only, lieber wär's mir
allerdings, wenn traefik das nicht tun
64
00:06:04,090 --> 00:06:09,490
müsste. Außerdem, noch mal: stellt sicher,
dass ihr alle Sub-Domains entsprechend
65
00:06:09,490 --> 00:06:13,390
konfiguriert habt. traefik wird nicht
ordentlich starten können, wenn nicht
66
00:06:13,390 --> 00:06:18,175
alle Sub-Domains ordentlich erreichbar
sind. Beim initialen Start vor allem gebt
67
00:06:18,175 --> 00:06:24,910
traefik ein bisschen Zeit, um alle anderen
Container und deren Schnittstellen zu
68
00:06:24,910 --> 00:06:30,940
erreichen. Das kann einen Moment dauern
und kann für Irritationen sorgen. Ja, auf
69
00:06:30,940 --> 00:06:35,590
die Karten bin ich jetzt noch nicht
eingegangen. Grundsätzlich könnt ihr jede
70
00:06:35,590 --> 00:06:42,730
Karte nehmen und besuchen, die ihr
öffentlich findet. Die genaue Position der
71
00:06:42,730 --> 00:06:47,980
Karte wird über die URL mit angegeben. Ihr
seht hier in dem Screenshot, in dem rot
72
00:06:47,980 --> 00:06:52,630
markierten Bereich die quasi URL zu der
Map. Wir sehen hier [die URL] vom
73
00:06:52,630 --> 00:07:03,590
Raumzeit-Labor, die uns zum Launch-Bereich
des rC3's quasi schickt. Alle Personen,
74
00:07:03,590 --> 00:07:09,560
die auf euren Host gehen und auf diese
Map, werden dann in der gleichen Instanz
75
00:07:09,560 --> 00:07:14,870
und in der gleichen Gegend landen. Ihr
seid dann in der Position, miteinander zu
76
00:07:14,870 --> 00:07:18,680
kommunizieren und zu interagieren. Ihr
könnt natürlich auch eure eigenen Karten
77
00:07:18,680 --> 00:07:23,330
bauen. Dazu findet ihr Infomaterial auf
der Seite von WorkAdventure, auf Youtube
78
00:07:23,330 --> 00:07:27,680
und auf anderen Quellen. Seid aber
gewarnt: hier gibt es noch einige Bugs,
79
00:07:27,680 --> 00:07:31,970
die zumindest mir aufgefallen sind, dass
bestimmte Positionsinformation nicht
80
00:07:31,970 --> 00:07:37,790
ordentlich interpretiert werden. Macht
euch bereit, dass es hier ab und zu zu
81
00:07:37,790 --> 00:07:45,170
Frust kommen kann. Noch ein Wort zu Jitsi.
Jitsi ist sehr mächtig. Ihr könnt
82
00:07:45,170 --> 00:07:49,970
grundsätzlich jeden beliebigen Jitsi-
Server nutzen, der für euch euch
83
00:07:49,970 --> 00:07:57,530
erreichbar ist. Ich schließe allerdings
den Betrieb eines eigenen Jitsi's im
84
00:07:57,530 --> 00:08:01,760
Rahmen dieses Deployments aus.
Grundsätzlich würde ich empfehlen, Jitsi
85
00:08:01,760 --> 00:08:08,150
komplett auf einer eigenen VM oder auf
einem eigenen Cluster zu betreiben. Jitsi
86
00:08:08,150 --> 00:08:16,640
ist sehr ressourcenhungrig. WorkAdventure
nicht. Einfach aufgrund einer ordentlichen
87
00:08:16,640 --> 00:08:23,330
Trennung würde ich davon abraten, das im
Mischbetrieb zu fahren. Jitsi kann auf
88
00:08:23,330 --> 00:08:28,192
sehr viele Arten und Weisen konfiguriert
werden und hat viele Parameter.
89
00:08:28,192 --> 00:08:31,760
Grundsätzlich wäre hier ein eigener
Vortrag angemessen, den werde ich aber
90
00:08:31,760 --> 00:08:38,150
nicht leisten. Wie geht es weiter mit
meinem Repository? Ich habe vor, noch mehr
91
00:08:38,150 --> 00:08:42,440
Energie und Zeit in das Thema Monitoring
zu investieren. Und in das Thema Logging.
92
00:08:42,440 --> 00:08:45,710
Ich möchte mich hier nicht unbedingt auf
irgendwelche Docker-Befehle verlassen,
93
00:08:45,710 --> 00:08:50,480
sondern möchte klassische Files. Weil, ich
bin ein klassischer Admin in dem Moment.
94
00:08:50,480 --> 00:08:55,520
Außerdem stört mich noch das Thema
traefik. Das heraus zu operieren scheint
95
00:08:55,520 --> 00:09:00,570
aber ein größeres Problem zu sein und
dafür habe ich aktuell noch keine Lösung.
96
00:09:00,570 --> 00:09:05,470
Ich danke euch für eure Aufmerksamkeit und
freue mich auf die Q&A-Session. Außerdem
97
00:09:05,470 --> 00:09:08,720
seid ihr eingeladen, mir natürlich auch
bidirektional Fragen zu stellen.
98
00:09:17,160 --> 00:09:22,750
Herald: Ja - devnope! Danke für den
Vortrag! Da steht ja immer ein bisschen
99
00:09:22,750 --> 00:09:30,610
Arbeit dahinter, die gar nicht so zwingend
in einem Einführungsvortrag erkennbar ist.
100
00:09:30,610 --> 00:09:37,480
Aber bis die Fragen eintrudeln - also
liebe Leute im Stream schreibt gerne ins
101
00:09:37,480 --> 00:09:45,610
Pad eure Fragen rein - vielleicht von mir
eine eine kleine Frage, wie viele Leute
102
00:09:45,610 --> 00:09:50,980
hast du denn schon so an die Hand genommen
bei einer WorkAdventure-Implementierung
103
00:09:50,980 --> 00:09:57,880
und Live-Schaltung?
devnope: Ich denke 4 oder sowas. Mit vier
104
00:09:57,880 --> 00:10:02,410
Leuten habe ich darüber etwas länger
diskutiert und hab denen geholfen, Dinge
105
00:10:02,410 --> 00:10:08,170
zu debuggen und Dinge zu tun. Ich bin
natürlich für Fragen und weiteres Feedback
106
00:10:08,170 --> 00:10:12,595
sehr dankbar, damit mehr Leute das nutzen
und nutzen können.
107
00:10:12,595 --> 00:10:16,120
Herald: Ja. Was was war da so die
häufigste Rückfrage, die du bekommen hast
108
00:10:16,120 --> 00:10:20,590
von den Leuten?
devnope: Warum startet der Container
109
00:10:20,590 --> 00:10:28,210
nicht? So grob zusammengefasst war so
meistens das Ding, das ist manchmal ein
110
00:10:28,210 --> 00:10:33,820
bisschen frustrierend, irgendwie
ordentliche Fehlermeldungen aus dem Docker
111
00:10:33,820 --> 00:10:39,040
Start rauszubekommen. Gerade so das
traefik und das Frontend, glaube ich, ja
112
00:10:39,040 --> 00:10:43,360
doch das Frontend, waren so meistens die
Container, die gern etwas zickig sein
113
00:10:43,360 --> 00:10:50,050
können. Ja, also vielleicht klappt es ja
irgendwann mal, dass man die Informationen
114
00:10:50,050 --> 00:10:53,590
noch ein bisschen besser aufbereitet
bekommt, damit die Fehlersuche so es
115
00:10:53,590 --> 00:10:59,350
denn Fehler gibt, leichter ist.
Herald: So, jetzt rollen hier langsam die
116
00:10:59,350 --> 00:11:04,210
Fragen aus dem Stream rein. Die erste
Frage: Welches Specs sollte der Server
117
00:11:04,210 --> 00:11:09,040
haben, bei ungefähr wie viel
gleichzeitigen Usern? Hast du da
118
00:11:09,040 --> 00:11:11,830
Erfahrungswerte?
devnope: Also, ich hab's zwischenzeitlich
119
00:11:11,830 --> 00:11:16,390
mal mit 20 Leuten probiert und hatte die
zweitkleinste Instanz von Hetzner, das
120
00:11:16,390 --> 00:11:24,060
sind zwei Standard-CPUs mit 2 GB RAM oder
sowas. Storage braucht das Ding fast kaum,
121
00:11:24,060 --> 00:11:31,590
also es hat, glaube ich, 10 oder 20 GB,
hat die Standard-VM, die Container-Images,
122
00:11:31,590 --> 00:11:36,930
die es runterlädt, die sind etwas größer,
wie diesen nodejs-Container. Da hat man,
123
00:11:36,930 --> 00:11:44,220
glaube ich, am Ende irgendwie 500 MB, 1GB
an dependencies, die da mit runterkommen,
124
00:11:44,220 --> 00:11:52,590
aber das sollte passen, so weit. So weit
ich das beobachten kann, ist die Nutzlast
125
00:11:52,590 --> 00:11:58,170
quasi auf dem Server gar nicht so
dramatisch groß wie das jetzt bei... wie
126
00:11:58,170 --> 00:12:02,940
das jetzt für 100-200 Leute skaliert, kann
ich jetzt nicht sagen in Ermangelung einer
127
00:12:02,940 --> 00:12:05,910
Testgruppe.
Herald: Schade, dass wäre etwas gewesen,
128
00:12:05,910 --> 00:12:09,690
das ich mal ausprobieren würde. Aber gut,
die Zukunft ist ja noch lang. Nächste
129
00:12:09,690 --> 00:12:13,200
Frage: das Ansible - wird das lokal oder
remote ausgeführt?
130
00:12:13,200 --> 00:12:19,290
devnope: Ich führ's aktuell lokal aus. Ich
hatte da im Hinterkopf, dass es durchaus
131
00:12:19,290 --> 00:12:23,880
auch Leute gibt, selbst im Admin-Umfeld,
die halt einfach einen Windows Desktop
132
00:12:23,880 --> 00:12:28,260
haben und Ansible unter Windows-Bedingung
irgendwie zum laufen zu kriegen ist halt
133
00:12:28,260 --> 00:12:34,860
ein schmerzhaft und da war es einfacher zu
sagen: okay Freunde, ich lad' dir das
134
00:12:34,860 --> 00:12:38,970
einfach auf die VM direkt runter und
führ's da aus. Da weiß ich, was da für ein
135
00:12:38,970 --> 00:12:41,910
Linux läuft und was da für ein Ansible
installiert ist. Das funktioniert
136
00:12:41,910 --> 00:12:48,030
weitestgehend.
Herald: Dann die nächsten brennenden
137
00:12:48,030 --> 00:12:53,640
Fragen rollen hier zu Jitsi rein. Ich
kombiniere mal die zwei fragen: Welchen
138
00:12:53,640 --> 00:12:57,900
Jitsi-Server würdest du empfehlen und gibt
es Dinge, auf die man oder mensch achten
139
00:12:57,900 --> 00:13:06,330
müsste, bei dem Jitsi-Server?
devnope: Ich persönlich nutze meinen
140
00:13:06,330 --> 00:13:14,160
eigenen Jitsi, den ich auf einer anderen
Instanz betreibe. Da läuft aber noch ein
141
00:13:14,160 --> 00:13:17,460
bisschen mehr drauf, deswegen - mit Specs
bin ich da ein bisschen vorsichtig.
142
00:13:17,460 --> 00:13:29,230
Ansonsten: es gibt auch Leute, die nutzen
den public Jitsi von Jitsi direkt. Der
143
00:13:29,230 --> 00:13:35,470
wird über eine Umgebungsvariable im .env-file
angegeben, ansonsten kann man, habe ich
144
00:13:35,470 --> 00:13:43,090
gesehen, kann mensch Jitsi-Server und
Jitsi-Räume in den Maps als Properties
145
00:13:43,090 --> 00:13:49,300
angeben. Und das geht tatsächlich wohl
auch pro Bereich den man halt angibt, also
146
00:13:49,300 --> 00:13:55,750
das funktioniert halt über Layer und ein
bestimmter Layer kann halt ein bestimmter
147
00:13:55,750 --> 00:13:59,980
Jitsi-Raum sein und da kann man halt
sagen: alles klar, wir haben jetzt hier
148
00:13:59,980 --> 00:14:04,180
einen großen Meeting-Saal, wir haben jetzt
hier ein dickes Jitsi, das ist halt nur
149
00:14:04,180 --> 00:14:10,990
dafür da, da kann ich halt sagen, okay,
extra Property für Jitsi-Server und so
150
00:14:10,990 --> 00:14:16,000
heißt der Jitsi-Room, und Feuer frei.
Ansonsten ist vielleicht noch drauf zu
151
00:14:16,000 --> 00:14:21,520
achten, ich hab immer wieder Probleme
gehabt bei Jitsi mit der Authentifikation,
152
00:14:21,520 --> 00:14:25,960
wenn man dort irgendwie Authentifikation
einbaut und User Management. Da gibt's
153
00:14:25,960 --> 00:14:30,970
bestimmt Leute, die haben da wesentlich
detailliertere Erfahrungen. Ich hab's bei
154
00:14:30,970 --> 00:14:33,460
meinen Jitsi-Servern dann einfach
irgendwann gesagt, es interessiert mich
155
00:14:33,460 --> 00:14:39,310
nicht. Ich mach' die Authentifikation an
der Stelle aus. Grundsätzlich gibt es wohl
156
00:14:39,310 --> 00:14:46,360
aber die Möglichkeit, auch mit JWT-Tokens
zu arbeiten und da ein bisschen den
157
00:14:46,360 --> 00:14:51,490
öffentlichen Gebrauch einzuschränken und
auf das WorkAdventure zu limitieren.
158
00:14:51,490 --> 00:14:58,480
Herald: Ja, das ist, so wie ich das Pad
beobachte, ein Hot Topic. Alle wollen
159
00:14:58,480 --> 00:15:03,580
WorkAdventure aufsetzen. Uns läuft leider
die Zeit davon. Der Slot ist nicht so
160
00:15:03,580 --> 00:15:07,750
lang. Sag' noch mal kurz, wie die Leute
dich erreichen können, um die Fragen
161
00:15:07,750 --> 00:15:12,010
weiter zu diskutieren.
devnope: Ihr könnt mich gerne über Twitter
162
00:15:12,010 --> 00:15:22,570
erreichen, unter @devnope. Ansonsten bin
ich auch hier im Matrix-Raum vom R2R zu
163
00:15:22,570 --> 00:15:28,380
erreichen. Genau. Also das sind so die
primären Ansprechmöglichkeiten. Ansonsten
164
00:15:28,380 --> 00:15:37,560
ist es bestimmt auch möglich, wenn ihr
über GitHub was zukommen lasst, und mich
165
00:15:37,560 --> 00:15:41,220
anschreit, dann werde ich darauf
entsprechend reagieren.
166
00:15:41,220 --> 00:15:44,610
Herald: Alles klar. devnope - ganz
herzlichen Dank für deinen Vortrag und das
167
00:15:44,610 --> 00:15:50,227
Q&A und dann, ja, wir sehen uns hier auf
der Veranstaltung.
168
00:15:50,227 --> 00:15:53,799
devnope: Vielen Dank und wir sehen uns!
169
00:15:53,799 --> 00:15:57,359
Outro
170
00:15:57,359 --> 00:16:06,000
Untertitel erstellt von c3subtitles.de
im Jahr 2021. Mach mit und hilf uns!