Geschrieben von Marco Griep
Inhaltsverzeichnis
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