Installation von DSM Management Suite Backend auf einem Ubuntu Server 18.04

Installation von DSM Management Suite Backend auf einem Ubuntu Server 18.04

Downloaden Sie eine Linux Server Version für die Installation. Empfohlen wird aktuell die LTS Version 18.04 von Ubuntu Server. Alternative Distributionen und Versionen sind auch möglich, funktionieren jedoch etwas anders als in dieser Anleitung. Legen Sie auf Ihrem Hypervisor eine neue Virtuelle Maschine an.

Werbung

Es wird empfohlen der Virtuellen Maschine mindestens 2 CPUs und 4 GB RAM zu geben. Je nachdem wie lange Sie die Daten aufbewahren möchten sollten Sie Ihre Festplattengröße wählen. Für eine Produktivumgebung mit 50 Computerobjekten auf einem Datenaufbewahrungszeitraum vom 14 Tagen inkl. Backup der MySQL Datenbank sollten schon 50 GB Speicherplatz vorhanden sein. Mehr wie ist immer besser. Passen Sie Ihren Speicherplatzbedarf je nach Ihrer Umgebung an und Ihrer Backup Methode an.

In dieser Anleitung installieren wir aus Gründen der Einfachheit MySQL (bzw. MariaDB) auf dem gleichen Server wie das DSM Management Suite Backend. In der Praxis sollten Sie für die Datenbank einen eigenen Server verwenden.

1. Installation Ubuntu Server 18.04

Installieren Sie einen Ubuntu Server nach Ihren Vorstellungen. Es wird empfohlen folgende Services bei der Grundinstallation direkt mit zu installieren, da wir in dieser Anleitung nicht explizit auf die nachträgliche Installation der Software Pakete eingehen werden:

Die Installation ist jedoch optional:

– OpenSSH

2. Notwendigen Pakete installieren

sudo apt-get update
sudo apt-get install apache2
sudo apt-get install mariadb-server
sudo apt-get install curl

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod ssl
sudo systemctl restart apache2

MySQL konfigurieren

Verbinden Sie sich auf Ihren MySQL Server

sudo mysql -u root -p

Erstellen Sie eine neue Datenbank für DSM Management Suite. In dieser Anleitung nutzen wir als Datenbank Namen db_dsmpro.

CREATE DATABASE db_dsmpro;

Als nächsten importieren wir die initiale Datenbankstruktur

mysql -u root -p db_dsmpro < /home/Downloads/db.sql

Anlegen von Benutzer:

CREATE USER 'dsmpro'@'localhost' IDENTIFIED BY 'dsmpro_user_password';

Verwenden Sie anstatt „dsmpro_user_password“ ein geeignetes und starkes Password.

Nun geben wir dem Benutzer Rechte auf die Datenbank:

GRANT ALL PRIVILEGES ON db_dsmpro.* TO 'dsmpro'@'localhost';

Verlassen Sie die MySQL CMD mit:

exit

Webserver / Relay Proxy für Backend konfigurieren

Je nachdem wie Sie Ihr Backend zur Verfügung stellen möchten, sollten Sie Ihre Apache konfiguration anpassen. In diesem Beispiel veröffentlichen wir das Backend auf unserem Server über den DNS Namen (A-Record) „api.servername.de“. HTTP Anfragen werden dann von dieser Adresse bzw. Subdomain beantwortet an unsere Backend (Localhost:5000) weitergeleitet (Relay Proxy). Das Backend läuft auf Basis von dotnet Core. Kestral Dienst dabei als Webserver, welche jeder noch Anfragen an Localhost:5000 annimmt. Damit das Relay Proxy funktioniert, müssen wir in der Apache Konfiguration erlauben, dass alle Header welche von dem Backend verwendet werden mit weitergeleitet werden (POST, GET, OPTIONS etc.).

In einem späteren Kapitel wird gezeigt wie Sie mit Certbot den Website Traffic an HTTPS weiterleiten. Die Umleitung von HTTP auf HTTP in der Konfigurationsdatei macht dann Certbot für uns.

Wir erstellen eine neue Konfigurationsdatei im Apache Konfigurationsverzeichnis.

cd /etc/apache2/sites-available
nano /etc/apache2/sites-available/dsmpro.conf

Folgenden Inhalt einfügen und die Fett gedruckten Zeilen an Ihren A-Record anpassen

<VirtualHost *:80>
  ServerName api.servername.de
  ServerAlias api.servername.de
  ProxyPreserveHost On
  ProxyPass / http://localhost:5000/
  ProxyPassReverse / http://localhost:5000/
  Header set Access-Control-Allow-Origin "*"

  Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"

  Header set Access-Control-Allow-Headers "Accept,Accept-Charset,Accept-Encoding,Accept-Language,Connection,Content-Type,Cookie,DNT,Host,Keep-Alive,Origin,Referer,User-Agent,X-CSRF-Token,X-Requested-With,Authorization"

  Header set Access-Control-Allow-Credentials true
