Installation auf SUSE Linux Enterprise Server (SLES) 15 / openSUSE Leap 15.0¶
Die Installation der Business Bot Plattform auf SUSE Linux Enterprise
Server (SLES) 15 / openSUSE Leap 15.0 wird durch einen Installer
(Installationswizard) unterstützt. Die Software wird als rpm-Paket
bereitgestellt (Dateiname:
bbp-<edition>-<release>-<fixpack>-1-0.<architecture>.rpm
). Nach dem Starten der Installation prüft der Installer
verschiedene System-Voraussetzungen (z.B. verfügbarer Speicherplatz)
sowie die Kompatibilität mit dem Betriebsystem.
System Konfiguration¶
Die folgende Installation und Konfiguration verwendet als System-Hostname demo.bbp.local
. Wenn Sie einen anderen Hostnamen verwenden möchten, müssen Sie Konfigurationsdateien und Befehle für Ihre Umgebung anpassen. Stellen Sie sicher, dass dieser Hostname / diese Domain auch in Ihrem Netzwerk verfügbar ist (nicht nur auf Ihrem lokalen System).
Installation der Business Bot Plattform¶
Der Installer erstellt während der Installation einen neuen Benutzer.
Unter dem Benutzer bbp
wird Tomcat
ausgeführt. Sämtliche Dateien werden ins Verzeichnis
/opt/bbp
kopiert. Die folgende Schritte
führen Sie nun durch die Installation.
Laden Sie das rpm Paket vom Service Portal herunter.
Die Installation der Pakets erfolgt mit dem rpm-Befehl:
1 | $ sudo rpm -ivh bbp-community-r2019-ga-1-0.x86_64.rpm
|
Anschließend muss der POST-Installation Skript ausgeführt werden, um die Installation zu vervollständigen und die Komponenten der Business Bot Plattform zu konfigurieren. Dies erfolgt mit dem folgenden Befehl:
1 | $ /opt/bbp/scripts/postInstall.sh
|
Folgende Ausgabe sollten Sie dabei erhalten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $ /opt/bbp/scripts/postInstall.sh --------------------------------------------- Copyright(c) 2016-2020 Citunius GmbH BBP Post install started at 2020-11-26_00-21-37 --------------------------------------------- [OK] Diskspace check passed Running on OS: SuSE Check required packages ... > [OK] Package httpd is already installed. > [OK] Package mariadb is already installed. Prepare Apps ... Configure Tomcat ... Enable the Tomcat service, so it starts on server boot ... Configure Firewall ... success success success success success Deploy WebApp BBP ... Start the Tomcat Service ... Post installation action of the Business Bot Platform has finished. In the next step, you have to configure the platform using the WebInstaller. Once you have finished this, you can access the web frontend via browser. -------------------------------------------------------------------------- Web Interface: https://demo.bbp.local:55550/bbp/admin/login -------------------------------------------------------------------------- |
Apache Webserver¶
Der Apache-HTTP-Server ist der am weitesten verbreitete Webserver der Welt. Er bietet viele leistungsstarke Funktionen, darunter dynamisch ladbare Module, robuste Medienunterstützung und umfangreiche Integration mit anderer gängiger Software.
Apache dient der Business Bot Plattform als Reverse-Proxy. Ein Reverse-Proxy ist eine Art Proxy-Server, der HTTP(S)-Anfragen entgegennimmt und sie transparent an einen (oder mehrere) Backend-Server (Tomcat) verteilt.
In diesem Abschnitt werden Sie einen Apache-Webserver auf Ihrem System installieren und konfigurieren.
Installation¶
Apache ist innerhalb der Standard-Software-Repositorys verfügbar, was bedeutet, dass Sie ihn mit dem yum
-Paketmanager installieren können. Um Apache und SSL auf Ihrem System zu installieren, verwenden Sie den folgenden Befehl:
1 2 | $ sudo yum -y install httpd $ sudo yum install -y mod_ssl |
Das System sollte die Apache-Softwarepakete herunterladen und installieren.
Um Apache zu aktivieren, starten Sie zuerst den Dienst.
1 | $ sudo systemctl start httpd
|
Als nächstes stellen Sie den Apache-Dienst so ein, dass er beim Hochfahren des Systems startet:
1 | $ sudo systemctl enable httpd |
Zuletzt zeigen Sie Informationen über Apache an und überprüfen Sie, ob der Apache derzeit damit läuft:
1 | $ sudo systemctl status httpd
|
Konfiguration¶
- Kopieren Sie die Konfigurationsdatei
/opt/bbp/installData/httpd/conf.d/demo.bbp.local.conf
nach/etc/httpd/conf.d/demo.bbp.local.conf
.
Die Konfiguration benötigt ein SSL Zertifikat, welches Sie von einer Zertifizierungsstelle ausgestellt wird. Sie können auch ein selbst signiertes Zertifikat erstellen oder zur Demonstration das Zertifikat von /opt/bbp/installData/httpd/conf/
verwenden. Wenn Sie das Demo-Zertifikat verwenden möchten, kopieren Sie die Dateien /opt/bbp/installData/httpd/conf/server.crt
(SSLCertificateFile) und /opt/bbp/installData/httpd/conf/server.key
(SSLCertificateKeyFile) nach /etc/httpd/conf/
.
- Ändern Sie in der Konfigurationsdatei
/etc/httpd/conf/httpd.conf
folgende Parameter:
1 2 3 4 5 | ServerName localhost:55580 # Listen 80 Listen 0.0.0.0:55580 Listen [::0]:55580 |
- Aktivieren Sie nun die folgenden Apache-Module (falls nicht bereits aktiv) in den Konfigurationsdateien, die sich im Verzeichnis
/etc/httpd/conf.modules.d
befinden:
1 2 3 4 5 6 7 8 9 | LoadModule access_compat_module modules/mod_access_compat.so LoadModule headers_module modules/mod_headers.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule ssl_module modules/mod_ssl.so |
Alternativ können Sie auch die Modul-Datei /opt/bbp/installData/httpd/conf.modules.d/00-bbp.conf
nach /etc/httpd/conf.modules.d/
kopieren. Beachten Sie dabei, das Warnungen von Apache ausgegeben werden, falls Module bereits aktiviert wurden.
- Überprüfen Sie nun die Apache-Konfiguration auf Fehler:
1 | $ apachectl configtest
|
- Zuletzt starten Sie Apache Webserver neu
1 | $ systemctl restart httpd
|
Sobald die Installation abgeschlossen ist, wird der Apache Webserver unter https://demo.bbp.local:55550/bbp/admin/login
erreichbar sein.
Apache OOTB SSL Konfigurationsdatei bereits vorhanden
Der Apache Webserver bringt bereits eine vorgefertigte SSL Konfiguration mit. Sie können die SSL Konfigurationsdatei einfach umbenennen (mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.ootb
).
Datenbank mariaDB¶
MariaDB ist ein Open-Source-Datenbankmanagementsystem, das häufig als Teil des beliebten LAMP-Stacks installiert wird. Es verwendet eine relationale Datenbank und SQL (Structured Query Language) zur Verwaltung seiner Daten. In diesem Abschnitt erklären wir Ihnen, wie Sie die neueste Version von MariaDB auf openSUSE Leap 15.0 installieren.
Installation¶
Wir verwenden den Kommandozeilenpaketverwalter Zypper, um das MariaDB-Paket zu installieren und drücken die Taste y, um zu bestätigen, dass wir fortfahren möchten:
1 | $ sudo zypper in mariadb mariadb-tools
|
Das Paket mariadb-tools ist für die Administration notwendig. Sobald die Installation abgeschlossen ist, starten wir den Daemon mit dem folgenden Befehl:
1 | $ sudo systemctl start mysql
|
systemctl
zeigt nicht das Ergebnis aller
Dienstverwaltungsbefehle an, also verwenden wir den folgenden Befehl, um
sicherzustellen, dass wir erfolgreich waren:
1 | $ sudo systemctl status mysql
|
Wenn MariaDB erfolgreich gestartet wurde, sollte die Ausgabe
Active: active (running)
enthalten. Als
nächstes konfigurieren wir MariaDB, so dass der Datenbankserver
automatisch beim Booten gestartet wird
1 | $ sudo systemctl enable mysql |
Als nächstes werden wir uns der Sicherung unserer Installation zuwenden.
Sicherung des MariaDB-Servers¶
MariaDB enthält ein Sicherheitsskript, um einige der weniger sicheren Standardoptionen für Dinge wie Remote-Root-Logins und Beispiel-Benutzer zu ändern. Verwenden Sie diesen Befehl, um das Sicherheitsskript auszuführen:
1 | $ sudo mysql_secure_installation
|
Das Skript bietet eine detaillierte Erklärung für jeden Schritt. Die
erste Eingabeaufforderung fragt nach dem Root-Passwort, das nicht
festgelegt wurde, also drücken wir ENTER
, wie es empfohlen wird. Als nächstes werden wir
aufgefordert, das Root-Passwort festzulegen, was wir tun werden.
Dann akzeptieren wir alle Sicherheitsvorschläge, indem wir
Y
und dann ENTER
für die restlichen Eingabeaufforderungen drücken, die
anonyme Benutzer entfernen, Remote-Root-Login verbieten, die
Testdatenbank entfernen und die Berechtigungstabellen neu laden.
Schließlich, nachdem wir die Installation gesichert haben, werden wir überprüfen, ob sie funktioniert.
Testen der Datenbank-Installation¶
Im folgenden Schritt werden wir die Installation überprüfen und
Informationen darüber erhalten, indem wir mit dem Tool
mysqladmin
-Tool arbeiten. Mit dem Client
können administrative Befehle ausgeführt werden. Verwenden Sie den
folgenden Befehl, um eine Verbindung zu MariaDB als root
(-u root
) mit einem Passwort
(-p
) herzustellen. Als Ergebnis wird
Ihnen die Version zurückzugeben.
1 | $ mysqladmin -u root -p version
|
Sie sollten eine ähnliche Ausgabe wie diese erhalten:
1 2 3 4 5 6 7 8 9 10 11 12 | $ mysqladmin -u root -p version Enter password: mysqladmin Ver 9.0 Distrib 5.5.60-MariaDB, for Linux on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 5.5.60-MariaDB Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 17 min 40 sec Threads: 1 Questions: 25 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 27 Queries per second avg: 0.023 |
Dies zeigt an, dass die Installation erfolgreich war.
Im nächsten Schritt ist es erforderlich das Setup der Business Bot Plattform durchzuführen. Folgen Sie dazu Kapitel Web-Setup der Plattform .
Erstellen der Datenbank¶
Hinweis
Sie müssen nur eine leere Datenbank anlegen, da die Datenbank über das Web-Setup importiert wird.
Die Business Bot Plattform verwaltet sämtliche Daten wie beispielsweise mobile Benutzer, Chatbots und Einstellungen in einer Datenbank. Daher ist es notwendig, die Datenbank für die Plattform in mariaDB zu erstellen. Führen Sie dazu die folgenden Befehle aus:
Erstellen man eine neue Datenbank mit dem namen bbp
1 | $ mysql -u root -p -e "create database bbp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" |
Die Datenbankerstellung ist damit abgeschlossen.
Optional: Konfiguration der Datenbankeinstellung der Business Bot Plattform¶
Hinweis
Dieser Schritt ist optional, da die Datenbankeinstellungen über das Web-Setup erfolgt.
Wenn Sie die Datenressource der Business Bot Plattform ändern möchten, können Sie dies wie folgt tun:
1 | $ vi /opt/bbp/apps/tomcat/webapps/bbp/WEB-INF/classes/META-INF/persistence.xml
|
Nachdem die Konfiguration der Business Bot Plattform abgeschlossen ist, müssen Sie Tomcat neu starten:
1 | $ sudo systemctl restart tomcat
|
Im nächsten Schritt ist es erforderlich die Business Bot Plattform zu registrieren. Folgen Sie dazu Kapitel Lizenz installieren .
Fehlerbehebung¶
Apache Webserver kann nicht gestartet werden: Failed to configure certificate¶
Problem: Apache Webserver startet nicht
Prüfen Sie die Logdatei /var/log/demo.bbp.local.error.log
auf folgenden Fehler:
1 | Failed to configure certificate demo.bbp.local:443:0 (with chain), check /etc/httpd/conf/server.crt / SSL Library Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
|
Lösung:
Der SSL Key ist nicht lang genug und ist somit ein potenzielles Sicherheitsrisiko. Erstellen Sie ein neues SSL-Zertifikat mit einer Länge von mindestens 2028 Bits
(openssl req -x509 -nodes -days 999 -newkey rsa:2048 -keyout /etc/httpd/conf/server.key -out /etc/httpd/conf/server.crt
).
Tomcat startet nicht: Protocol handler start failed¶
Problem: Tomcat startet nicht und in der Log ist folgender Fehler protokolliert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 26-Nov-2020 20:44:02.383 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-55590"] 26-Nov-2020 20:44:02.390 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to start component [Connector[AJP/1.3-55511]] org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1038) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:438) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474) Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid. at org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:264) at org.apache.catalina.connector.Connector.startInternal(Connector.java:1035) ... 12 more |
Lösung:
-
Überprüfen Sie ob in der Datei
demo.bbp.local.conf
beiProxyPass
das Attributesecret="secret"
gesetzt ist. Beispiel:ProxyPass /bbp http://localhost:55590/bbp retry=0 secret="secret"
-
Überprüfen Sie ob in der Datei
server.xml
beiConnector
das Attributesecret="secret" secretRequired="true"
gesetzt ist. Beispiel:<Connector port="55511" protocol="AJP/1.3" redirectPort="55543" secret="secret" secretRequired="true"/>
Tomcat startet nicht: SELinux is preventing ..¶
Problem:
Tomcat startet nicht und in der Log /var/log/messages
ist folgender Fehler protokolliert:
1 | SELinux is preventing /usr/sbin/httpd from name_connect access on the tcp_socket port 55590
|
Lösung:
Wenn Sie HTTPD-Skripten und -Modulen erlauben wollen, sich über das Netzwerk mit Datenbanken zu verbinden.
Dann müssen Sie SELinux darüber informieren, indem Sie das boolesche httpd_can_network_connect_db
aktivieren.
Sie können die mysqld_selinux
-Manualseite für weitere Einzelheiten lesen.
Führen Sie folgende Befehle aus um das Problem zu beheben:
1 2 | setsebool -P httpd_can_network_connect_db 1 setsebool -P nis_enabled 1 |