Zum Inhalt

Modul: Setup der Komponenten einer LLUA#

Inhalt

Das Setup der Komponenten einer LLUA ist eine zentrale technische Herausforderung. In diesem Modul wird zunächst beschrieben, welche Themen prinzipiell im Kontext des Setups berücksichtigt werden sollten. Im Anschluss werden konkrete Instruktionen für das Setup der Komponenten der exemplarischen LLUA gegeben. Außerdem werden technische Artefakte (wie z. B. Konfigurationsdateien in Form von docker-compose.yml Dateien bereitgestellt), welche das Setup erheblich vereinfachen oder als Orientierung dienen können. Zusätzlich wird ein Vorgehen vorgeschlagen, wie Backups der LLUA eingerichtet werden könnten.

Disclaimer

Die Nutzung der hier zur Verfügung gestellten Ressourcen und Anleitungen erfolgt auf eigene Gefahr. Es wird keine Haftung für etwaige Schäden übernommen.

Bitte überprüfen Sie alle Schritte kritisch und führen Sie nichts durch, was Sie nicht verstehen.

In der Sektion Eine LLUA wird bereits eine Unterstützung für die (Vor-)Auswahl der prinzipiellen und konkreten Komponenten einer LLUA geboten. Dieses Modul befasst sich mit den technischen Fragen zur Realisierung einer LLUA.

Wie diese Fragen bei der Entwicklung der exemplarischen LLUA beantwortet und entsprechende Entscheidungen getroffen wurden, wird von diesem Modul genauer erörtert.

Außerdem wird hier die konkrete Durchführung des Setups der Komponenten der exemplarischen LLUA beschrieben. Zu diesem Zweck werden technische Artefakte bereitgestellt, die das Aufsetzen einiger Komponenten unterstützen.

Prinzipielles Setup#

In diesem Kontext müssen u. a. die folgenden Entscheidungen getroffen werden:

  • Wo werden die jeweiligen Programme/Dienste/Werkzeuge bereitgestellt? Werden sie z. B. über mehrere reale Hosts verteilt oder kommen zusätzlich VMs zum Einsatz und wenn ja, auf welchen Hosts werden sie bereitgestellt? Oder sind es Programme/Werkzeuge die auf Endgeräten installiert werden müssen?
  • Wie viele Ressourcen (z. B. Prozessorleistung/-kerne, Arbeitsspeicher und Festplattenkapazität) werden für die Programme/Dienste/Werkzeuge benötigt und wie können diese Ressourcen beschafft werden?
  • Sollen die Programme/Dienste/Werkzeuge z. B. in Docker-Containern betrieben oder ohne weitere Abstraktionsebene direkt auf einem Host/Client/in einer VM eingerichtet werden?
  • Welche Betriebssysteme sollen auf den Hosts/in den VMs zum Einsatz kommen?
  • Wie kann sichergestellt werden, dass die Programme/Dienste/Werkzeuge die miteinander gekoppelt werden müssen, miteinander kommunizieren können?
  • Von wo aus müssen die Programme/Dienste/Werkzeuge für die Endbenutzer erreichbar/nutzbar sein?
  • Wie sollen Backups der Programme/Dienste/Werkzeuge erstellt werden? Wo sollen dieses Backups gelagert werden? Müssen die Backups aufgrund ihres Lagerorts/der Übertragung verschlüsselt werden?

Erreichbarkeit

Es wird dazu geraten, mindestens die Weboberflächen für die Bereiche Planung & Durchführung sowie Organisation & Kollaboration einer LLUA auch außerhalb des universitären Netzwerks erreichbar zu machen, damit die Veranstaltenden und Teilnehmenden einfach darauf zugreifen können.

Einfaches Setup

Grundlegend sollte darauf geachtet werden, für das Setup einfache Wege zu wählen. Wenn sich z. B. für den Einsatz von Docker entschieden wurde und bereits ein offizielles/vertrauenswürdiges Image existiert, sollte erwogen werden, dies zu nutzen, anstatt selbst ein Image zu erstellen.

Nachdem Sie Ihre benötigten Ressourcen (grob) einschätzen können, könnten Sie sich an das für Ihren Fachbereich zuständige Rechenzentrum/technische Personal wenden, um mit denen die Möglichkeiten zu besprechen. Es wird dazu geraten, zunächst mit nur einer virtuellen Maschine zu beginnen, um den Konfigurations- und Wartungsaufwand für das Rechenzentrum möglichst gering zu halten (in Abhängigkeit von der Komplexität Ihrer LLUA und Ihren eigenen Kenntnissen kann dies natürlich abweichen). So bleiben z. B. auch die Rechte- und Zertifikatsverwaltung sowie etwaige Port-Freigaben überschaubar.

Sollen Teile Ihrer LLUA auch von außerhalb des universitären Netzwerks erreichbar sein, so bedarf es wahrscheinlich speziellen Port-Freigaben und ggf. benötigen Sie dann auch eine (Sub-)Domain sowie offiziell signierte SSL-Zertifikate. Dies sind Punkte, die Sie möglichst früh mit Ihrem Rechenzentrum besprechen sollten.

Absicherung

Wie Sie Ihre Umgebung gegen Angriffe schützen und z. B. Ihre SSH-Zugänge sicherer machen, ist nicht Teil dieses Rahmenwerks. Es wird Ihnen jedoch geraten, dieses Thema zu berücksichtigen und ggf. technisches Personal hinzuzuziehen.

Konkretes Setup#

Die für die exemplarische LLUA gewählte technische Infrastruktur besteht grundlegend aus einer virtuellen Maschine und den Endgeräten der Benutzenden. Alle zu hostenden Programme/Dienste/Werkzeuge werden auf der virtuellen Maschine aufgesetzt. Die Programme/Dienste/Werkzeuge, die von dem Rechenzentrum der Universität Hamburg betrieben werden, werden hier nicht weiter betrachtet. Dies ist in der folgenden Grafik veranschaulicht dargestellt (geschwungene Klammern unten).

Der Technologie Stack der exemplarischen LLUA. Dargestellt sind die Benutzt-Beziehungen zwischen den einzelnen Komponenten sowie deren Lokalität (geschwungene Klammern unten) und die Verantwortlichen (eckige Klammern).

Die Ports 80 und 443 der VM sind öffentlich erreichbar. Alle anderen benötigten Ports (s. u.) sind nur innerhalb des VPNs des Fachbereichs Informatik der Universität Hamburg erreichbar und einige davon nur zu Wartungszwecken für bestimmte BenutzerInnen, wie z. B. der Port, auf dem SSH läuft (die BenutzerInnen werden vom Active Directoy (AD) verwaltet). Außerdem hat das Rechenzentrum eine Subdomain und ein offiziell signiertes SSL-Zertifikat bereitgestellt.

