Setup:Installationsanleitung/Docker: Unterschied zwischen den Versionen

K ((Benutzername entfernt) (Logbucheinzelheiten entfernt))
Keine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Special:PrefixIndex/Setup:Installation_Guide/Docker/|stripprefix=1}}
{{Textbox
|boxtype=important
|header=Migration von 4.4
|text=Mit BlueSpice 4.5 gab es einige wichtige Änderungen am Container-Portfolio:
# Es gibt keine „All-in-One“-Container mehr. Weder für die ''free'' noch für die ''pro'' oder ''farm'' Editionen
# Das „Distributed-Services“-Setup für die ''pro'' und ''farm'' Editionen wurde komplett überarbeitet.
Wenn Sie von einem der oben genannten Setups aktualisieren, lesen Sie bitte den [[{{FULLPAGENAME}}/Migration_4.4 to 4.5|Migrationsleitfaden]].
|icon=yes
}}
 
__TOC__
 
===Übersicht===
Seit Version 4.5 kann BlueSpice MediaWiki einfach mithilfe eines Stapels von Docker-Container-Images installiert werden. Alles ist modular aufgebaut, um verschiedene Arten von Setups zu ermöglichen.
 
Die häufigsten Fälle sind
#„All-in-one“ (mit und ohne Let’s Encrypt)
#Benutzerdefinierte Datenbank und Suchdienst
#Benutzerdefinierter Load Balancer / Proxy
 
===Schritt 1: Den Stack abrufen===
Von https://bluespice.com/de/download/ die „docker-compose“-Dateien abrufen<syntaxhighlight lang="text">
wget https://bluespice.com/filebase/docker-deployment-script \
    && unzip docker-deployment-script \
    && cd docker-deployment-script/compose
</syntaxhighlight>Das Verzeichnis enthält die folgenden Dateien:
{| class="wikitable"
|+
! style="width:350px;" |Dateiname
!Typ
!Pflichtfeld
!Kommentar
|-
| style="width:350px;" |<code>bluespice-deploy</code>
|bash-script
|false
|Wrapper für den allgemeinen Start der benötigten Container
|-
| style="width:350px;" |<code>bluespice-prepare</code>
|bash-script
|false
|Ordner und Berechtigungen vor dem ersten Start vorbereiten, registriert den Dienst auch beim Betriebssystem
|-
| style="width:350px;" |<code>bluespice.service</code>
|service-script
|false
|Richtige Handhabung der Container beim Neustart
|-
| style="width:350px;" |<code>docker-compose.main.yml</code>
|yml
|true
|Hauptanwendungsdienste/ ausgeführt von <code>bluespice-deploy</code>
|-
| style="width:350px;" |<code>docker-compose.persistent-data-services.yml</code>
|yml
|false
|Datenbank und Suche/ ausgeführt von <code>bluespice-deploy</code>
|-
| style="width:350px;" |<code>docker-compose.stateless-services.yml</code>
|yml
|true
|PDF-Renderer/Cache/Formel/Diagramm-Dienst
|-
| style="width:350px;" |<code>docker-compose.proxy.yml</code>
|yml
|false, aber empfohlen
|Proxy-Dienst
|-
| style="width:350px;" |<code>docker-compose.proxy-letsencrypt.yml</code>
|yml
|false
|Zusätzlicher automatischer Erneuerungsdienst für „Let’s Encrypt“-Zertifikate
|-
| style="width:350px;" |<code>docker-compose.kerberos-proxy.yml</code>
|yml
|false
|Zusätzlicher Proxy für Kerberos-basierte Authentifizierung
|}
 
Der Einfachheit halber umschließt das Skript <code>bluespice-deploy</code> standardmäßig die ersten vier <code>yml</code>-Dateien. Dies umfasst die Haupt-Wiki-Anwendung und auch erforderliche Backend-Dienste wie eine Datenbank, eine Suche und einen Anwendungscache.
 
Zusätzliche Dienste können durch Hinzufügen von <code>-f <filename> </code> geladen werden.
 
