Return to Video

#DiVOC R2R - Workadventure selbst betreiben: Ein Serviervorschlag

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

more » « less
Video Language:
German
Duration:
16:06

German subtitles

Revisions Compare revisions