Virtuelle Maschine (Server)#

In dem Setup der exemplarischen LLUA wird, wie oben für den Start angeraten, nur eine virtuelle Maschine benötigt. Zwar könnten die einzelnen Programme/Dienste/Werkzeuge über mehrere verteilt werden, dies ist jedoch nicht Teil des hier vorgestellten Setups.

Die hier genutzte VM nutzt die Linux Distribution Debian als Betriebssystem.

Außerdem ist die Entscheidung gefallen, dass alle Programme/Dienste/Werkzeuge für die LLUA auf der VM in Docker-Containern betrieben werden sollen. Dies hat u. a. die folgenden Gründe:

  • Auf dem Host werden möglichst wenig Softwarepakete installiert.
  • Es treten keine Konflikte bei Abhängigkeiten zu bestimmten Paketversionen einzelner Programme/Dienste/Werkzeuge auf.
  • Die Programme/Dienste/Werkzeuge können mit wenig Aufwand auf einen anderen Host portiert werden.
  • Sicherheitstechnische Gründe, wie z. B. Isolierung oder Limitierung der Ressourcennutzung.
  • Für die meisten gewählten Programme/Dienste/Werkzeuge existieren offizielle/vertrauenswürdige Docker-Images, wodurch das Setup dieser vereinfacht wird.
  • Der Updateprozess der Programme/Dienste/Werkzeuge wird vereinfacht, weil dieser durch das Updaten der Docker-Images ersetzt wird.

Ressourcen und Nutzung#

Die Ressourcen der VM wurden mit dem Wachstum und der vermehrten Verwendung an die veränderten Bedürfnisse der LLUA angepasst. Diese Anfragen wurden von dem Rechenzentrum unkompliziert und zeitnah bearbeitet.

Zu Beginn wurde die VM wie folgt beantragt:

  • 2 CPU-Kernen
  • 4 GB Arbeitsspeicher
  • 200 GB Speicherplatz

Für das hier vorgestellte Setup verfügt die VM über die folgenden Ressourcen:

  • 8 CPU-Kerne
  • 24 GB Arbeitsspeicher
  • 400 GB Speicherplatz

Natürlich sind die Anforderungen an die Ressourcen abhängig von der individuellen Nutzung.

Die Programme/Dienste/Werkzeuge der exemplarischen LLUA, die auf der VM laufen, werden in der Regel nicht von mehr als 35 Personen gleichzeitig genutzt. Ressourcenintensive Jobs werden nachts automatisierte bzw. manuell zu nutzungsarmen Zeiten durchgeführt, wie z. B. die Durchführung der Backups und der Updates. Der Großteil des Speicherplatzes wird von Videos und anderen Dateien eingenommen, die für oder im Zuge von Lehrveranstaltungen erstellt wurden.

Docker#

Um die Startparameter der Container der einzelnen Programme/Dienste/Werkzeuge zu konfigurieren und die Container zu starten, zu stoppen und zu löschen, wird Docker Compose eingesetzt.

Wie Docker und Docker Compose für Ihr gewähltes Betriebssystem zu installieren sind, kann durch eine Web-Suche in Erfahrung gebracht oder direkt der offiziellen Docker Dokumentation entnommen werden.

Ordnerstruktur#

Um eine einheitliche Struktur für die Programme/Dienste/Werkzeuge zu etablieren, werden die folgenden Konventionen vorgeschlagen:

  • Alle Programme/Dienste/Werkzeuge erhalten einen Ordner unter /var/opt/docker (z. B. für Mattermost: /var/opt/docker/mattermost).
  • In diesem liegt die jeweilige docker-compose.yml.
  • Wenn der/die Container Daten zu persistieren haben, dann wird in diesem Ordner außerdem ein Ordner namens volumes angelegt, unter welchem alle zu persistierenden Daten für diesen Stack (docker-compose.yml) abgelegt werden.
  • Wenn mehrere Container eines Stacks Daten zu persistieren haben, so sollte außerdem ein weiterer Unterordner angelegt werden.

Es wird hier absichtlich nicht der Docker Standard benutzt, alle Volumes unter /var/lib/docker/volumes abzulegen, weil die docker-composer.yml, ggf. zusätzliche Konfigurationsdateien und die Daten alle in einem Ordner verwaltet werden können sollen.

Natürlich können Sie eine andere Ordnerstruktur wählen, die folgenden Erläuterungen beziehen sich jedoch auf die vorgeschlagene.

Netzwerke#

Beim Starten eines Stacks via docker compose up wird automatisch ein internes Docker-Netzwerk für diesen Stack erstellt. Beim Stoppen des Stacks via docker compose down wird dieses Netzwerk wieder entfernt.

Dies reicht, um die Kommunikation der Container eines Stacks zu ermöglichen. In einigen Fällen müssen jedoch auch Container Stack-übergreifend miteinander kommunizieren (z. B. muss ein Reverse Proxy mit den Webservern der einzelnen Programme/Dienste/Werkzeuge kommunizieren können, um die Anfragen weiterzuleiten). Für diese Fälle bietet es sich an, an ein sogenanntes externes Netzwerk zu erstellen (s. u.).

Weitere ggf. benötigte Netzwerke für die exemplarische LLUA werden weiter unten erstellt, wenn sie nötig werden.

Nginx Proxy Manager (NPM)#

Version

Die folgenden Instruktionen wurden für Nginx Proxy Manager v2.9.19 verfasst.

Hinweis

In der gesamten Anleitung wird hier davon ausgegangen, dass Sie nicht für jeden Service eine eigene Sub-Domain haben, sondern diese mittels locations ansprechen. Sollten Sie für jeden Service eine eigene Sub-Domain haben, passen Sie dies in den folgenden Instruktionen an. Für jede Sub-Domain wird dann z. B. ein eigener Proxy Host in NPM erzeugt und es müssen keine Custom locations angelegt werden, wie es im Folgenden beschrieben wird.

Download

Hier können Sie die benötigen Artefakte herunterladen, um den NPM wie hier beschrieben in Betrieb zu nehmen.

Außerdem ist hier offiziell beschrieben, wie NPM via Docker von Grund auf aufgesetzt werden kann.

