OTOBO Installation auf RHEL

Dieses Kapitel beschreibt die Installation und grundlegende Konfiguration des zentralen OTOBO Frameworks auf einem Red Hat Enterprise Linux System.

Bemerkung

Derzeit wurde nur RHEL 9.7 getestet und verifiziert. Die Konfiguration kann jedoch auch auf anderen Versionen funktionieren.

Dieses Kapitel führt Sie Schritt für Schritt durch die Installation von OTOBO auf Ihrem RHEL Server. Anschließend können Sie sich über die Weboberfläche am System anmelden, um es zu konfigurieren und zu administrieren.

Bemerkung

Wir empfehlen Docker und Docker Compose für die OTOBO-Installation. Durch die Verwendung der mitgelieferten Docker-Images werden alle empfohlenen Abhängigkeiten (wie Elasticsearch, Redis Cache, etc.) automatisch installiert und konfiguriert. Updates werden dadurch stark vereinfacht und die Performance verbessert. Die Anleitung zur Docker-basierten Installation finden Sie unter https://doc.otobo.org/manual/installation/11.0/en/content/installation/installation-docker.html.

Vorbereitung: Deaktivieren Sie SELinux (sofern aktiv)

Bemerkung

RHEL employs SELinux. However, OTOBO will not work correctly on the default ruleset. If you want to use OTOBO with SELinux enabled, you will have to configure the SELinux permission policy for this application manually.

Wenn Sie nicht sicher sind, ob SELinux installiert und aktiv ist, geben Sie die Befehle sestatus und getenforce ein.

Der Befehl sestatus gibt den SELinux-Status aus und informiert darüber, welche SELinux Policy angewendet wird. SELinux Status: Ist SELinux aktiv, wird als Status enabled angezeigt. Aktueller Betriebsmodus: wird hier enforcing ausgegeben, läuft SELinux im Enforcing-Modus. Policy aus der Config-Datei: wird hier targeted ausgegeben, kommt die Targeted Policy zum Einsatz.

Here’s how to switch off SELinux for RHEL/CentOS/Fedora.

  1. Configure SELINUX=permissive in the /etc/selinux/config file:

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - No SELinux policy is loaded.
    SELINUX=permissive
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
  2. Starten Sie Ihr System neu. Versichern Sie sich nach dem Neustart, dass der Befehl getenforce Disabled zurückgibt:

    root> getenforce
    Disabled
    

Schritt 1: OTOBO entpacken und installieren

Laden Sie das neueste OTOBO-Release von https://ftp.otobo.org/pub/otobo/ herunter. Entpacken Sie das Quell-Archiv (zum Beispiel mit tar) in das Verzeichnis /opt/otobo-install:

