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).
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
volumesangelegt, 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. 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.ymlvor. - Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
- Starten Sie NPM
- Ö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.
- Details
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.ymlvor. - 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-dbundllua-mattermost) an.
- Passen Sie mindestens den DB User und das DB Passwort mit beiden Services (
- 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.
- 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.
- Und setzen sie ggf. den richtigen Eigentümer.
- Anschließend starten Sie Mattermost erneut, um es dann nach einigen Sekunden wieder zu stoppen.
- Editieren Sie die jetzt erstellte Datei
./volumes/mattermost/config/config.ymlund setzen Sie Ihre URL ([ihre_domain],[ihre_location_mattermost]) sowie die Datenbankverbindung ([POSTGRES_USER],[POSTGRES_PASSWORD],[POSTGRES_DB]), jeweils ohne eckige Klammern.llua_mattermost_dbist der Name des Containers, in der die DB läuft. Wenn Sie diesen geändert haben, denken Sie daran, das ebenfalls anzupassen. - Starten Sie Mattermost und lassen Sie es dieses Mal laufen.
- Überprüfen Sie, ob jetzt alle Container laufen:
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
- Define location:
- 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; }
- Define location:
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.ymlvor. - Inspizieren Sie diese und vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.
- Passen Sie im
crowdServiceATL_PROXY_NAMEan. - Passen Sie im
crowd-dbService 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:
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
- Define location:
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.
-
Alternativ könnten Sie auch Ihre
docker-compose.ymleditieren. - Dazu fügen Sie dem
crowdService in derdocker-compose.ymlfolgendes hinzu: - Anschließend starten Sie Crowd neu.
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/crowdein -
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.
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
- Kopieren Sie Ihre aktuelle
atlassian/docker-compose.yml. [ACHTUNG! Andernfalls werden Ihre Anpassungen im nächsten Schritt überschrieben.] - 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.ymlvor, 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
jiraServiceATL_PROXY_NAMEundATL_TOMCAT_CONTEXTPATHan. - Passen Sie im
jira-dbService mindestens den DB User (POSTGRES_USER) und das DB Passwort (POSTGRES_PASSWORD) an. - Sie sehen, dass für den
crowdund denjiraService jeweils feste IP-Adressen in deminternNetzwerk 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 Netzwerkinternselbst dassubnetund dasgatewaygesetzt. Sollten diese IP-Konfigurationen mit Ihrer Umgebung konfligieren, passen Sie diese einfach an.
- Übertragen Sie Ihre Anpassungen für Crowd aus der zuvor gesicherten/kopierten
- Anschließend starten Sie den gesamten Stack und überprüfen Sie, ob alle Container laufen -- inklusive NPM.
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
- Define location:
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, siehedocker-compose.yml) - Password: (siehe
docker-compose.yml) - Schema:
public
- Database Type:
- 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]
- und setzen die folgende Base URL:
- 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, siehedocker-compose.yml)
- URL:
- Verwenden Sie in Crowd beim Hinzufügen der Jira Application
- "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, siehedocker-compose.yml)
- Server URL:
- Verwenden Sie in Jira beim Hinzufügen des User Directories Crowd
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
- Kopieren Sie Ihre aktuelle
atlassian/docker-compose.yml. [ACHTUNG! Andernfalls werden Ihre Anpassungen im nächsten Schritt überschrieben.] - 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.ymlvor, 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
confluenceServiceATL_PROXY_NAMEundATL_TOMCAT_CONTEXTPATHan. - Passen Sie im
confluence-dbService mindestens den DB User (POSTGRES_USER) und das DB Passwort (POSTGRES_PASSWORD) an. - Sie sehen, dass auch für den
confluenceService eine feste IP-Adresse in deminternNetzwerk 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 Netzwerkinternselbst weiterhin dassubnetund dasgatewaygesetzt. Sollten diese IP-Konfigurationen mit Ihrer Umgebung konfligieren, passen Sie diese einfach an.
- Übertragen Sie Ihre Anpassungen für Crowd und Jira aus der zuvor gesicherten/kopierten
- Anschließend starten Sie den gesamten Stack und überprüfen Sie, ob alle Container laufen -- inklusive NPM.
- 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)
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
- Define location:
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, siehedocker-compose.yml) - Password: (siehe
docker-compose.yml)
- Database Type:
- 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
confluencezu 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).
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
- Define location:
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, siehedocker-compose.yml)
- URL:
- Verwenden Sie in Crowd beim Hinzufügen der Jira Application
- "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, siehedocker-compose.yml)
- Server URL:
- Verwenden Sie in Confluence beim Hinzufügen des User Directories Crowd
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).
-
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.ymlvor (und einenginx.conf, die aber erst unten beim File Server gebraucht wird). - Kommentieren Sie zunächst alle Zeile des
data-warehouse-fileserverServices aus. Dieser wird erst unten aufgesetzt. Wenn Sie diesen nicht benötigen, können Sie diesen auch weglassen. - Inspizieren Sie die
docker-compose.ymlund vergewissern Sie sich, dass Sie Ihren Vorstellungen entspricht.- Passen Sie im
data-warehouse-dbService 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.
- Passen Sie im
- Anschließend starten Sie den gesamten Stack und überprüfen, ob alle Container laufen -- inklusive NPM.
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
.htpasswdDatei, welche die Zugangsdaten beinhaltet - Überprüfen Sie, ob die Datei angelegt wurde.
- Öffnen Sie die
nginx.confund überprüfen Sie, ob diese Ihren Vorstellungen entspricht- dort sehen Sie, dass eine .htpasswd eingebunden wird
- An die Stelle wird diese von der
docker-compose.ymlin den Container gelegt
- Nachdem Sie dies vorbereitet haben, kommentieren sie in der
docker-compose.ymlggf. dendata-warehouse-fileserverService wieder ein und starten Sie diesen anschließend
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
- Define location:
-
Die Location ist hier auf
/downloadsfestgelegt. Wenn Sie dies ändern möchten, dann müssen Sie sowohl dienginx.conf -
Damit die in der
nginx.confkonfigurierte Location/downloads/csvauch existiert, müssen Sie jetzt noch dencsvOrdner anlegen -
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
- 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.
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.ymlvor.
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
.envund passen Sie die entsprechenden Passwörter an. - Öffnen Sie die
config/server.xml,- und setzen Sie für
proxyNameIhre Domain.
- und setzen Sie für
- Öffnen Sie die
config/server.propertiesund setzen Sie diefully-qualified-server-urlwie 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.ymlund 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
- 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- 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 - und tragen Sie
pentaho-proxy-tierin die Netzwerke der jeweiligen Services ein.- Für den
jira-dbServices sehen die Netzwerke dann z. B. wie folgt aus:
- Für den
- Kopieren Sie dazu die Definition des Netzwerks in die jeweilige
- 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.)
- Anschließend starten Sie den Pentaho Stack und überprüfen, ob alle Container laufen.
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
- Define location:
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
- Öffnen Sie die
docker-compose.ymlund kommentieren Sie das Mapping für die Volumes für die eben erzeugten Ordner ein - Starte Sie die Container wieder
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.
restart: unless-stopped gesetzt haben, starten diese alle automatisch.
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.ziphier 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_HOMEauf die Java 1.8 Version.- Den Pfad, auf den Sie diese Umgebungsvariable setzen müssen, finden Sie mit dem Befehl
/usr/libexec/java_home -Vheraus.- Unter MacOS kann dieser z. B. wie folgt lauten
- Der Befehl, um die Umgebungsvariable temporär für die aktuelle Terminalsitzung zu setzen, wäre in diesem Falle
- Den Pfad, auf den Sie diese Umgebungsvariable setzen müssen, finden Sie mit dem Befehl
- Entpacken Sie die oben heruntergeladene ZIP und starten Sie Spoon, indem Sie die
spoon.shausführen.
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.