Der webbasierte Zugang zu den einzelnen Programmen/Diensten/Werkzeugen wird mittels Nginx Proxy Manager (NPM) verwaltet und konfiguriert. Im Grunde ist NPM nur eine Weboberfläche für Nginx, welche hier nicht unbedingt genutzt werden muss. Wenn Sie Erfahrung mit Nginx haben, können Sie die Konfiguration auch ohne NPM vornehmen.

  • Dazu wird zunächst das oben genannte Netzwerk mit dem Namen nginx-proxy-manager-tier erstellt.
    docker network create nginx-proxy-manager-tier
    
    Diesem Netzwerk werden später alle Container hinzugefügt, an die NPM Anfragen weiterleiten soll. Dies sind in der Regel die Webserver der jeweiligen Programme/Dienste/Werkzeuge.
  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/nginx-proxy-manager.
  • In diesem finden Sie eine docker-compose.yml vor.
  • Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
  • Starten Sie NPM
    cd /var/opt/docker/nginx-proxy-manager
    docker compose up -d
    
  • Öffnen Sie die Administrator-Weboberfläche von NPM in einem Browser: http://[ihre_domain]:81 (wenn Sie den Port nicht angepasst haben)
  • Loggen Sie sich mit den Standardlogindaten ein, die Sie hier finden können
  • und erstellen Sie sich einen Administrator-Account.

Anschließend können Sie schon die ersten Konfigurationen vornehmen:

  • Unter "SSL Certificates" könne Sie jetzt Ihr SSL-Zertifikat hinzufügen oder über Let's Encrypt automatisch eins erzeugen lassen.
  • Unter "Hosts > Proxy Hosts" können Sie einen Host für Ihre Domain anlegen, die auf Ihre VM zeigt.
    • Details
      • Domain Names: [ihre_domain]
      • Scheme: http
      • Forward Hostname / IP: 127.0.0.1
      • Forward Port: 80
      • Überprüfen Sie, welche Optionen Sie aktivieren möchten.
    • SSL
      • Wählen Sie das eben angelegte SSL-Zertifikat aus.
      • Überprüfen Sie, welche Optionen Sie aktivieren möchten.

Mattermost#

Version

Die folgenden Instruktionen wurden für Mattermost Enterprise 7.7.1 verfasst.

Download

Hier können Sie die benötigen Artefakte herunterladen, um Mattermost wie hier beschrieben in Betrieb zu nehmen.

Außerdem ist hier offiziell beschrieben, wie Mattermost via Docker von Grund auf aufgesetzt werden kann.

  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/mattermost.
  • In diesem finden Sie eine docker-compose.yml vor.
  • Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
    • Passen Sie mindestens den DB User und das DB Passwort mit beiden Services (llua-mattermost-db und llua-mattermost) an.
  • Jetzt wird es etwas komplizierter. Wir müssen nämlich dafür sorgen, dass Mattermost eine Konfigurationsdatei anlegt. Diese müssen wir anschließend editieren, um die URL und die DB-Verbindung zu setzen. Aber eins nach dem anderen.
  • Starten Sie Mattermost, um die referenzierten Ordner (Volumes) zu erzeugen und stoppen Sie Mattermost nach einigen Sekunden wieder.
    cd /var/opt/docker/mattermost
    docker compose up -d
    sleep 5
    docker compose down
    
    • Ein Problem kann sein, dass der Benutzer root der Eigentümer der Ordner ist. Dadurch hat Mattermost keine Rechte, in diesen Ordnern Dateien anzulegen.
    • Überprüfen Sie die Eigentümerrechte. Der Benutzer mit der ID 2000 sollte die Eigentümerrechte für die erzeugten Ordner besitzen.
      ls -la ./volumes/mattermost
      
    • Und setzen sie ggf. den richtigen Eigentümer.
      chown -R 2000:2000 ./volumes/mattermost
      
  • Anschließend starten Sie Mattermost erneut, um es dann nach einigen Sekunden wieder zu stoppen.
    docker compose up -d
    sleep 5
    docker compose down
    
  • Editieren Sie die jetzt erstellte Datei ./volumes/mattermost/config/config.yml und setzen Sie Ihre URL ([ihre_domain], [ihre_location_mattermost]) sowie die Datenbankverbindung ([POSTGRES_USER], [POSTGRES_PASSWORD], [POSTGRES_DB]), jeweils ohne eckige Klammern. llua_mattermost_db ist der Name des Containers, in der die DB läuft. Wenn Sie diesen geändert haben, denken Sie daran, das ebenfalls anzupassen.
    ...
    "SiteURL": "https://[ihre_domain]/[ihre_location_mattermost]",
    ...
    "DataSource": "postgres://[POSTGRES_USER]:[POSTGRES_PASSWORD]@llua_mattermost_db/[POSTGRES_DB]?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",
    ...
    
  • Starten Sie Mattermost und lassen Sie es dieses Mal laufen.
    docker compose up -d
    
  • Überprüfen Sie, ob jetzt alle Container laufen:
    docker ps
    

Nachdem jetzt Mattermost und seine DB laufen, muss die location in NPM konfiguriert werden. (Verwenden Sie eine eigene Subdomain für Mattermost, müssen Sie dafür einen neuen "Proxy Host" anlegen.)

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Haupt-Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu.
    • Define location: /[ihre_location_mattermost]
    • Scheme: http
    • Forward Hostname / IP: llua_mattermost
    • Forward Port: 8065
  • Um außerdem die Nutzung von Websockets für Mattermost zu ermöglichen, fügen Sie eine weitere "Custom location" hinzu.
    • Define location: ~ /[ihre_location_mattermost]/api/v[0-9]+/(users/)?websocket$
    • Scheme: http
    • Forward Hostname / IP: llua_mattermost
    • Forward Port: 8065
    • Klick auf das Zahnrad und folgendes einfügen:
      location ~ /llua_mattermost/api/v[0-9]+/(users/)?websocket$ {
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
          client_max_body_size 50M;
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Frame-Options SAMEORIGIN;
          proxy_buffers 256 16k;
          proxy_buffer_size 16k;
          client_body_timeout 60;
          send_timeout 300;
          lingering_timeout 5;
          proxy_connect_timeout 90;
          proxy_send_timeout 300;
          proxy_read_timeout 90s;
          proxy_http_version 1.1;
          proxy_pass http://llua_mattermost:8065;
      }
      

Anschließend sollten Sie Mattermost über Ihre URL und Location in einem Browser aufrufen können. Der erste Benutzer, den Sie erstellen, ist der (erste) Administrator.

Sie sollten anschließend die "System Console" aufrufen und unter "Authentication > Signup" die Kontenerstellung deaktivieren "Enable Account Creation: false" und diese Einstellung speichern. Andernfalls kann sich jeder einen Account in Ihrem Mattermost anlegen, was sie vermutlich nicht beabsichtigen. Weitere Benutzer können z. B. via E-Mail oder über einen Team Invite Link eingeladen werden.