root> mkdir /opt/otobo-install && mkdir /opt/otobo                      # Create a temporary install directory
root> cd /opt/otobo-install                                             # Change into the update directory
root> wget https://ftp.otobo.org/pub/otobo/otobo-latest-11.0.tar.gz     # Download the latest OTOBO 11 release
root> tar -xzf otobo-latest-11.0.tar.gz                                 # Unzip OTOBO
root> cp -r otobo-11.x.x/* /opt/otobo                                   # Copy the new otobo directory to /opt/otobo

Schritt 2: OTOBO-Benutzer anlegen

Legen Sie einen dedizierten Benutzer für OTOBO in einer eigenen Gruppe an:

root> useradd -r -U -d /opt/otobo -c 'OTOBO user' otobo -s /bin/bash

Schritt 3: Ergänzende Programme und Perl-Module installieren

OTOBO erfordert eine funktionierende Perl-Installation mit allen Core-Modulen wie beispielsweise dem Modul version.

root> subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
root> dnf install -y wget perl perl-DBD-MySQL libpq-devel libxslt-devel libxml2-devel graphviz-devel unixODBC-devel xz-devel

Die erforderlichen Perl-Module können über CPAN installiert werden. In eingeschränkteren Umgebungen kann der Internetzugang jedoch eingeschränkt sein. Daher kann man einen vorgefertigten Satz von Perl-Paketen herunterladen (Option B):

Option A: Install packages from CPAN

To install the required packages from CPAN:

root> dnf install -y perl-App-cpanminus                                                                   # Installs the cpanm package manager
root> cpanm --cpanfile /opt/otobo/cpanfile.plackup --notest --installdeps /opt/otobo/install/local        # Installs all required packages

Option B: Deploy prebuilt packages

root> cd /opt/otobo                                                                       # Change into your OTOBO directory
root> wget https://ftp.otobo.org/pub/otobo/rhel/otobo-deps-11.0-latest-rhel-9.7.tar.gz    # Download all required packages
root> tar -xzf otobo-deps-11.0-rhel-9.7.tar.gz                                            # Unzip packages
root> echo 'export PERL5LIB="/opt/otobo/install/local/lib/perl5"' >> /opt/otobo/.profile  # Add additional library path to otobo user
root> export PERL5LIB="/opt/otobo/install/local/lib/perl5"

You should now see a install folder containing all required Perl packages. You may run the following command to verify the installation:

root> perl /opt/otobo/bin/otobo.CheckModules.pl -list

Schritt 4: Standard-Konfigurationsdatei aktivieren

Die Datei $OTOBO_HOME/Kernel/Config.pm.dist wird mit OTOBO ausgeliefert. Sie enthält Konfigurationsdaten für OTOBO. Aktivieren Sie die Konfiguration, indem Sie die Datei ohne die Dateinamenerweiterung .dist kopieren.

root> cp /opt/otobo/Kernel/Config.pm.dist /opt/otobo/Kernel/Config.pm

Step 5: Configure systemd services for OTOBO

The installation package provides systemd unit files. To make sure that these files are visible to the system they need to be copied to a valid systemd directory. In this example we will be using /etc/systemd/system.

root> cp /opt/otobo/scripts/systemd/* /etc/systemd/system/
root> systemctl daemon-reload

After the daemon-reload all services should be controllable using systemd control service like systemctl.

Schritt 6: Nginx Web Server konfigurieren

OTOBO’s webserver listens on localhost on port 5000. In order to make it accessible from outside, you need to configure a reverse proxy.

Installieren des NGINX Webservers:

root> dnf install nginx

Nginx installations commonly have a conf.d directory included. It may be found at /etc/nginx. Example configuration is provided at /opt/otobo/scripts/nginx-vhost-*.include.conf.

NGINX ohne SSL-Unterstützung konfigurieren

In most cases no further editing of the template is required. The new configuration needs to be activated, subsequently.

root> cp /opt/otobo/scripts/nginx-vhost-80.include.conf /etc/nginx/conf.d/nginx.conf
root> systemctl restart nginx

It is also required to enable port 80 on the firewall.

root> firewall-cmd --permanent --add-service=http
root> firewall-cmd --reload

NGINX mit SSL-Unterstützung kofigurieren

If you want to enable SSL support, you need to copy the SSL configuration file.

root> cp /opt/otobo/scripts/nginx-vhost-443.include.conf /etc/nginx/conf.d/nginx.conf
root> cd /etc/nginx/
root> mkdir snippets
root> cp /opt/otobo/scripts/nginx/snippets/ssl-params.conf snippets/

Bearbeiten Sie die Dateien und ergänzen Sie die benötigten Informationen wie den Pfad zum SSL-Zertifikat.

Jetzt können Sie Ihren Webserver neu starten und die neuen Konfigurationseinstellungen laden. Auf den meisten Systemen gelingt dies mit folgendem Befehl:

root> systemctl restart nginx

It is also required to enable port 80 and 443 on the firewall.

root> firewall-cmd --permanent --add-service={http,https}
root> firewall-cmd --reload

Schritt 7: Dateiberechtigungen anpassen

Führen Sie folgenden Befehl aus, um die Datei- und Verzeichnis-Berechtigungen für OTOBO zu definieren. Es wird versucht, die passenden Benutzer- und Gruppeneinstellungen für Ihr Setup zu ermitteln.

root> /opt/otobo/bin/otobo.SetPermissions.pl --otobo-user=otobo --web-group=otobo
root> chmod +x /opt/otobo/install/local/bin/*

Schritt 8: Datenbank anlegen

OTOBO requires a database to persist data. It is recommended to use the MySQL or MariaDB package, which will be delivered with your Linux system. However, an external database may be used but latency may increase.

Packages for a local database may be obtained from the system’s package manager. Find the commands needed to set up MySQL below.

root> dnf install mariadb-server                # 'dnf install mysql-server' for mysql installations
root> systemctl enable --now mysqld.service

Nach der Installation muss der Datenbankserver konfiguriert werden.

In MySQL ab Version 5.7 ist ein neues Authentifizierungsmodul aktiv, das ein Anlegen der Datenbank durch den OTOBO Web Installer verhindert. Bitte loggen Sie sich in diesem Fall in die MySQL-Konsole ein und definieren Sie ein anderes Authentifizierungsmodul und ein Passwort für den root-Benutzer:

root> mysql -u root
sql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPassword';

Sofern nötig, können Sie das Authentifizierungsmodul nach der OTOBO-Installation wieder ändern.

Bemerkung

Folgende Konfigurationseinstellungen beschreiben die Minimalanforderungen für MySQL. Bitte ergänzen Sie die MySQL-Server-Konfigurationsdatei unter /etc/my.cnf, /etc/mysql/my.cnf oder /etc/mysql/mysql.conf.d/mysqld.cnf im Abschnitt [mysqld] um diese Zeilen:

max_allowed_packet   = 64M
innodb_log_file_size = 256M

In order to apply these settings, you need to restart the MySQL service.

root> systemctl restart mysqld.service

Schritt 9: Elasticsearch-Cluster aufsetzen

Für schnelle Suchen in OTOBO empfehlen wir ein aktives Elasticsearch-Cluster. Am einfachsten setzen Sie Elasticsearch auf dem gleichen Host wie OTOBO auf und lassen es den Standardport nutzen.

Bitte nutzen Sie das Installations-Tutorial unter https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html.

Elasticsearch-Modul installieren

Außerdem erfordert OTOBO die Installation von Plugins in Elasticsearch:

root> /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
root> /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu

Elasticsearch konfigurieren

Elasticsearch bietet viele unterschiedliche Konfigurationsoptionen und -möglichkeiten.

In größeren OTOBO-Systemen sollten Sie für einen fehlerfreien Betrieb den JVM Heap Space anpassen. Diese Einstellungen finden Sie in der Datei /etc/elasticsearch/jvm.options. Achten Sie darauf, dass Mindest- und Maximalwert für die JVM Heap Size übereinstimmen. Um den Heap auf 4 GB zu setzen, nehmen Sie folgende Einstellung vor:

-Xms512m
-Xmx512m

In our tests, a value between 512 MB and 4 GB for medium-sized installations has proven to be the best.

Bemerkung

Bitte nutzen Sie das Installations-Tutorial unter https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html.

Jetzt können Sie Ihren Elasticsearch-Server neu starten, um die neuen Konfigurationseinstellungen zu laden. Auf den meisten Systemen gelingt dies mit folgendem Befehl:

root> systemctl restart elasticsearch

Schritt 10: Grundlegende Systemkonfiguration

Before starting with the initial web configuration you need to start and enable the otobo web service via systemd.

root> systemctl enable --now otobo-web.service

After that use the web installer at http://localhost/otobo/installer.pl (replace „localhost“ with your OTOBO hostname or server IP) to set up your database and basic system settings such as email accounts.

Schritt 11: Erste Anmeldung

Geschafft! Jetzt können Sie sich mit dem zuvor generierten Passwort (s. o.) über http://localhost/otobo/index.pl als Benutzer root@localhost anmelden.

Schritt 12: OTOBO Daemon starten

OTOBO daemon is responsible for handling any asynchronous and recurring tasks in OTOBO. The daemon also handles all GenericAgent jobs and must be started from the OTOBO user.

otobo> systemctl enable --now otobo-daemon.service

Schritt 13: Bash Auto-Completion einrichten (optional)

Alle regulären Befehlszeilenoptionen in OTOBO werden über die OTOBO-Konsolenschnittstelle ausgeführt. Damit wird eine Autovervollständigung für Eingaben in die Bash-Shell angeboten, die das Finden geeigneter Befehle und Optionen erheblich erleichtert.

Zum Aktivieren der Bash Auto-Completion installieren Sie das Paket bash-completion. Damit wird automatisch die Datei /opt/otobo/.bash_completion für den Benutzer otobo gesucht und geladen.

Sobald Sie Ihre Konsole neu gestartet haben, können Sie dann folgenden Befehl eingeben und durch TAB ergänzen, um alle verfügbaren Befehle anzuzeigen:

otobo> /opt/otobo/bin/otobo.Console.pl

Geben Sie einige Zeichen und lassen ein TAB folgen, werden alle auf der eingegebenen Zeichenfolge basierenden Befehle angezeigt. Geben Sie einen Befehl vollständig ein und drücken dann TAB, werden alle möglichen Optionen und Argumente angezeigt.

Bemerkung

Sollten Sie Probleme haben, können Sie folgende Zeile als otobo-Benutzer ausführen und zu Ihrem ~/.bashrc hinzufügen, um die Befehle aus der Datei heraus auszuführen.

source /opt/otobo/.bash_completion

Schritt 14: Weiterführende Informationen

We advise you to read the OTOBO Performance Tuning chapter.