Beispiel:<syntaxhighlight lang="text">
bluespice-deploy \
      -f docker-compose.proxy-letsencrypt.yml \
      up -d
</syntaxhighlight>Dadurch wird der Stapel mit „Let’s Encrypt“-Zertifikaten gestartet. Weitere Einzelheiten finden Sie im Abschnitt [[#SSL-Zertifikate| SSL-Zertifikate]].
 
===Schritt 2: Umgebungsvariablen einrichten===
Erstellen Sie die Datei <code>.env</code> entsprechend der vorhandenen oder zukünftigen Installation.
 
Beispiel:<syntaxhighlight lang="text">
DATADIR=/data/bluespice
VERSION=4.5
EDITION=pro
BACKUP_HOUR=04
 
WIKI_NAME=BlueSpice
WIKI_LANG=en
WIKI_PASSWORDSENDER=no-reply@wiki.company.local
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local
WIKI_HOST=wiki.company.local
WIKI_PORT=443 WIKI_PROTOCOL=https
 
DB_USER=bluespice
DB_PASS=...
DB_HOST=database
DB_NAME=bluespice
DB_PREFIX=
 
SMTP_HOST=mail.company.local
SMTP_PORT=25 SMTP_USER=...
SMTP_PASS=...
SMTP_ID_HOST=...
</syntaxhighlight>
 
===Schritt 3: Datenverzeichnisse vorbereiten===
Ausführen Das Skript <code>bluespice-prepare</code> hilft Ihnen beim Einrichten der richtigen Ordnerstruktur und Berechtigungen. Außerdem wird ein Dienst für die ordnungsgemäße Handhabung der Container bei Neustarts installiert. Stellen Sie sicher, dass Sie diesen Befehl in einem privilegierten Benutzerkontext (wie <code>root</code>) ausführen, da er Berechtigungen für die neu erstellten Verzeichnisse festlegt.
 
===Schritt 4: Stack starten===
{{Textbox
|boxtype=important
|header=Erstinstallation
|text=Wenn Sie den Stapel zum ersten Mal starten, führt der Container <code>wiki-task</code> die Installation automatisch durch. Es kann einige Minuten dauern, bis der Vorgang die Datenbank eingerichtet und abgeschlossen hat. Sobald er abgeschlossen ist, finden Sie das Passwort für den Standardbenutzer <code>Admin</code> in <code>$DATADIR/wiki/adminPasssword</code>.
|icon=yes
}}
Verwenden Sie <code>bluespice-deploy up -d</code>, um den Stack zu starten, sobald die <code>.env</code>-Datei und die „Datenverzeichnisse“ bereit sind. Sobald alle Container als „bereit“ angezeigt werden, können Sie in Ihrem bevorzugten Webbrowser zu <code>$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT</code> (z. B. <code><nowiki>https://wiki.company.local</nowiki></code>) navigieren und mit der Verwendung der Anwendung beginnen.
 
===Zusätzliche Optionen===
 
====SSL-Zertifikate====
Um Let’s Encrypt-Zertifikate zu verwenden, fügen Sie einfach <code>docker-compose.proxy-letsencrypt.yml</code> in Ihre <code>bluespice-deploy</code>-Datei ein.{{Textbox
|boxtype=tip
|header=Selbstsignierte Zertifikate
|text=Um selbstsignierte Zertifikate zu verwenden, geben Sie bitte <code><bluespice-wiki.com>.crt</code> und <code><bluespice-wiki.com>.key</code> mit dem genauen Namen der URL Ihres Wikis in <code>${VOLUMES_DIR}/nginx/certs</code> ein
|icon=yes
}}
 
Wenn Sie SSL nach der ersten Erstellung des Wikis aktivieren, ändern Sie bitte <code>$wgServer</code> in <code>${VOLUMES_DIR}/bluespice-data/LocalSettings.php</code>
 
in <code><nowiki>https://bluespice-wiki.com</nowiki></code>
 
verknüpfen Sie Ihr Zertifikat auch mit dem Bluespice-Container in Ihrer <code>docker-compose.yml</code>-Datei:
 
<code>- ${VOLUMES_DIR}/nginx/certs/<FQDNofyourWiki>.crt:/usr/local/share/ca-certificates/<FQDNofyourWiki>.crt:ro</code>
 
Bitte starten Sie Container nach dem Ändern/Hinzufügen von SSL-Dateien neu.
 
====Dienst auf Betriebssystemebene====
 
{{Textbox
|boxtype=tip
|header=Zusätzliche Dienste hinzufügen
|text=Erweitern Sie den Parameter <code>ExecStart</code> in <code>/etc/systemd/system/bluespice.service</code>
Beispiel:
ExecStart=<WORKDIR>/bluespice-deploy -f docker-compose.proxy-letsencrypt.yml up -f -d --remove-orphans
|icon=yes
}}
 
====Benutzerdefinierte Wiki-Anwendungskonfiguration====
Nach der Erstinstallation enthält <code>${DATADIR}/wiki/bluespice/</code> zwei Dateien, mit denen Sie eine benutzerdefinierte Anwendungskonfiguration festlegen können, wie sie unter [https://www.mediawiki.org mediawiki.org] zu finden ist:
 
*<code>pre-init-settings.php</code> - Kann verwendet werden, um eine Konfiguration festzulegen, die vom Init übernommen werden kann Prozess
*<code>post-init-settings.php</code> - Kann verwendet werden, um Konfigurationen zu manipulieren, die vom Init-Prozess festgelegt wurden
 
====Benutzerdefinierte Datenbank und Suche====
Wenn Sie einen MySQL/MariaDB- und einen OpenSearch-Server in Ihrem lokalen Netzwerk laufen haben, können Sie <code>docker-compose.persistent-data-services.yml</code> vollständig aus Ihrer <code>bluespice-deploy</code>-Datei entfernen. Stellen Sie sicher, dass Sie die richtigen Variablen in der <code>.env</code>-Datei festlegen.
 
====Kerberos-Proxy====
Für die implizite Authentifizierung mit Kerberos muss ein zusätzlicher Proxy verwendet werden: <code>bluespice/kerberos-proxy</code> . Die Datei <code>docker-compose.kerberos-proxy.yml</code> enthält eine gemeinsame Konfiguration. Es kann '''anstelle''' der regulären Datei <code>docker-compose.proxy.yml</code> in <code>bluespice-deploy</code> verwendet werden.
 
Stellen Sie sicher, dass die Dateien
 
*<code>${DATADIR}/kerberos/krb5.conf</code>
*<code>${DATADIR}/kerberos/kerberos.keytab</code>
 
richtig eingerichtet sind.
 
Die Datei <code>${DATADIR}/wiki/bluespice/pre-init-settings.php</code> kann dann verwendet werden, um „Extension:Auth_remoteuser“ einzurichten.
 
====SAML-Authentifizierung====
 
Während der Erstinstallation wird automatisch ein Zertifikat zur Nachrichtensignierung erstellt. Es befindet sich in <code>${DATADIR}/wiki/simplesamlphp/certs/</code>.
 
Um einen Remote-IDP zu konfigurieren, muss man die IdP-Metadaten-XML in eine Datei namens <code>${DATADIR}/wiki/simplesamlphp/simplesamlphp/saml_idp_metadata.xml</code> kopieren. Die SP-Metadaten können dann über <code><nowiki>https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp</nowiki></code> abgerufen werden. Sie müssen im Remote-IdP konfiguriert werden.
 
{{Textbox
|boxtype=tip
|header=Authentifizierung testen
|text= Sie können die Authentifizierung direkt in der SimpleSAMLphp-Anwendung testen. Navigieren Sie dazu zu <code><nowiki>https://{{$WIKI_HOST}}/_sp/module.php/admin</nowiki></code> und melden Sie sich mit <code>admin</code> und dem <code>INTERNAL_SIMPLESAMLPHP_ADMIN_PASS</code> an, der sich in <code>${DATADIR}/wiki/.wikienv</code> befindet
|icon=yes
}}
 
Als nächstes müssen die Erweiterungen „PluggableAuth“ und „SimpleSAMLphp“ im Wiki aktiviert werden. Fügen Sie dazu in <code>${DATADIR}/wiki/bluespice/post-init-settings.php</code> Folgendes hinzu:
 
<syntaxhighlight lang="php">
wfLoadExtensions( [
'PluggableAuth',
'SimpleSAMLphp'
] );
</syntaxhighlight>
[[Datei:Installationsanleitung Docker Authentifizierungseinstellung.png|alternativtext=Konfigurationsverwaltung mit ausgewählter Funktion "Authentifizierung"|mini|300x300px|Authentifizierungs-Einstellungen]]
Führen Sie folgenden Befehl aus, um die Installation abzuschließen.<syntaxhighlight lang="text">
./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick
</syntaxhighlight>Danach kann die Konfiguration des Authentifizierungs-Plugins in [[Handbuch:Erweiterung/BlueSpiceConfigManager|Spezial:BlueSpiceConfigManager]] unter „Authentifizierung“ angewendet werden.
 
[[en:Setup:Installation_Guide/Docker]]

Aktuelle Version vom 6. November 2024, 11:19 Uhr

Migration von 4.4Mit BlueSpice 4.5 gab es einige wichtige Änderungen am Container-Portfolio:
  1. Es gibt keine „All-in-One“-Container mehr. Weder für die free noch für die pro oder farm Editionen
  2. Das „Distributed-Services“-Setup für die pro und farm Editionen wurde komplett überarbeitet.

Wenn Sie von einem der oben genannten Setups aktualisieren, lesen Sie bitte den Migrationsleitfaden.

Übersicht[Bearbeiten | Quelltext bearbeiten]

Seit Version 4.5 kann BlueSpice MediaWiki einfach mithilfe eines Stapels von Docker-Container-Images installiert werden. Alles ist modular aufgebaut, um verschiedene Arten von Setups zu ermöglichen.

Die häufigsten Fälle sind

  1. „All-in-one“ (mit und ohne Let’s Encrypt)
  2. Benutzerdefinierte Datenbank und Suchdienst
  3. Benutzerdefinierter Load Balancer / Proxy

Schritt 1: Den Stack abrufen[Bearbeiten | Quelltext bearbeiten]

Von https://bluespice.com/de/download/ die „docker-compose“-Dateien abrufen

wget https://bluespice.com/filebase/docker-deployment-script \
    && unzip docker-deployment-script \
    && cd docker-deployment-script/compose

Das Verzeichnis enthält die folgenden Dateien:

Dateiname Typ Pflichtfeld Kommentar
bluespice-deploy bash-script false Wrapper für den allgemeinen Start der benötigten Container
bluespice-prepare bash-script false Ordner und Berechtigungen vor dem ersten Start vorbereiten, registriert den Dienst auch beim Betriebssystem
bluespice.service service-script false Richtige Handhabung der Container beim Neustart
docker-compose.main.yml yml true Hauptanwendungsdienste/ ausgeführt von bluespice-deploy
docker-compose.persistent-data-services.yml yml false Datenbank und Suche/ ausgeführt von bluespice-deploy
docker-compose.stateless-services.yml yml true PDF-Renderer/Cache/Formel/Diagramm-Dienst
docker-compose.proxy.yml yml false, aber empfohlen Proxy-Dienst
docker-compose.proxy-letsencrypt.yml yml false Zusätzlicher automatischer Erneuerungsdienst für „Let’s Encrypt“-Zertifikate
docker-compose.kerberos-proxy.yml yml false Zusätzlicher Proxy für Kerberos-basierte Authentifizierung

Der Einfachheit halber umschließt das Skript bluespice-deploy standardmäßig die ersten vier yml-Dateien. Dies umfasst die Haupt-Wiki-Anwendung und auch erforderliche Backend-Dienste wie eine Datenbank, eine Suche und einen Anwendungscache.

Zusätzliche Dienste können durch Hinzufügen von -f <filename> geladen werden.

Beispiel:

bluespice-deploy \ 
      -f docker-compose.proxy-letsencrypt.yml \ 
      up -d

Dadurch wird der Stapel mit „Let’s Encrypt“-Zertifikaten gestartet. Weitere Einzelheiten finden Sie im Abschnitt SSL-Zertifikate.

Schritt 2: Umgebungsvariablen einrichten[Bearbeiten | Quelltext bearbeiten]

Erstellen Sie die Datei .env entsprechend der vorhandenen oder zukünftigen Installation.

Beispiel:

DATADIR=/data/bluespice 
VERSION=4.5 
EDITION=pro 
BACKUP_HOUR=04

WIKI_NAME=BlueSpice 
WIKI_LANG=en 
WIKI_PASSWORDSENDER=no-reply@wiki.company.local 
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local 
WIKI_HOST=wiki.company.local 
WIKI_PORT=443 WIKI_PROTOCOL=https

DB_USER=bluespice 
DB_PASS=... 
DB_HOST=database 
DB_NAME=bluespice 
DB_PREFIX=

SMTP_HOST=mail.company.local 
SMTP_PORT=25 SMTP_USER=... 
SMTP_PASS=... 
SMTP_ID_HOST=...

Schritt 3: Datenverzeichnisse vorbereiten[Bearbeiten | Quelltext bearbeiten]

Ausführen Das Skript bluespice-prepare hilft Ihnen beim Einrichten der richtigen Ordnerstruktur und Berechtigungen. Außerdem wird ein Dienst für die ordnungsgemäße Handhabung der Container bei Neustarts installiert. Stellen Sie sicher, dass Sie diesen Befehl in einem privilegierten Benutzerkontext (wie root) ausführen, da er Berechtigungen für die neu erstellten Verzeichnisse festlegt.

Schritt 4: Stack starten[Bearbeiten | Quelltext bearbeiten]

ErstinstallationWenn Sie den Stapel zum ersten Mal starten, führt der Container wiki-task die Installation automatisch durch. Es kann einige Minuten dauern, bis der Vorgang die Datenbank eingerichtet und abgeschlossen hat. Sobald er abgeschlossen ist, finden Sie das Passwort für den Standardbenutzer Admin in $DATADIR/wiki/adminPasssword.

Verwenden Sie bluespice-deploy up -d, um den Stack zu starten, sobald die .env-Datei und die „Datenverzeichnisse“ bereit sind. Sobald alle Container als „bereit“ angezeigt werden, können Sie in Ihrem bevorzugten Webbrowser zu $WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT (z. B. https://wiki.company.local) navigieren und mit der Verwendung der Anwendung beginnen.

Zusätzliche Optionen[Bearbeiten | Quelltext bearbeiten]

SSL-Zertifikate[Bearbeiten | Quelltext bearbeiten]

Um Let’s Encrypt-Zertifikate zu verwenden, fügen Sie einfach docker-compose.proxy-letsencrypt.yml in Ihre bluespice-deploy-Datei ein.

Selbstsignierte ZertifikateUm selbstsignierte Zertifikate zu verwenden, geben Sie bitte <bluespice-wiki.com>.crt und <bluespice-wiki.com>.key mit dem genauen Namen der URL Ihres Wikis in ${VOLUMES_DIR}/nginx/certs ein

Wenn Sie SSL nach der ersten Erstellung des Wikis aktivieren, ändern Sie bitte $wgServer in ${VOLUMES_DIR}/bluespice-data/LocalSettings.php

in https://bluespice-wiki.com

verknüpfen Sie Ihr Zertifikat auch mit dem Bluespice-Container in Ihrer docker-compose.yml-Datei:

- ${VOLUMES_DIR}/nginx/certs/<FQDNofyourWiki>.crt:/usr/local/share/ca-certificates/<FQDNofyourWiki>.crt:ro

Bitte starten Sie Container nach dem Ändern/Hinzufügen von SSL-Dateien neu.

Dienst auf Betriebssystemebene[Bearbeiten | Quelltext bearbeiten]

Zusätzliche Dienste hinzufügenErweitern Sie den Parameter ExecStart in /etc/systemd/system/bluespice.service

Beispiel:

ExecStart=<WORKDIR>/bluespice-deploy -f docker-compose.proxy-letsencrypt.yml up -f -d --remove-orphans

Benutzerdefinierte Wiki-Anwendungskonfiguration[Bearbeiten | Quelltext bearbeiten]

Nach der Erstinstallation enthält ${DATADIR}/wiki/bluespice/ zwei Dateien, mit denen Sie eine benutzerdefinierte Anwendungskonfiguration festlegen können, wie sie unter mediawiki.org zu finden ist:

  • pre-init-settings.php - Kann verwendet werden, um eine Konfiguration festzulegen, die vom Init übernommen werden kann Prozess
  • post-init-settings.php - Kann verwendet werden, um Konfigurationen zu manipulieren, die vom Init-Prozess festgelegt wurden

Benutzerdefinierte Datenbank und Suche[Bearbeiten | Quelltext bearbeiten]

Wenn Sie einen MySQL/MariaDB- und einen OpenSearch-Server in Ihrem lokalen Netzwerk laufen haben, können Sie docker-compose.persistent-data-services.yml vollständig aus Ihrer bluespice-deploy-Datei entfernen. Stellen Sie sicher, dass Sie die richtigen Variablen in der .env-Datei festlegen.

Kerberos-Proxy[Bearbeiten | Quelltext bearbeiten]

Für die implizite Authentifizierung mit Kerberos muss ein zusätzlicher Proxy verwendet werden: bluespice/kerberos-proxy . Die Datei docker-compose.kerberos-proxy.yml enthält eine gemeinsame Konfiguration. Es kann anstelle der regulären Datei docker-compose.proxy.yml in bluespice-deploy verwendet werden.

Stellen Sie sicher, dass die Dateien

  • ${DATADIR}/kerberos/krb5.conf
  • ${DATADIR}/kerberos/kerberos.keytab

richtig eingerichtet sind.

Die Datei ${DATADIR}/wiki/bluespice/pre-init-settings.php kann dann verwendet werden, um „Extension:Auth_remoteuser“ einzurichten.

SAML-Authentifizierung[Bearbeiten | Quelltext bearbeiten]

Während der Erstinstallation wird automatisch ein Zertifikat zur Nachrichtensignierung erstellt. Es befindet sich in ${DATADIR}/wiki/simplesamlphp/certs/.

Um einen Remote-IDP zu konfigurieren, muss man die IdP-Metadaten-XML in eine Datei namens ${DATADIR}/wiki/simplesamlphp/simplesamlphp/saml_idp_metadata.xml kopieren. Die SP-Metadaten können dann über https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp abgerufen werden. Sie müssen im Remote-IdP konfiguriert werden.

Authentifizierung testenSie können die Authentifizierung direkt in der SimpleSAMLphp-Anwendung testen. Navigieren Sie dazu zu https://{{$WIKI_HOST}}/_sp/module.php/admin und melden Sie sich mit admin und dem INTERNAL_SIMPLESAMLPHP_ADMIN_PASS an, der sich in ${DATADIR}/wiki/.wikienv befindet

Als nächstes müssen die Erweiterungen „PluggableAuth“ und „SimpleSAMLphp“ im Wiki aktiviert werden. Fügen Sie dazu in ${DATADIR}/wiki/bluespice/post-init-settings.php Folgendes hinzu:

wfLoadExtensions( [
'PluggableAuth',
'SimpleSAMLphp'
] );
Konfigurationsverwaltung mit ausgewählter Funktion "Authentifizierung"
Authentifizierungs-Einstellungen

Führen Sie folgenden Befehl aus, um die Installation abzuschließen.

./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick

Danach kann die Konfiguration des Authentifizierungs-Plugins in Spezial:BlueSpiceConfigManager unter „Authentifizierung“ angewendet werden.



Feedback zur Dokumentation ist im Community-Forum möglich.