Zum Inhalt

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

  1. 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/.

  1. Ä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
  1. 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.

  1. Überprüfen Sie nun die Apache-Konfiguration auf Fehler:
1
$ apachectl configtest
  1. 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:

  1. Überprüfen Sie ob in der Datei demo.bbp.local.conf bei ProxyPass das Attribute secret="secret" gesetzt ist. Beispiel: ProxyPass /bbp http://localhost:55590/bbp retry=0 secret="secret"

  2. Überprüfen Sie ob in der Datei server.xml bei Connector das Attribute secret="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