</VirtualHost>

<Proxy http://localhost:5000>
  Order deny,allow
  Allow from all
</Proxy>

DSM Management Suite Backend installieren

Laden Sie die dsmpatchreportingapi.dll auf Ihren Server in das Verzeichnis /var/www/html/dsmapi/dsmpatchreportingapi .dll hoch. Am besten können Sie das über SSH machen.

Hinweis: In den nächsten Versionen wird die DLL dsmmanagementsuite.dll heißen.

Als nächstes erstellen wir einen Daemon (Service) welcher beim Serverstart das Backend startet

Daemon (Dienstdefinitionsdatei) erstellen

sudo nano /etc/systemd/system/dsmapi.service

Folgendes einfügen:

[Unit]
Description=DSM Management Suite API
[Service]
WorkingDirectory=/var/www/html/dsmapi
ExecStart=/usr/bin/dotnet /var/www/html/dsmapi/dsmpatchreportingapi.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dsmpatchreporting
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target

Wenn der Benutzer www-data durch Ihre Konfiguration nicht verwendet wird, muss der hier definierte Benutzer zunächst erstellt werden, und ihm muss der ordnungsgemäße Besitz für die Dateien erteilt werden.

Dienst aktivieren

sudo systemctl enable dsmapi.service
sudo systemctl start dsmapi.service

Firewall aktivieren bzw. Ports öffnen

sudo apt-get install ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Zusätzlich DSM Patch Reporting Web UI installieren und konfigurieren

Sie können das WebUI zusätzlich auf dem Server installieren um ein Frontend für die Applikation über HTTPS zur Verfügung zu haben. Bei der Webapplikation handelt es sich um eine Angular (JavaScript) Anwendung welche sich zur API (Backend: api.servername.de) verbindet und die Daten abfrägt. Es empfiehlt sich NodeJS und Angular-CLI zu installieren, damit Sie die Anwendung selbst erstellen (build) können. Das WebUI kann auch auf einem anderen Server installiert werden. In dieser Beschreibung werden wir die Anwendung auf dem gleichen Server installieren. Dafür verwenden wir wieder einen Virtuellen Host Eintrag im Apache für www.servername.de

Weitere Voraussetzungen für Web UI installieren

sudo apt-get install git
sudo apt-get install npm
sudo npm install -g angular-cli

Verzeichnis für Web UI anlegen

cd /var/www/html/dsmwebui

WebUI Webserver Anpassungen

<VirtualHost *:80>
DocumentRoot "/var/www/html/dsmwebui/dist/webui"
ServerName www.servername.de
 <Directory "/var/www/html/dsmwebui/dist/webui">
    AllowOverride None
 </Directory>
</VirtualHost>

Den aktuellen WebUI Quellcode mit Git herunterladen

Um immer an den aktuelle Quellcode zu kommen, macht es Sinn einfach das Repository mit Git zu klonen. Wenn Sie Git nicht verwenden möchten, laden Sie das Git Repository als Zip Datei manuell herunter und kopieren die Daten in das Verzeichnis /var/www/dsmwebui

Wechseln Sie mit cd in das Verzeichnis für die Webanwendung:

cd /var/www/html/dsmwebui

Nun klonen wir das Git Repository

git clone https://github.com/…

Nun laden wir alle Abhängigkeiten (Node_Modules) mit NPM herunter:

npm install

Konfigurationsdatei anpassen:

Wir öffnen die Environment.ts Datei und passen die Verbindungseinstellungen zur API (Backend) an.

nano src/envirionments/environment.ts

Bei BaseURL ersetzten Sie nun die Adresse durch die Adresse von Ihrem DSM Management Suite Backend. Localhost ist hier nicht möglich da JavaScript Clientseitig ausgeführt wird. Somit würde jeder Computer welcher auf das Frontend Zugriff versuchen das Backend auf dem lokalen System zu finden.

export const environment = {
production: false,
baseUrl: 'http://localhost:5000/api'
};

Ändern in

export const environment = {
production: false,
baseUrl: 'http://api.servername.de/api'
};

Jetzt können wir die Anwendung erstellen

npm run build

SSL Konfigurieren

Optional: Certbot für SSL Verschlüsslung installieren

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

sudo apt install python-certbot-apache

sudo certbot --apache -d api.servername.de -d www.servername.de

Leave a Comment

Your email address will not be published.

Datenschutzbestimmungen akzeptieren