Veröffentlicht:

Installation der DSM Management Suite-Backends auf einem Ubuntu-Server 18.04

.

Installation der DSM Management Suite-Backends auf einem Ubuntu-Server 18.04

Geschrieben von



Laden Sie eine Linux-Serverversion zur Installation herunter. Die LTS-Version 18.04 von Ubuntu Server wird derzeit empfohlen. Alternative Distributionen und Versionen sind ebenfalls möglich, funktionieren jedoch etwas anders als in diesem Handbuch. Erstellen Sie eine neue virtuelle Maschine auf Ihrem Hypervisor.

Hinweis: Diese Anleitung ist schon alt. Ich empfehle dringend das Dockerimage zu verwenden.

Es wird empfohlen, der virtuellen Maschine mindestens 2 CPUs und 4 GB RAM zuzuweisen. Je nachdem, wie lange Sie die Daten aufbewahren möchten, sollten Sie Ihre Festplattengröße auswählen. Für eine Produktionsumgebung mit 50 Computerobjekten mit einer Datenaufbewahrungsdauer von 14 Tagen einschließlich Sicherung der MySQL-Datenbank sollten bereits 50 GB Speicherplatz verfügbar sein. Mehr wie ist immer besser. Passen Sie Ihren Speicherplatzbedarf abhängig von Ihrer Umgebung und Ihrer Sicherungsmethode an.

In diesem Handbuch installieren wir aus Gründen der Einfachheit MySQL (oder MariaDB) auf demselben Server wie das DSM Management Suite-Backend. In der Praxis sollten Sie Ihren eigenen Server für die Datenbank verwenden.

1. Installation von Ubuntu Server 18.04

Installieren Sie einen Ubuntu-Server nach Ihren Vorstellungen. Es wird empfohlen, die folgenden Dienste direkt während der Basisinstallation zu installieren, da wir uns in diesen Anweisungen nicht explizit mit der nachfolgenden Installation der Softwarepakete befassen: Die Installation ist optional:

  • OpenSSH

2. Installieren Sie die erforderlichen Pakete

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

Konfigurieren Sie MySQL

Stellen Sie eine Verbindung zu Ihrem MySQL-Server her

sudo mysql -u root -p

Erstellen Sie eine neue Datenbank für die DSM Management Suite.

In diesem Handbuch verwenden wir den Datenbanknamen db_dsmpro.

CREATE DATABASE db_dsmpro;

Als nächstes importieren wir die anfängliche Datenbankstruktur

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

Benutzer erstellen:

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

Verwenden Sie anstelle von "dsmpro_user_password" ein geeignetes und sicheres Passwort.

Jetzt geben wir den Benutzern Rechte an der Datenbank:

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

Verlassen Sie das MySQL CMD mit:

exit

Konfigurieren Sie den Webserver / Relay-Proxy für das Backend

Je nachdem, wie Sie Ihr Backend verfügbar machen 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 oder Subdomain beantwortet und an unser Backend (localhost:5000) (Relay-Proxy) weitergeleitet. Das Backend läuft auf Basis des Dotnet-Kerns. Kestral-Dienst als Webserver, von dem alle noch Anfragen an Localhost annehmen: 5000. Damit der Relay-Proxy funktioniert, müssen wir in der Apache-Konfiguration zulassen, dass alle vom Backend verwendeten Header weitergeleitet werden (POST, GET, OPTIONS usw.). .

Ein späteres Kapitel zeigt, wie Sie mit Certbot den Website-Verkehr an HTTPS weiterleiten. Die Umleitung von HTTP zu HTTP in der Konfigurationsdatei führt dann Certbot für uns aus.

Wir erstellen eine neue Konfigurationsdatei im Apache-Konfigurationsverzeichnis.

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

Fügen Sie den folgenden Inhalt ein und passen Sie die fetten Linien an Ihren A-Record an

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

Order deny,allow Allow from all

Installieren Sie das DSM Management Suite-Backend

Laden Sie die Datei dsmpatchreportingapi.dll auf Ihren Server im Verzeichnis /var/www/html/dsmapi/dsmpatchreportingapi.dll hoch. Der beste Weg, dies zu tun, ist über SSH.

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

Als nächstes erstellen wir einen Daemon (Service), der das Backend startet, wenn der Server gestartet wird

Erstellen Sie einen Daemon (Service-Definitionsdatei)

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

Fügen Sie Folgendes ein:

[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 in Ihrer Konfiguration der Benutzer www-data nicht verwendet wird, muss zuerst der hier definierte Benutzer erstellt und der ordnungsgemäße Besitz der Dateien erteilt werden.

Aktivieren Sie den Dienst

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

Aktivieren Sie die Firewall oder öffnen Sie Ports

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

Installieren und konfigurieren Sie außerdem die Web-Benutzeroberfläche für DSM Patch Reporting

Sie können die WebUI auch auf dem Server installieren, um über HTTPS ein Front-End für die Anwendung zu erhalten. Die Webanwendung ist eine Angular-Anwendung (JavaScript), die eine Verbindung zur API (Backend: api.servername.de) herstellt und die Daten abfragt. Es wird empfohlen, NodeJS und Angular-CLI zu installieren, damit Sie die Anwendung selbst erstellen können. Die WebUI kann auch auf einem anderen Server installiert werden. In dieser Beschreibung installieren wir die Anwendung auf demselben Server. Wieder verwenden wir einen virtuellen Hosteintrag in Apache für www.servername.de

Installieren Sie zusätzliche Anforderungen für die Web-Benutzeroberfläche

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

Erstellen Sie ein Verzeichnis für die Web-Benutzeroberfläche

cd /var/www/html/dsmwebui

Anpassungen des WebUI-Webservers

DocumentRoot "/var/www/html/dsmwebui/dist/webui"
ServerName www.servername.de

AllowOverride None

Laden Sie den aktuellen WebUI-Quellcode mit Git herunter

Um immer den aktuellen Quellcode zu erhalten, ist es sinnvoll, das Repository mit Git zu klonen. Wenn Sie Git nicht verwenden möchten, laden Sie das Git-Repository manuell als Zip-Datei herunter und kopieren Sie die Daten in das Verzeichnis /var/www/dsmwebui

Verwenden Sie cd, um in das Verzeichnis für die Webanwendung zu wechseln:

cd /var/www/html/dsmwebui

Jetzt klonen wir das Git-Repository

git clone https://github.com/…```

Jetzt klonen wir das Git-Repository und laden Abhängigkeiten (Node_Modules) mit NPM herunter:

npm install

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

nano src/envirionments/environment.ts

Mit BaseURL ersetzen Sie jetzt die Adresse durch die Adresse Ihres DSM Management Suite-Backends. Localhost ist hier nicht möglich, da JavaScript auf der Clientseite ausgeführt wird. Jeder Computer, der versucht, auf das Frontend zuzugreifen, findet das Backend auf dem lokalen System.

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

Konfigurieren Sie SSL

Optional: Installieren Sie Certbot für die SSL-Verschlüsselung

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

Kommentare