Atlassian#

In dieser Beschreibung werden alle genutzten Produkte von Atlassian in einem Stack zusammengefasst. Sie können diese natürlich auf mehrere Stacks aufteilen. Bedenken Sie dabei, dass einige der Produkte miteinander kommunizieren und somit entsprechende Docker-Networks genutzt werden müssen.

Crowd#

Version

Die folgenden Instruktionen wurden für Crowd 5.1.2 verfasst.

Download

Hier können Sie die benötigen Artefakte herunterladen, um Crowd wie hier beschrieben in Betrieb zu nehmen.

Außerdem ist hier offiziell beschrieben, wie Crowd via Docker von Grund auf aufgesetzt werden kann. Und hier, wie Crowd ohne Docker installiert werden kann. Um in einer solchen Installation Crowd über HTTPS zu nutzen, ist diese Anleitung von Atlassian hilfreich.

  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/atlassian.
  • In diesem finden Sie eine docker-compose.yml vor.
  • Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
  • Passen Sie im crowd Service ATL_PROXY_NAME an.
  • Passen Sie im crowd-db Service mindestens den DB User (POSTGRES_USER) und das DB Passwort (POSTGRES_PASSWORD) an.
  • Anschließend starten Sie die DB (aus dem Stack) und Crowd (zunächst nicht aus dem Stack) wie folgt:
    cd /var/opt/docker/atlassian
    docker compose up -d crowd-db
    docker run -v /var/opt/docker/atlassian/volumes/crowd/application-data/crowd:/var/atlassian/application-data/crowd --name="llua_crowd" --network=llua_atlassian_intern -d atlassian/crowd:5.1.2
    

Um Crowd hinter dem NPM erreichbar zu machen, müssen Sie noch eine entsprechende "Custom location" anlegen.

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu. [Hinweis: Die Location für Crowd können Sie sich leider nicht aussuchen. Diese ist festgesetzt (/crowd) und kann nicht einfach geändert werden. Um die Location zu ändern oder wegzulassen, könnten Sie sich hier informieren.]
    • Define location: /crowd
    • Scheme: http
    • Forward Hostname / IP: llua_crowd
    • Forward Port: 8095

Crowd nicht erreichbar

Sollten Sie Crowd anschließend nicht über [ihre_domain]/crowd im Browser aufrufen können, könnten Sie versuchen, Crowd direkt auf einen freien und zugänglichen Port Ihres Hosts zu binden.

  • Stoppen Sie Crowd und starten Sie es anschließend inklusive der Port-Anweisung neu.

    docker stop llua_crowd
    docker run -v /var/opt/docker/atlassian/volumes/crowd/application-data/crowd:/var/atlassian/application-data/crowd --name="llua_crowd" --network=llua_atlassian_intern -d -p [ihr_host_port]:8095 atlassian/crowd:5.1.2
    

  • Alternativ könnten Sie auch Ihre docker-compose.yml editieren.

  • Dazu fügen Sie dem crowd Service in der docker-compose.yml folgendes hinzu:
        ports:
          - [ihr_host_port]:8095
    
  • Anschließend starten Sie Crowd neu.
    docker compose down && docker compose up -d
    

Jetzt sollten Sie Crowd über die IP/Domain des Hosts und dem angegebenem Port erreichen können.

Nachdem Sie Crowd in Ihrem Browser aufgerufen haben, werden Sie durch das Setup geführt.

  • Nachdem Sie Ihren Lizenzschlüssel eingegeben haben
  • wählen Sie "New installation".
  • Auf der nächsten Seite ("Database configuration") wählen Sie "JDBC connection"
  • und wählen als "Database" PostgreSQL.
  • Anschließend tragen Sie bei "JDBC URL" jdbc:postgresql://llua_crowd_db:5432/crowd ein
  • und tragen Ihren gewählten Benutzernamen und Passwort für die DB ein (siehe docker-compose.yml).

  • Auf der "Options" Seite tragen Sie Ihre "Base URL" ein: [ihre_domain]/crowd.

  • Dann werden Sie dazu aufgefordert, ein erstes "Internal directory anzulegen". Dieses wird z. B. dazu genutzt, Ihren Administrator-Account (den Sie auf der nächsten Seite erzeugen werden), zu speichern.
  • Wenn Sie nicht wissen, wozu Sie den "OpenID server" nutzen sollten, dann aktivieren Sie diesen auf der "Intgerated applications" Seite nicht.
  • Unternehmen Sie einen ersten Login-Versuch.

Wenn dies alles funktioniert, können Sie jetzt den manuell gestarteten Crowd gegen den aus dem Stack austauschen. Denken Sie daran, ggf. das Port-Mapping in der docker-compose.yml wie oben beschrieben zu ergänzen.

docker stop llua_crowd
docker container rm llua_crowd
docker compose up -d

Wie Sie Crowd weiter konfigurieren und ggf. an einen Authentifizierungsdienst anbinden, erfahren Sie hier.

Jira#

Version

Die folgenden Instruktionen wurden für Jira 9.6.0 verfasst.

Download

Hier können Sie die benötigen Artefakte herunterladen, um Crowd und Jira wie hier beschrieben in Betrieb zu nehmen.

Außerdem ist hier offiziell beschrieben, wie Jira via Docker von Grund auf aufgesetzt werden kann.

  • Stoppen Sie Crowd
    cd /var/opt/docker/atlassian
    docker compose down
    
  • Kopieren Sie Ihre aktuelle atlassian/docker-compose.yml. [ACHTUNG! Andernfalls werden Ihre Anpassungen im nächsten Schritt überschrieben.]
    cp /var/opt/docker/atassian/docker-compose.yml /var/opt/docker/atassian/docker-compose_crowd.yml
    
  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/atlassian.
  • In diesem finden Sie eine docker-compose.yml vor, die eine Erweiterung der vorherigen ist, in der nur Crowd drin war.
  • Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
    • Übertragen Sie Ihre Anpassungen für Crowd aus der zuvor gesicherten/kopierten docker-compose_crowd.yml.
    • Passen Sie im jira Service ATL_PROXY_NAME und ATL_TOMCAT_CONTEXTPATH an.
    • Passen Sie im jira-db Service mindestens den DB User (POSTGRES_USER) und das DB Passwort (POSTGRES_PASSWORD) an.
    • Sie sehen, dass für den crowd und den jira Service jeweils feste IP-Adressen in dem intern Netzwerk vergeben wurden. Dies ist relevant, weil im Folgenden bei der Kopplung beider Services diese IP-Adressen fest eingetragen werden müssen. Außerdem wurde für das Netzwerk intern selbst das subnet und das gateway gesetzt. Sollten diese IP-Konfigurationen mit Ihrer Umgebung konfligieren, passen Sie diese einfach an.
  • Anschließend starten Sie den gesamten Stack und überprüfen Sie, ob alle Container laufen -- inklusive NPM.
    cd /var/opt/docker/atlassian
    docker compose up -d
    docker ps
    

Um Jira hinter dem NPM erreichbar zu machen, müssen Sie noch eine entsprechende "Custom location" anlegen.

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu.
    • Define location: /[ihre_location_jira]
    • Scheme: http
    • Forward Hostname / IP: llua_jira
    • Forward Port: 8080

Nachdem Sie Jira in Ihrem Browser aufgerufen (https://[ihre_domain]/[ihre_location_jira]) haben, werden Sie durch das Setup geführt.

  • Wählen Sie "I'll set it up myself".
  • Unter "Database setup" wählen Sie "My Own Database" und konfigurieren diese wie folgt:
    • Database Type: PostgreSQL
    • Hostname: llua_jira_db
    • Port: 5432
    • Database: jira
    • Username: jira (wenn nicht geändert, siehe docker-compose.yml)
    • Password: (siehe docker-compose.yml)
    • Schema: public
  • Anschließend klicken Sie auf "Test Connection" und warten.
    • Sollte dies so lange dauern, dass Sie im Browser einen "504 Gateway Time-out" erhalten, machen Sie sich keine Sorgen. Jira arbeitet im Hintergrund weiter.
    • Rufen Sie nach einiger Zeit (wenige Minuten) einfach wieder https://[ihre_domain]/[ihre_location_jira] auf und Sie werden zum nächsten Schritt "Set up application properties" kommen.
  • Unter "Set up application properties" wählen Sie den beliebigen "Mode" (vermutlich: Private)
    • und setzen die folgende Base URL: https://[ihre_domain]/[ihre_location_jira]
  • Anschließend müssen Sie noch Ihren Lizenzschlüssel eingeben, einen Administrator erstellen und können E-Mail-Benachrichtigungen einrichten.

Jira und Crowd koppeln

Wenn Ihr Jira läuft, können Sie im nächsten Schritt Jira und Crowd miteinander koppeln, sodass Jira auf die Gruppen und BenutzerInnen aus Crowd zugreifen kann. Für diesen Schritt muss Ihr Crowd noch nicht mit einem Authentifizierungsdienst gekoppelt sein. Es schadet aber auch nicht.

Um Jira und Crowd miteinander zu koppeln, folgen Sie bitte dieser Anleitung von Atlassian und beachten dabei die folgenden Punkte:

  • "Define the Jira Application in Crowd"
    • Verwenden Sie in Crowd beim Hinzufügen der Jira Application
      • URL: http://llua_jira
      • IP: 192.168.60.3 (wenn nicht angepasst, siehe docker-compose.yml)
  • "Add a Crowd Directory in Jira"
    • Verwenden Sie in Jira beim Hinzufügen des User Directories Crowd
      • Server URL: http://192.168.60.2:8095/crowd (wenn nicht angepasst, siehe docker-compose.yml)
Confluence#

Version

Die folgenden Instruktionen wurden für Confluence 7.20.3 verfasst.

Download

Hier können Sie die benötigen Artefakte herunterladen, um Crowd, Jira und Confluence wie hier beschrieben in Betrieb zu nehmen.

Außerdem ist hier offiziell beschrieben, wie Confluence via Docker von Grund auf aufgesetzt werden kann.

  • Stoppen Sie Crowd und Jira
    cd /var/opt/docker/atlassian
    docker compose down
    
  • Kopieren Sie Ihre aktuelle atlassian/docker-compose.yml. [ACHTUNG! Andernfalls werden Ihre Anpassungen im nächsten Schritt überschrieben.]
    cp /var/opt/docker/atassian/docker-compose.yml /var/opt/docker/atassian/docker-compose_crowd-jira.yml
    
  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/atlassian.
  • In diesem finden Sie eine docker-compose.yml vor, die Erweiterung der vorherigen ist, in der nur Crowd und Jira drin waren.
  • Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
    • Übertragen Sie Ihre Anpassungen für Crowd und Jira aus der zuvor gesicherten/kopierten docker-compose_crowd-jira.yml.
    • Passen Sie im confluence Service ATL_PROXY_NAME und ATL_TOMCAT_CONTEXTPATH an.
    • Passen Sie im confluence-db Service mindestens den DB User (POSTGRES_USER) und das DB Passwort (POSTGRES_PASSWORD) an.
    • Sie sehen, dass auch für den confluence Service eine feste IP-Adresse in dem intern Netzwerk vergeben wurde. Dies ist relevant, weil im Folgenden bei der Kopplung mit Crowd diese IP-Adresse fest eingetragen werden müssen. Außerdem wird für das Netzwerk intern selbst weiterhin das subnet und das gateway gesetzt. Sollten diese IP-Konfigurationen mit Ihrer Umgebung konfligieren, passen Sie diese einfach an.
  • Anschließend starten Sie den gesamten Stack und überprüfen Sie, ob alle Container laufen -- inklusive NPM.
    cd /var/opt/docker/atlassian
    docker compose up -d
    docker ps
    
  • Damit das anschließende Setup gelingt, müssen Sie jetzt noch die entsprechenden Rechte für den Confluence Ordner setzen (ein ähnliches Problem ist hier beschrieben)
    chmod -R 777 volumes/confluence/application-data/confluence
    

Um Confluence hinter dem NPM erreichbar zu machen, müssen Sie noch eine entsprechende "Custom location" anlegen.

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu.
    • Define location: /[ihre_location_confluence]
    • Scheme: http
    • Forward Hostname / IP: llua_confluence
    • Forward Port: 8090

Nachdem Sie Jira in Ihrem Browser aufgerufen (https://[ihre_domain]/[ihre_location_confluence]) haben, werden Sie durch das Setup geführt.

  • "Set up your database"
    • Wählen Sie "My own database"
    • und konfigurieren Sie die DB Verbindung wie folgt:
      • Database Type: PostgreSQL
      • Setup type: Simple
      • Hostname: llua_confluence_db
      • Port: 5432
      • Database: confluence
      • Username: confluence (wenn nicht geändert, siehe docker-compose.yml)
      • Password: (siehe docker-compose.yml)
    • Anschließend klicken Sie auf "Test Connection", dann auf "Next" und warten.
      • Sollte dies so lange dauern, dass Sie im Browser einen "504 Gateway Time-out" erhalten, machen Sie sich keine Sorgen. Confluence arbeitet im Hintergrund weiter.
      • Rufen Sie nach einiger Zeit (wenige Minuten) einfach wieder https://[ihre_domain]/[ihre_location_confluence] auf und Sie werden zum nächsten Schritt "Set up application properties" kommen.
      • Sollten Sie jedoch einen "System Error" erhalten, haben Sie wahrscheinlich zuvor vergessen, die Rechte für das Volume für confluence zu setzen.
  • "Configure User Management"
    • Wählen Sie hier "Manage Users and Groups within Confluence", denn wie dort beschrieben ist, soll Confluence später ja über Crowd an LDAP angebunden werden.
  • Anschließend legen Sie noch einen Administrationsaccount an
  • und sollten dann auf die "Setup Successful" Seite weitergeleitet werden.

Jetzt sollten Sie die Rechte für den Confluence Ordner wieder anpassen (wie hier beschrieben).

chmod -R 755 volumes/confluence/application-data/confluence

Kollaboratives Bearbeiten im Editor ermöglichen

Zu diesem Zeitpunkt sollte es noch nicht möglich sein, Pages im Editor zu speichern, geschweige denn kollaborativ zu bearbeiten. Dies wird über Synchrony realisiert, welches auf dem Port 8091 des llua_confluence Containers läuft. Damit Synchrony angesprochen werden kann, muss in NPM noch eine weitere Location hinzugefügt werden.

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu.
    • Define location: /synchrony
    • Scheme: http
    • Forward Hostname / IP: llua_confluence
    • Forward Port: 8091

Anschließend sollte das Speichern und kollaborative Editieren von Pages möglich sein.

Confluence und Crowd koppeln

Wenn Ihr Confluence läuft, können Sie im nächsten Schritt Confluence und Crowd miteinander koppeln, sodass Confluence auf die Gruppen und BenutzerInnen aus Crowd zugreifen kann. Für diesen Schritt muss Ihr Crowd noch nicht mit einem Authentifizierungsdienst gekoppelt sein. Es schadet aber auch nicht.

Um Confluence und Crowd miteinander zu koppeln, folgen Sie bitte dieser Anleitung von Atlassian und beachten dabei die folgenden Punkte:

  • "Define the Confluence Application in Crowd"
    • Verwenden Sie in Crowd beim Hinzufügen der Jira Application
      • URL: http://llua_confluence
      • IP: 192.168.60.4 (wenn nicht angepasst, siehe docker-compose.yml)
  • "Add a Crowd Directory in Confluence"
    • Verwenden Sie in Confluence beim Hinzufügen des User Directories Crowd
      • Server URL: http://192.168.60.2:8095/crowd (wenn nicht angepasst, siehe docker-compose.yml)
Fisheye / Crucible#

Zurzeit keine Beschreibung

Fisheye und Crucible können in speziellen Fällen eine sinnvolle Erweiterung Ihrer LLUA sein. Wenn Sie z. B. stark auf Code Reviews setzen bzw. dieses Konzept praktisch lehren wollen.

Allgemeine Informationen zu beiden können Sie hier bei Atlassian finden.

Das Setup sowie die Nutzung von Fisheye und Crucible ist zurzeit nicht Teil dieses Handbuchs.

Data Warehouse#

Download

Hier können Sie die benötigen Artefakte herunterladen, um die PostgreSQL DB wie hier beschrieben in Betrieb zu nehmen.

Außerdem ist hier offiziell beschrieben, wie PostegreSQL via Docker von Grund auf aufgesetzt werden kann.

Das Data Warehouse (DWH) besteht hier nur aus einer einfachen PostgreSQL Datenbank und einem Nginx als File Server. Das Setup ist also einfach.

Datenbank

  • Erstellen Sie zunächst ein externes Netzwerk, sodass andere Container die Möglichkeit erhalten, auf das DWH zuzugreifen (wie z. B. Pentaho Server).

    docker network create llua-data-warehouse
    

  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/data_warehouse.

  • In diesem finden Sie eine docker-compose.yml vor (und eine nginx.conf, die aber erst unten beim File Server gebraucht wird).
  • Kommentieren Sie zunächst alle Zeile des data-warehouse-fileserver Services aus. Dieser wird erst unten aufgesetzt. Wenn Sie diesen nicht benötigen, können Sie diesen auch weglassen.
  • Inspizieren Sie die docker-compose.yml und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
    • Passen Sie im data-warehouse-db Service mindestens den DB User (POSTGRES_USER) und das DB Passwort (POSTGRES_PASSWORD) an.
    • Damit das DWH auch außerhalb des Docker-Netzwerks erreichbar ist, muss der DB Port auf einen zugänglichen Port des Hosts gebunden werden. Passen Sie diesen also an.
  • Anschließend starten Sie den gesamten Stack und überprüfen, ob alle Container laufen -- inklusive NPM.
    cd /var/opt/docker/data_warehouse
    docker compose up -d
    docker ps
    

Testen Sie anschließend mit einem DB-Client (z. B. Dbeaver), ob Sie die Verbindung zur Datenbank wie gewünscht herstellen können.

File Server

Hinweis

Die folgende Anleitung kann auch dazu genutzt werden, einen gewöhnlichen File Server aufzusetzen, der nicht als Teil des DWH dienen soll. Wenn Sie für Ihre Lehrveranstaltung z. B. große Dateien zum Download bereitstellen wollen. In dem Fall bietet es sich an, diese aus dem Backup auszuschließen.

Da die Dateien, die hier zum Download bereitgestellt werden sollen, Daten beinhalten, sollte der Zugriff durch eine Authentifizierung abgesichert werden. Dazu wird hier HTTP Basic Auth genutzt.

  • Erstellen Sie eine .htpasswd Datei, welche die Zugangsdaten beinhaltet
    cd /var/opt/docker/data_warehouse
    htpasswd .htpasswd [user_name]
    
  • Überprüfen Sie, ob die Datei angelegt wurde.
  • Öffnen Sie die nginx.conf und überprüfen Sie, ob diese Ihren Vorstellungen entspricht
    • dort sehen Sie, dass eine .htpasswd eingebunden wird
          auth_basic "Restricted";
          auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
      
    • An die Stelle wird diese von der docker-compose.yml in den Container gelegt
            - ./.htpasswd:/etc/nginx/conf.d/.htpasswd:ro
      
  • Nachdem Sie dies vorbereitet haben, kommentieren sie in der docker-compose.yml ggf. den data-warehouse-fileserver Service wieder ein und starten Sie diesen anschließend
    docker compose up -d
    

Um den File Server hinter dem NPM erreichbar zu machen, müssen Sie noch eine entsprechende "Custom location" anlegen.

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu.
    • Define location: /downloads
    • Scheme: http
    • Forward Hostname / IP: llua_data_warehouse_fileserver
    • Forward Port: 80
  • Die Location ist hier auf /downloads festgelegt. Wenn Sie dies ändern möchten, dann müssen Sie sowohl die nginx.conf

            location /downloads/csv/ {
    ``
    * als auch das Volume Mapping in der `docker-compose.yml` editieren.
    ``` yml
          - ./volumes/files:/media/downloads
    

  • Damit die in der nginx.conf konfigurierte Location /downloads/csv auch existiert, müssen Sie jetzt noch den csv Ordner anlegen

    mkdir volumes/files/csv
    

  • Jetzt können Sie diesen Ordner von außen erreichen, indem Sie z. B. folgendes in Ihren Browser eingeben https://[ihre_domain]/downloads/csv/ (bitte beachten Sie den nachgestellten /).

  • Dabei sollten Sie zur Eingabe des oben -- in der .htpasswd -- festgelegten Benutzernamen und Passwort aufgefordert werden.
  • Anschließend sehen Sie nur
    Index of /downloads/csv/
    
    ../
    
  • Der Ordner ist also leer. Legen Sie eine Datei an, laden Sie die Website neu und versuchen Sie, diese Datei herunterzuladen, indem Sie diese anklicken.
    touch volumes/files/csv/test.txt
    
    Index of /downloads/csv/
    
    ../
    test.txt    23-Mar-2023 09:17    0
    

Pentaho Server#

Version

Die folgenden Instruktionen wurden für Pentaho Data Integration Server 9.1 verfasst.

Download

Hier können Sie die benötigen Artefakte herunterladen, um Pentaho wie hier beschrieben in Betrieb zu nehmen.

Credits

Die Zusammenstellung dieses Pentaho Server 9.1 Docker Images, basiert auf den folgenden Arbeiten:

  • Entpacken Sie das Archiv, das oben zum Download zur Verfügung gestellt wird in /var/opt/docker/pentaho.
  • In diesem finden Sie dieses Mal wesentlich mehr als nur eine docker-compose.yml vor.

Die geheimen Zugangsdaten werden dieses Mal nicht direkt in die docker-compose.yml geschrieben, sondern in der .env Datei abgelegt, da diese nicht nur zum Starten des Containers, sondern auch zum Bauen des Images benötigt werden. Für Pentaho Data Integration Server gibt es kein offizielles Image, also muss dieses Image selbst gebaut werden. Das passiert mittels des Dockerfile und den Skripten, die in dem Unterordner scripts liegen. Außerdem wird dafür noch die kettle_settings benötigt. Die Dateien, die in configs liegen, werden direkt in den laufenden Container eingebunden (siehe docker-compose.yml). Wenn Sie den Stack starten, wird (wenn das Image noch nicht gebaut wurde) das Image automatisch gebaut.

Bevor Sie den Stack starten, ist jedoch noch einiges zu tun.

  • Inspizieren Sie die .env und passen Sie die entsprechenden Passwörter an.
  • Öffnen Sie die config/server.xml,
    • und setzen Sie für proxyName Ihre Domain.
  • Öffnen Sie die config/server.properties und setzen Sie die fully-qualified-server-url wie folgt
    • fully-qualified-server-url=https://[ihre_domain]/pentaho/
    • Wie schon bei Crowd, haben Sie auch bei Pentaho nicht auf einfache Weise die Möglichkeit, die Location anzupassen. Also bleibt diese erstmal bei /pentaho
  • Inspizieren Sie die docker-compose.yml und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
    • In dieser wird auf das oben erzeuge Netzwerk zugegriffen, um auf das Data Warehouse zuzugreifen. Wenn Sie das nicht getan haben, holen Sie das jetzt nach
      docker network create llua-data-warehouse
      
    • Außerdem wird das Netzwerk pentaho-extract-tier (interner Name) bzw. llua-pentaho-extract (externer Name) verwendet. Dieses Netzwerk dient dazu, dem Pentaho Container eine Verbindung zu den Datenquellen herzustellen (in dieser LLUA hier z. B. die Datenbanken von Jira, Confluence und Mattermost), wenn die Jobs und Transformationen nicht auf einem Client, sondern auf dem Pentaho Server ausgeführt werden. Erstellen Sie dieses externe Netzwerk ebenfalls
      docker network create llua-pentaho-extract
      
      • HINWEIS: Diesem Netzwerk müssen alle Container hinzugefügt werden, auf die Pentaho Server Zugriff haben soll. Dies können Sie entweder jetzt oder später erledigen. (Natürlich können Sie auch für jede Datenquelle ein eigenes Netzwerk erstellen, in welchem nur die Quellen und Pentaho Server sind, um diese Quellen stärker voneinander zu separieren.)
        • Kopieren Sie dazu die Definition des Netzwerks in die jeweilige docker-compose.yml
            pentaho-extract-tier:
              external:
                name: llua-pentaho-extract
          
        • und tragen Sie pentaho-proxy-tier in die Netzwerke der jeweiligen Services ein.
          • Für den jira-db Services sehen die Netzwerke dann z. B. wie folgt aus:
                networks:
                  - jira-db
                  - pentaho-extract-tier
            
  • Anschließend starten Sie den Pentaho Stack und überprüfen, ob alle Container laufen.
    cd /var/opt/docker/pentaho
    docker compose up -d
    docker ps
    

Die Initialisierung von Pentaho nimmt bis zu einige Minuten in Anspruch. Sie können diese Zeit nutzen, um die Location in NPM zu erstellen.

  • Öffnen Sie die Weboberfläche von NPM und editieren Sie den für Ihre Domain angelegten "Proxy Host".
  • Klicken Sie auf "Custom locations" und fügen Sie eine neue hinzu.
    • Define location: /pentaho
    • Scheme: http
    • Forward Hostname / IP: llua_pentaho
    • Forward Port: 8080

Wenn Sie Pentaho anschließend in Ihrem Browser erreichen können, sollten Sie anschließend dafür sorgen, dass die BenutzerInnen Datenbank und Pentaho's Repository (in diesem können Sie Jobs und Transformationen ablegen und ausführen) persistiert werden. Dazu ist es notwendig, beides aus dem laufenden Container zu kopieren und in einem Ordner auf dem Host abzulegen, welches wir anschließend als Volume in den Container einbinden.

  • Kopieren Sie die oben genannten Daten auf den Host
    cd /var/opt/docker/pentaho
    mkdir ./volumes/pentaho
    docker compose up -d
    docker cp llua_pentaho:/opt/pentaho/server/pentaho-server/data/hsqldb volumes/pentaho/
    docker cp llua_pentaho:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit/repository volumes/pentaho/
    chmod -R 777 volumes/pentaho
    
  • Stoppen Sie die Container
    docker compose down
    
  • Öffnen Sie die docker-compose.yml und kommentieren Sie das Mapping für die Volumes für die eben erzeugten Ordner ein
    ...
          - ./volumes/pentaho/hsqldb:/opt/pentaho/server/pentaho-server/data/hsqldb
          - ./volumes/pentaho/repository:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit/repository
    ...
    
  • Starte Sie die Container wieder
    docker compose up -d
    

Als nächstes sollten Sie

  • sich als Administrator auf der Weboberfläche einloggen Log in as an evaluator > Administrator > Log in,
  • das Passwort des Administrators ändern oder einen neuen erzeugen und dann den alten löschen Home > Administration > Users & Rols > Manage Users,
  • die restlichen Benutzer entfernen,
  • und einen neuen Benutzer anlegen, mit welchem Sie Pentaho Server nutzen möchten.
    • Weisen Sie diesem Benutzer entsprechende Rollen zu.

Wie Sie die Pentaho Server Instance mit dem PDI-Spoon Client verbinden und nutzen können, wird unten beschrieben.

Backups#

Disclaimer

Sie sind selbst für die Sicherheit Ihrer Daten und Ihres Backups verantwortlich. Die hier beschriebene Lösung dient lediglich als Anregung. Bitte informieren Sie sich über eine sichere Backup-Lösung.

Zwar ist das Backup keine direkte Komponente der LLUA, sollte jedoch von Ihnen eingerichtet werden. Zu diesem Zweck bieten sich verschiedene Lösungen an. In der exemplarischen LLUA wird dazu restic verwendet.

Das Backup aller LLUA spezifischen Daten wurde dadurch erleichtert, dass alle Daten unter /var/opt/docker zu finden sind. Beim Erstellen eines Backups können zuvor alle laufenden Container heruntergefahren werden, um mögliche Probleme zu umgehen -- wie z. B. laufende Datenbanktransformationen. Dies geht am einfachsten, wenn Sie den gesamten Docker Service stoppen, unter Ubuntu z. B.

systemctl stop docker.service
Nachdem das Backup durchgeführt wurde, starten Sie den Docker Service einfach wieder. Da alle oben beschriebenen Container restart: unless-stopped gesetzt haben, starten diese alle automatisch.
systemctl start docker.service

Wenn Sie die Datenbankinhalte zusätzlich separat sichern wollen, könnten sie zunächst einen Dump der betroffenen PostgreSQL Datenbanken erstellen, dazu können Sie z. B. dieser Anleitung von SimpleBackups folgen.

Übung

Üben Sie das restore Ihres Backups regelmäßig, damit Sie vorberietet sind, wenn Sie es benötigen.

Clients#

Dbeaver#

Installieren Sie Dbeaver nach den für Ihr Betriebssystem offiziell angegebenen Anweisungen.

Pentaho Data Integration - Spoon#

Installation unter Windows

Ausführliche Anleitung von Shravankumar Suvarna. Anstatt die globale JAVA_HOME Umgebungsvariable zu setzen, sollten Sie die PENTAHO_JAVA_HOME Umgebungsvariable setzen. Diese wird beim Start von Spoon ausgelesen.

Installation unter Linux (Ubuntu)

Ausführliche Anleitung von Mehedi Hasan. Sehen Sie unten, wie Sie die PENTAHO_JAVA_HOME Umgebungsvariable setzen sollten. Diese wird beim Start von Spoon ausgelesen.

Installation unter MacOS

  • Laden Sie die ZIP-Datei pdi-ce-9.1.0.0-324.zip hier von SourceForge herunter (laden Sie Bedarf eine andere Version).
  • Installieren Sie Java 1.8 (Spoon benötigt Java in der Version 1.8).
    • Hier können Sie Java 1.8 für Ihr Betriebssystem von Oracle herunterladen.
  • Setzen Sie die Umgebungsvariable PENTAHO_JAVA_HOME auf die Java 1.8 Version.
    • Den Pfad, auf den Sie diese Umgebungsvariable setzen müssen, finden Sie mit dem Befehl /usr/libexec/java_home -V heraus.
      • Unter MacOS kann dieser z. B. wie folgt lauten
        /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
        
    • Der Befehl, um die Umgebungsvariable temporär für die aktuelle Terminalsitzung zu setzen, wäre in diesem Falle
      export PENTAHO_JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
      
      • Ein Ausführliche Anleitung zu Umgebungsvariablen (unter Linux, gilt aber auch für MacOS), lässt sich hier auf DigitalOcean finden.
      • Hier wird auf DigitalOcean z. B. erläutert, wie Sie Umgebungsvariablen dauerhaft setzen können.
  • Entpacken Sie die oben heruntergeladene ZIP und starten Sie Spoon, indem Sie die spoon.sh ausführen.
    cd <verzeichnis_in_das_sie_die_zip_entpackt_haben>
    ./spoon.sh
    

Power BI#

Nur für Windows

Power BI ist lediglich für Windows verfügbar. Sollte kein entsprechender Computer zur Verfügung stehen, können Sie mit einer virtuellen Maschine Abhilfe schaffen. Wie Sie prinzipiell eine VM erzeugen können, finden Sie z. B. hier bei How-To Geek. Die Beschreibung ist zwar für eine Ubuntu VM, funktioniert jedoch entsprechend auch für eine Windows VM.

Es ist ratsam, den Teilnehmenden einer Lehrveranstaltung eine solche VM bereitzustellen, um ihren Setup-Aufwand zu verringern.

Hier können Sie Power BI Desktop direkt von Microsoft herunterladen.

Eine Lizenz wird für die grundlegenden Funktionen (welche zunächst völlig ausreichend sind), nicht benötigt. Schließen Sie das Anmeldefenster nach dem Start von Power BI einfach.

Disco#

Nur für Windows und MacOS

Folgen Sie für die Installation der offizielle Anleitung von Fluxicon.

Eine Academic License können Sie z. B. beantragen, wenn Sie sich nach dem Start von Disco mit Ihrer universitären E-Mail-Adresse anmelden.

ProM#

Laden Sie ProM von der offiziellen Seite herunter und installieren Sie es. Zu empfehlen ist, dass Sie nicht die Lite Version nehmen, sondern z. B. ProM 6.12 herunterladen.