Installation unter Windows 10 (WSL2)
Voraussetzungen
WSL2 (Windows Subsystem Linux) und eine Ubuntu Distribution (20.04 LTS) aus dem Microsoft Store muss installiert sein.
Docker Desktop muss installiert sein. Docker Desktop bietet Funktionen zum Bereitstellen und Ausführen von Anwendungen in Containern, die auf Images basieren.
Bei Windows und Docker Desktop wird ein Linux (WSL2) installiert, welches dann als Host System für die smartWARE Evaluation Docker-Installation dient.
Der zur Installation benutze Linux User muss der Gruppe docker angehören. Dies kann mit dem Kommando id -Gn “userName” überprüft werden. Ersetzen Sie hierbei “userName” durch den entsprechenden User Namen.
Der Linux User muss ebenfalls zur sudo Gruppe gehören, da root Rechte notwendig sind. Der Rechner benötigt Internet-Zugang für die Installation.
Die TCP Ports 80 und 443 des Rechners dürfen nicht belegt sein (Falls sie belegt sind müssen die Ports in der smartWARE Evaluation vor dem Start geändert werden).
Windows Terminal (aus dem App Store) muss installiert sein.
WSL(2) Installation
Sie müssen Windows 10, Version 2004 und höher (Build 19041 und höher), oder Windows 11 installiert haben.
Sie können jetzt alles installieren, was Sie zum Ausführen des Windows-Subsystems für Linux (WSL) benötigen, indem Sie diesen Befehl in einer Administrator-PowerShell- oder Windows-Eingabeaufforderung eingeben und dann Ihren Computer neu starten.
❯ wsl - -install
Bitte Überprüfen sie, dass die installierte Ubuntu Distribution vom WSL Typ 2 ist. Öffnen Sie dazu eine PowerShell und geben sie Befehl "wsl -l -v" ein. Sie erhalten dann eine Auflistung.
Falls die Ubuntu Version die Version 1 hat, muss es in die Version überführt werden mit folgendem Befehl "wsl --set-version Ubuntu-20.04 2".
CODE
|
Falls der Benutzer keine Administrator Rechte hat und die Installation von Docker Desktop mit Hilfe eines speziellen Admin Users durchgeführt wurde, muss der Benutzer in der Computerverwaltung im Bereich - lokale Benutzer & Gruppen (Windows) im Gruppenabschnitt docker-users eingetragen werden.
In diesem Beispiel konnte die Docker-Installation nur durch den Administrator Install_FB durchgeführt werden. Um den Docker mit dem ganz normalen User auszuführen, war es notwendig, den User Niklas Hack nachträglich hinzuzufügen.
Hierzu als Beispiel den User wie folgt hinzufügen: YOUR_DOMAIN\user_name
Zugriff verweigert!
Es kann sein, dass beim Hinzufügen des Nutzers über die Benutzeroberfläche aufgrund fehlender Rechte lediglich ein "Zugriff verweigert!" zurückgegeben wird.
In diesem Fall kann der Nutzer über eine Konsole, beispielsweise die Windows PowerShell, zu den docker-users hinzugefügt werden. Diese Konsole muss als Administrator ausgeführt werden.
net localgroup docker-users "DOMAIN\your-user-id" /ADD
Somit lautet der Befehl aus obigem Beispiel folgend:
net localgroup docker-users "JUMO\Niklas.Hack" /ADD
Die Domain "JUMO" ist hier nur ein Beispiel, Sie müssen natürlich den Domain Namen Ihres Netzwerks benutzen.
Anschließend gegebenenfalls einen Windows-Neustart durchführen. Danach den Docker-Container öffnen → Settings → Resources → WSL INTEGRATION → Ubuntu-20.04 → Riegel umschalten/ aktivieren.
WICHTIG !! "Use Docker Compose V2" darf NICHT aktiviert werden.
Vorüberlegungen
Docker Desktop Limitierungen
Docker Desktop bietet auf einem Windows 10 (und 11) System die Möglichkeit, mit Hilfe von WSL2 (Windows Linux Subsystem) Linux basierte Container zu nutzen. Dazu wird mit Hilfe von WSL2 ein virtuelles Linux System auf dem Windows Rechner gestartet.
Leider existieren durch diese Technik, gegenüber einem nativen Linux System, einige Einschränkungen, die man unbedingt beachten sollte.
Nach einem Windows 10 (11) Neustart (reboot) wird die Docker Desktop Umgebung nicht automatisch gestartet und damit auch keine vorher aktiven Container (smartWARE Services). Docker Desktop wird erst durch das Einloggen des Benutzers, auf dessen Account die Docker Desktop gestartet wurde, aktiv. Dazu muss in den Einstellungen von Docker Desktop "Start Docker Desktop when you log in" aktiviert sein.
Docker Desktop bietet eine Docker Compose Einstellung die NICHT aktiviert sein darf, da sonst die smartWARE Services nicht korrekt gestartet werden. Besonders nach einem Docker Desktop Software Update ist darauf zu achten, dass diese Einstellung nicht aktiviert ist.
Die virtuellen Maschinen (z.B. Ubuntu WSL2) werden in .vhdx Dateien gespeichert. Diese .vhdx Dateien haben eine Standardgröße von maximal 256GB. Diese Standardgröße kann und muss auch bei Bedarf angepasst werden. Außerdem speichert Windows diese Datei auf dem Laufwerk C. Dieses Laufwerk muss also groß genug sein, da es auch noch Windows selbst als Betriebssystem enthält. Die .vhdx Datei kann auch auf eine andere Partition durch entsprechende Konfigurationsschritte "verschoben" werden.
Wichtig: Vor einem produktiven Einsatz sollte man sich über die anfallenden Datenmengen im klaren sein, und vorher die maximale Größe der .vhdx Datei erhöhen, bzw. die Datei auf eine größere Partition verschieben.
Anfallende Datenmenge
Welche Datenmengen fallen beim Betrieb der smartWARE Evaluation Software an? Die anfallende Datenmenge wird durch 3 Hauptfaktoren bestimmt:
Aufzeichnungsrate (wie oft wird ein Messwertwert ermittelt)
Anzahl der Kanäle
Aufzeichnungszeitraum
Datenmenge [MByte] = Anzahl Kanäle * Anzahl der Tage * 0,725MB * Aufzeichnungsrate (in Anzahl pro Sekunde)
Beispieltabelle für 240 Kanäle/sec:
Da nicht nur die smartWARE Daten in der VHDx Datei gespeichert werden, ist es für den produktiven Dauerbetrieb empfehlenswert, die VHDx für das WSL2 Ubuntu, in der die Daten permanent gespeichert werden, zu vergrößern und auf eine separate SDD zu verlagern.
Performance
Da je nach Datenmenge die Anwendung mit sehr vielen Daten und Dateien arbeitet, ist es sinnvoll, nur Rechner mit SSD und schneller Netzwerkwerk Anbindung zu verwenden. Außerdem sind diese Systemvoraussetzungen zu erfüllen.
Backup Datastore
Im Datastore werden alle von Varitron-Systemen gesendete Aufzeichnungsdaten gespeichert. Eine regelmäßige Datensicherung im Datastore soll diese Daten vor Datenverlust (z.B. bei einem Plattencrash auf
dem Datastore-System) schützen. Bei aktivierter Datensicherung werden die Daten beim Zeitpunkt der Datenaufnahme in das Datastore-System zusätzlich in einem Backup-Verzeichnis abgelegt. Es besteht die Möglichkeit zwei verschiedene Datensicherungskonzepte zu verwenden:
Backup mit Zwischenverzeichnis
Backup mit Netzlaufwerk
Backup mit Zwischenverzeichnis
Das Backup-Verzeichnis wird als Zwischenverzeichnis verwendet, das auf die gleiche Linux Partition wie das Datastore-System gemappt ist. Die Dateien werden durch das Datastore-System im Backup-Verzeichnis zwischengespeichert.
Dabei verschiebt die Backupsoftware des Betreibers die Dateien aus dem Backup-Verzeichnis in ein Backup-Zielverzeichnis. Nach diesem Vorgang ist das Zwischenverzeichnis leer. Das Backup-Zielverzeichnis sollte sich auf einem anderen Datenträger als das Datastore-Systembefinden. Es kann sich hier um ein langsames Medium, Netzlaufwerk, NAS, Online Speicher, externe HD handeln. Den Zeitpunkt und die Häufigkeit des Sicherns aus dem Backup-Zwischenverzeichnis kann der Betreiber selbst bestimmen. Die Daten in dem Zwischenverzeichnis sind datentechnisch von der Applikation entkoppelt. Somit ist das Verschieben von Dateien aus diesem Verzeichnis jederzeit möglich. Kurze Abstände reduzieren die Gefahr eines Datenverlustes. Wir empfehlen, diese Variante zu verwenden.
Backup mit Netzlaufwerk
Das Backup-Verzeichnis wird auf ein Laufwerk, das sich auf einem anderen Datenträger als das Datastore-System (Netzlaufwerk) befindet, gemappt. Der Betreiber hat für die Sicherheit der Daten auf das Backup-Verzeichnis zu sorgen. Da die Zugriffe auf diese Netzlaufwerke sehr langsam sind, raten wir von dieser Lösung ab.
Backup JUMO smartWARE Evaluation
Alle Konfigurationen in der smartWARE Evaluation können mit einer Datensicherung gesichert werden. Diese enthält u.a. die Anlagen-/Geräteübersicht, definierte Auswertezeitbereiche, Dashboards, Einstellungen der
Auswertung, Chargenfilter. Eine regelmäßige Datensicherung soll diese Daten vor Datenverlust (z.B. bei einem Plattencrash auf dem Datastore-System) vermeiden. Bei aktivierter Datensicherung werden die Daten z.B. täglich zu einem definierten Zeitpunkt in einem Backup-Verzeichnis abgelegt. Mit dem Backup-Verzeichnis kann wie mit der Datensicherung des Datastores verfahren werden.
Cold oder Warm Data sind in dieser Datensicherung NICHT enthalten.
Archive
Im Datastore werden alle von Varitron-Systemen gesendete Aufzeichnungsdaten gespeichert. Um den Speicherplatz auf dem Datastore-System zu sparen können Daten, die nicht mehr für aktuelle
Auswertungen benötigt werden, archiviert werden. Bei der Archivierung werden die Daten in ein definiertes Verzeichnis kopiert und im Datastore gelöscht. Das Archivierungsverzeichnis sollte sich auf einem anderen Datenträger befinden als das Datastore-System. Werden die archivierten Daten für eine Auswertung benötigt, können diese im Datastore als Cold Data wieder zur Verfügung gestellt werden. Hier müssen sich die Daten im definierten Archivierungsverzeichnis befinden.
Erstinstallation
Die Software muss im Linux Dateien System von Windows installiert (WSL2) werden! Bitte beachten Sie, dass nach dem Starten des Terminal-Programms automatisch eine "Windows PowerShell" geöffnet wird. Zur Installation benötigen wir jedoch einen Linux Terminal. Aus diesem Grund öffnen Sie jetzt zusätzlich ein Linux Terminal (Ubuntu-20.04):
Achtung! Wenn sich das Linux Terminal öffnet, wird das Homeverzeichnis von Windows angezeigt und nicht das Homeverzeichnis der Linux Distribution.
Wechseln Sie also mit folgendem Befehl in das Linux Homeverzeichnis des Users:
cd ~
Das Installationsskript kann nun in das Linux Homeverzeichnis kopiert werden. Dazu geben Sie in der Linux Konsole folgenden Befehl ein:
Wichtig: den Punkt am Ende der Befehlszeile nicht vergessen)
explorer.exe .
Dies öffnet den Windows Datei Explorer im aktuellen Verzeichnis, welches in diesem Fall das Linux Home Verzeichnis des Benutzers ist. Das Linux Verzeichnis ist in Windows wie ein Netzlaufwerk eingebunden. Hier ein Beispiel:
\wsl$\Ubuntu-20.04\home\user
Kopieren Sie jetzt mit Hilfe des Windows Datei Explorers das Installationsskript smartWARE_452.2.0.0.12.run in das Linux Home Verzeichnis \wsl$\Ubuntu-20.04\home\user
Wechseln Sie jetzt wieder auf die Linux Konsole des Windows Terminal Programms und starten Sie die Installation mit folgendem Aufruf:
"./" vor dem Dateinamen sagt Linux, die Datei im aktuellen Verzeichnis zu suchen.
chmod +x ./smartWARE_452.2.0.0.12.run
Die Datei starten.
. /smartWARE_452 .3.0.0.7.run
Jetzt startet das Installationsskript und Sie werden folgende Ausgaben im Terminal sehen.
Da für die Installation root (sudo) Rechte notwendig sind, werden Sie nach dem Passwort gefragt. Geben Sie das Passwort ein, welches Sie während der WSL Ubuntu Installation vergeben haben, damit die Installation abgeschlossen werden kann. Um mit dem Internet Browser per HTTPS auf die Anwendung zugreifen zu können, erzeugt das Installationsskript ein sogenanntes selbst signiertes Zertifikat. Dieses Zertifikat kann später durch ein offizielles Zertifikat (falls vorhanden) ersetzt werden (siehe Basiskonfiguration).
Folgende Verzeichnisse wurden durch das Skript jetzt neu erstellt:
Das Verzeichnis ~/smartWAREData/ enthält alle persistenten Daten der Anwendung. Hier werden also alle Daten gespeichert, die auch nach einem Software Update weiter erhalten bleiben müssen, wie zum Beispiel die von den Jupiter Geräten übertragenen Messwerte, Benutzereinstellungen, wie Dashboards oder Geräteplatzinformationen. Aus diesem Grund ist dieses Verzeichnis auch besonders geschützt und man benötigt sudo Rechte für den Zugriff. Das Verzeichnis ~/smartWARE_452.2.0.0.12/ enthält alle Skripte, die zum Betrieb der Anwendung nötig sind. Z.B. Start- und Stop-Skript zum Starten bzw. Stoppen der Docker Services. In diesem Verzeichnis können auch individuelle Einstellungen in einer .env Datei konfiguriert und gespeichert werden. Mehr dazu unter dem Kapitel Basiskonfiguration.
Basiskonfiguration
Nach dem Ausführen des Installationsskripts können die Services gestartet werden. Die Services werden dann mit folgenden Standardeinstellungen gestartet.
Jede dieser Standardeinstellungen kann überschrieben und angepasst werden. Dazu muss im Installationsverzeichnis der Software (~/smartWARE_452.3.0.0.7) eine Datei mit dem Namen .env angelegt werden. Wechseln Sie in das Verzeichnis der Installation in der Linux Konsole:
cd ~/smartWARE_452.3.0.0.7
Starten Sie den notepad Editor mit folgendem Befehl:
notepad.exe .env
Da die Datei .env bisher noch nicht existiert hat, fragt Notepad, ob es diese Datei neu erstellen soll.
Beantworten Sie diese Frage mit Ja.
Tragen Sie nun die Parameter, die Sie überschreiben möchten, in die Datei .env ein und speichern die Datei. Hier ein Beispiel für den Inhalt, falls Sie die Proxy Ports ändern müssen, da diese ggf. schon durch eine andere Anwendung genutzt werden.
Zeitzone einstellen
Die Standardeinstellung der Zeitzone ist: DC_TIMEZONE=Europe/Berlin
Wenn die Software in einer anderen Zeitzone betrieben wird, muss diese Einstellung überschrieben werden.
Hier finden Sie eine Liste möglicher Zeitzonen: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Ports einstellen
Die Standardeinstellung der Proxy Ports ist:
Das bedeutet, die Software GUI ist über folgende URLs per Browser zu erreichen:
http://ip
https://ip
Den Port braucht man in diesem Fall nicht mit angeben, da die Browser den Port 80 bzw. bei HTTPS den Port 443 automatisch ergänzen, ohne dass es angezeigt wird. Falls die Standard-Ports auf dem zu installierenden Rechner schon belegt sind, besteht die Möglichkeit, die smartWARE Evaluation auf beliebige anderen freien Ports laufen zu lassen. Dazu muss man in der .env Datei die Ports überschreiben. Hier ein Beispiel:
Dadurch muss dann aber im Browser, beim Zugriff auf die GUI der Port mit angegeben werden. Das wäre in diesem Fall:
http://ip:8080
https://ip:8443
Dieser geänderte Port muss dann auch im Datastore Gateway der Jupiter Geräte korrekt eingestellt werden! In diesem Fall wäre der Port für das HTTP Protocol anzugeben. (Hinweis: Das HTTPS Protokoll im Jupiter Gerät wird erst mit Firmware Version 7.x unterstützt! Eine Installation der smartWARE Evaluation Software im Internet auf einem Cloudrechner sollte also erst mit der HTTPS Unterstützung der Firmware 7.x erwogen werden.)
ip:8080/store (http://ewkssmartware.jumo.net/store)
Selbstsigniertes Zertifikat ersetzen
Während der Installation wird ein selbst signiertes Zertifikat erzeugt und in das Verzeichnis ~/smartWAREData/reverse_proxy/certs kopiert. Wenn Sie die Software GUI im Browser über das HTTPS Protocol öffnen, werden Sie vom Browser eine Warnung bekommen, da das Zertifikat selbst signiert ist. Hier ein Beispiel des Chrome Browsers:
Diese Warnung können Sie aber ignorieren, da das selbst signierte Zertifikat dem Browser nicht bekannt ist. Klicken Sie dazu auf den Link "weiter zu... (unsicher)". Die Warnung der Browser kann man aber auch dadurch verhindern, indem man ein offiziell signiertes Zertifikat benutzt bzw. diese der Software zur Verfügung stellt. Im Verzeichnis ~/smartWAREData/reverse_proxy/certs liegen 2 Dateien
smartware.crt
smartware.key
Der Austausch dieser Dateien kann nur als root User erfolgen (sudo). Diese Zertifikat und Key Dateien können durch firmeneigene offiziell signierte Dateien ersetzt werden. Dazu die smartWARE Services stoppen (siehe 5.2). Die beiden vorhandenen Dateien umbenennen (z.B. in smartware.ctr_original , smartware.key_original). Dann die offiziell signierten Dateien kopieren und gegebenenfalls umbenennen. Wichtig, die Dateien müssen die Namen smartware.crt und smartware.key haben und müssen ein PEM/X509 Format sein.
Bitte nach dem Austausch der Dateien und dem Starten der smartWARE Services (siehe 5.1) die Log Datei kontrollieren, um zu überprüfen, dass die ersetzten Dateien keine Probleme erzeugen:
$ cat ~/smartWAREData/reverse_proxy/error.log | more
Backup Datastore
Standardmäßig ist die Datensicherung nicht aktiviert, da sie zuerst konfiguriert werden muss. Hierzu ist die Konfigurationsdatei .env anzupassen:
Parameter | mögliche Werte | Bemerkung |
---|---|---|
DC_STORE_BACKUP_FOLDER |
| Backup-Verzeichnis, in die die zu sichernden Dateien abgelegt werden |
DC_STORE_RESTORE_FOLDER |
| Restore-Verzeichnis, auf dem die Dateien zur Wiederherstellung gelesen werden |
DC_BACKUP_USER_ID |
| Benutzer-Id im Linux-System, die für die Dateien im Backup-Verzeichnis verwendet wird |
DC_BACKUP_GROUP_ID |
| Gruppen-Id im Linux-System, die für die Dateien im Backup-Verzeichnis verwendet wird |
Nach Anpassung der .env-Datei ist das System neu zu starten, damit die Einträge verwendet werden.
Nach der Konfiguration ist die Datensicherung einmalig über die smartWARE Evaluation zu aktivieren.
Backup JUMO smartWARE Evaluation
Standardmäßig ist die Datensicherung nicht aktiviert, da sie zuerst konfiguriert werden muss. Hierzu ist die Konfigurationsdatei .env anzupassen:
Parameter | mögliche Werte | Bemerkung |
---|---|---|
DC_VIEW_BACKUP_FOLDER |
| backup-Verzeichnis, in die die zu sichernden Dateien abgelegt werden |
DC_BACKUP_USER_ID |
| Benutzer-Id im Linux-System, die für die Dateien im backup-Verzeichnis verwendet wird |
DC_BACKUP_GROUP_ID |
| Gruppen-Id im Linux-System, die für die Dateien im backup-Verzeichnis verwendet wird |
DC_VIEW_BACKUP_ACTIVE | true false | mit true wird die Datensicherung aktiviert |
DC_VIEW_BACKUP_EVERY_DAY_AT |
| cron-Eintrag zur Definition, wann die Datensicherung gestartet werden soll, z.B. |
Beispiel einer .env-Datei:
DC_VIEW_BACKUP_FOLDER="~/smartWAREBackup/dataview"
// verwende den ersten definierten Benutzer im Linux-System
DC_BACKUP_USER_ID="1000"
DC_BACKUP_GROUP_ID="1000"
DC_VIEW_BACKUP_ACTIVE="true"
// starte Datensicherung jeden Tag um 04:00 UTC
DC_VIEW_BACKUP_EVERY_DAY_AT="0 04 * * *"
Nach Anpassung der .env-Datei ist das System neu zu starten, damit die Einträge verwendet werden.
Archivierung
Standardmäßig ist die Archivierung nicht aktiviert, da sie zuerst konfiguriert werden muss. Hierzu ist die Konfigurationsdatei .env anzupassen:
Parameter | mögliche Werte | Bemerkung |
---|---|---|
DC_STORE_ARCHIVE_FOLDER |
| Archivierungsverzeichnis |
DC_STORE_ARCHIVE_EVERY_DAY_AT |
| cron-Eintrag zur Definition, wann die |
DC_STORE_ARCHIVE_TYPE | YEARS, MONTHS, WEEKS, DAYS | Definiert, welche Daten bei einem Archivierungslauf archiviert werden sollen: |
DC_STORE_ARCHIVE_QUANTITY | ganze Zahl >0 | s.o. |
DC_STORE_ARCHIVE_UNLOCK_HOURS | ganze Zahl >0 | definiert Zeitraum in Anzahl Stunden, wann die wiederhergestellten cold data wieder automatisch gelöscht werden. |
Beispieldatei:
DC_STORE_ARCHIVE_FOLDER="~/smartWAREArchive/datastore"
// starte Archivierung jeden Tag um 04:00 UTC
DC_STORE_ARCHIVE_EVERY_DAY_AT="0 04 * * *"
// alle Daten älter als 6 Wochen archivieren
DC_STORE_ARCHIVE_TYPE=WEEKS
DC_STORE_ARCHIVE_QUANTITY=6
// nach 48 Stunden werden wiederhergestellte cold data automatisch gelöscht
DC_STORE_ARCHIVE_UNLOCK_HOURS=48
Nach Anpassung der .env-Datei ist das System neu zu starten, damit die Einträge verwendet werden.
Änderungen der .env Datei aktivieren
Änderungen an der .env Datei werden erst aktiv, wenn die Services gestoppt und dann erneut gestartet werden. Starten Sie dazu erst das Skript ./stop_smartware.sh und danach das Skript ./start_smartware.sh. Danach bitte mit Hilfe des Skript ./status_smartware.sh überprüfen, ob alle Services ordnungsgemäß gestartet wurden. Falls ein Service nicht gestartet wurde, kann ein Blick in die Log- bzw. Error-Dateien des jeweiligen Services helfen.
Service Name | Pfad für Log/Error Dateien |
---|---|
datastore | ~/smartWAREData/datastore/logs |
dataview | ~/smartWAREData/dataview/logs |
reverse-proxy | ~/smartWAREData/reverse_proxy |
Die Log- und Error-Dateien können auf Windows mit dem Datei Explorer ausgewählt werden und dann z.B. mit dem Notepad geöffnet werden.
Dazu geben Sie auf der Linux Konsole folgende Befehle ein:
$ cd ~/smartWAREData
$ explorer.exe .
Updateinstallation
In der folgenden Beschreiben sei als Beispiel, die Release Version 452.2.0.0.12 installiert/aktiv und es soll ein Update auf die Version 452.3.0.0.7 durchgeführt werden.
Folgende Schritte sind notwendig für eine Updateinstallation:
Stoppen der alten installierten Version
Kopieren des neuen Installationsskripts
Das neue Installationsskript ausführbar machen
Starten des neuen Installationsskript
Kopieren einer falls vorhanden .env Datei, der alten Installation in das Verzeichnis der neuen Installation.
Starten der neuen Version.
Löschen der alten Version.
Stoppen der alten installierten Version
Wechseln in das Verzeichnis der alten Version
cd ~ /smartWARE_452 .2.0.0.12/
Stoppen der alten Version, durch Aufruf des ./stop_smartware.sh Scripts
. /stop_smartware .sh
Kopieren des neuen Installationsskript
Wechseln Sie zurück in das Home Verzeichnis des Users
cd ~
Kopieren des neuen Installationsskript smartWARE_452.3.0.0.7.run in das Home Verzeichnis des Users.
Starten des neuen Installationsskript
Bevor das Installationsskript gestartet werden kann muss die Datei ausführbar gemacht machen.
chmod +x . /smartWARE_452 .3.0.0.7.run
Starten des neuen Installationsskripts
. /smartWARE_452 .3.0.0.7.run
Jetzt startet das Installationsskript und Sie werden folgende Ausgaben im Terminal sehen.
Folgendes Verzeichnis wurde durch das Skript jetzt neu erstellt:
~ /smartWARE_452 .3.0.0.7/
Das Verzeichnis ~/smartWARE_452.3.0.0.7/ enthält alle Skripte, die zum Betrieb der Anwendung nötig sind. Z.B.: Start- und Stop-Skript zum Starten bzw. Stoppen der Docker Services. In diesem Verzeichnis können auch individuelle Einstellungen in einer .env Datei konfiguriert und gespeichert werden. Mehr dazu unter dem Kapitel Basiskonfiguration.
Kopieren der alten .env Datei, falls vorhanden
Falls für die alte Installation eine .env Datei erstellt wurde, muss diese Datei nun in das neu erstellete Verzeichnis kopiert werden.
Dies ist wichtig, damit individuelle Anpassungen für die neue Installation übernommen werden.
cp ~ /smarWARE_452 .2.0.0.12/. env ~ /smartWARE_452 .3.0.0.7/. env
Starten der neuen Version
Wechseln Sie in das neu erstellte Verzeichnis ~/smartWARE_452.3.0.0.7/ und starten Sie das Skript ./
start_smartware.sh.
cd ~ /smartWARE_452 .3.0.0.7/
. /start_smartware .sh
Löschen der alten Version
Das alte Installationsverzeichnis ~/smartWARE_452.2.0.0.12/ und das alte Installationsskript ~/smartWARE_452.2.0.0.12.run kann nun gelöscht werden.
rm -r ~ /smartWARE_452 .2.0.0.12/
rm ~ /smartWARE_452 .2.0.0.12.run
Betrieb
Die smartWARE Evaluation Software besteht aus mehreren einzelnen Programmen (auch als Microservices bezeichnet). Diese Programme werden als Docker Container gestartet. Zum einfachen Starten und Stoppen der Services befinden sich im Verzeichnis:
~/smartWARE_452.3.0.0.7
zwei Linux shell Dateien
start_smartware.sh
stop_smartware.sh
Starten der Services
Wechseln Sie in der Linux Konsole in das Verzeichnis ~/smartWARE_452.3.0.0.7 und starten Sie das Skript ./start_smartware.sh:
$ ./start_smartware.sh
Die Eingabe der Zeichenkombination ./ (also ein Punkt gefolgt von einem Schrägstrich) ist notwendig, da Linux die Datei sonst nicht findet. Es zeigt Linux, dass sich die Datei im aktuellen Verzeichnis befindet.
Wenn Sie dieses Skript nach der Installation das erste Mal aufrufen, werden zuerst die Softwarepakete (Images) vom JUMO Server geladen. Danach werden die einzelnen Services als Docker Container gestartet. Sie können den aktuellen Status der Services sehen durch das Starten eines weiteren Shell Scripts.
$ ./status_smartware.sh
Jetzt sollten Sie eine Liste angezeigt bekommen, die Ihnen den Status der einzelnen Services anzeigt:
Wenn alle Services den State Up zeigen, laufen die Services. Nun kann man im Browser die Startseite öffnen mit http://IP oder https://IP.
Wobei IP für die IPv4 Adresse des W10 PC steht, auf dem die Services gestartet wurden. Sie können aber auch statt der IP Adresse den Hostnamen des Rechners benutzen oder http://localhost, wenn der Browser auf dem selben Rechner gestartet wurde. Falls die Ports 80/433 schon durch ein anderes Programm benutzt werden und Sie Ausweich-Ports durch Einträge in der .env Datei konfiguriert haben, so hängen Sie bitte diesen Port an die URL an, z.B. http://localhost:8080 oder https://localhost:8433.
Stoppen der Services
Um Änderungen der .env Dateien zu übernehmen, ist es notwendig, die einzelnen Services geordnet zu beenden, bevor man sie erneut starten kann. Dazu rufen Sie auf der Linux Console das Skript ./stop_smartware.sh Shell auf.
$ ./stop_smartware.sh
Es dauert einige Sekunden, bis alle Services beendet sind. Sie sehen folgende Ausgabe am Bildschirm:
VHDx Datei
Bitte vor folgenden Änderungen immer die smartWARE Services wie beschrieben beenden.
Verschieben
Windows Docker Desktop installiert per Default alles auf Platte C:.
Beispiel: Verschieben der Ubuntu-20.04 VHDx auf Laufwerk E:.
Zum Verschieben der Ubuntu VHDx Datei auf eine zweite interne größere SSD sind folgende Schritte notwendig:
Öffnen Sie als Administrator eine Windows Powershell und zeigen Sie alle Distributionen an:
❯ wsl --list
Windows-Subsystem für Linux-Distributionen:
Ubuntu-20.04 (Standard)
docker-desktop
docker-desktop-data
Das Verschieben der Distribution geschieht in folgenden Schritten.
Die Distribution wird in eine .tar Datei exportiert auf der SSD E:.
Die Distribution wird abgemeldet.
Die exportierte Distribution wird importiert aus der .tar Datei auf der neuen SSD E:.
Nach erfolgreichem Import kann die .tar Datei gelöscht werden.
wsl --export Ubuntu-20.04 E:\ubuntu.tar
wsl --unregister Ubuntu-20.04
Registrierung wird aufgehoben…
wsl --import Ubuntu-20.04 E:\Docker\wsl\Ubuntu-20.04\ E:\ubuntu.tar --version 2
Damit ist die Ubuntu Distribution auf Laufwerk E:\Docker\wsl\Ubuntu-20.04\ verschoben. Zum Testen eine Ubuntu Shell öffnen und überprüfen. Wenn alles ok ist, kann die Datei E:\ubuntu.tar gelöscht werden.
Falls nach dem Starten der "root" user der default user sein sollte, ist folgendes zu tun:
In der Datei /etc/wsl.conf muss der Default user eingetragen werden:
[user]
default=hier_mein_default_username_eintragen
Danach muss man in der Powershell "wsl --shutdown" durchführen, damit die Änderung aktiv wird.
Maximale Größe erhöhen
Die WSL 2-VHDx verwendet das Ext4-Dateisystem. Diese VHDx wird automatisch an ihre Speicheranforderungen angepasst und verfügt über eine anfängliche maximale Größe von 256 GB. Wenn der von den Linux-Dateien benötigte Speicherplatz diese Größe überschreitet, muss man ihn eventuell erweitern. Wenn die Distribution über die Größe von 256 GB anwächst, werden Fehler angezeigt, die besagen, dass kein Speicherplatz mehr zur Verfügung steht. Man kann diesen Fehler beheben, indem Sie die Größe der VHDx heraufsetzen, falls die physikalische Platte auch groß genug ist. Das folgende Beispiel bezieht sich auf eine Ubuntu Distribution vhdx, die schon auf ein anderes Laufwerk (E:) verschoben wurde! Die Größe wird dabei von 256GB auf 356GB erhöht.
maximum=356000
Eine Powershell öffnen:
PS C:\WINDOWS\system32> wsl --shutdown
PS C:\WINDOWS\system32> diskpart
Microsoft DiskPart-Version 10.0.19041.610
Copyright (C) Microsoft Corporation.
Auf Computer: EW-TEST
DISKPART> Select vdisk file="E:\Docker\wsl\Ubuntu-20.04\ext4.vhdx"
Die Datei für virtuelle Datenträger wurde von DiskPart erfolgreich ausgewählt.
DISKPART> detail vdisk
Geträtetyp-ID: 0 (Unbekannt)
Hersteller-ID: {00000000-0000-0000-0000-000000000000} (Unbekannt)
Status: Hinzugefügt
Virtuelle Größe: 256 GB
Physische Größe: 27 GB
Dateiname: E:\Docker\wsl\Ubuntu-20.04\ext4.vhdx
Ist untergeordnet: Nein
Übergeordneter Dateiname:
Zugeordnete Datenträgernummer: Nicht gefunden.
DISKPART> expand vdisk maximum=356000
100 Prozent bearbeitet
Die Datei für virtuelle Datenträger wurde von DiskPart erfolgreich expandiert.
DISKPART> exit
Jetzt die Ubuntu Distribution starten und in die Linux Shell wechseln:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 251G 28G 211G 12% /
tmpfs 3.1G 0 3.1G 0% /mnt/wsl
tools 454G 273G 182G 61% /init
none 3.1G 0 3.1G 0% /dev
none 3.1G 4.0K 3.1G 1% /run
none 3.1G 0 3.1G 0% /run/lock
none 3.1G 0 3.1G 0% /run/shm
none 3.1G 0 3.1G 0% /run/user
tmpfs 3.1G 0 3.1G 0% /sys/fs/cgroup
C:\ 454G 273G 182G 61% /mnt/c
E:\ 466G 109G 358G 24% /mnt/e
sudo resize2fs /dev/sdb 356000M
[sudo] password for user:
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/sdb is mounted on /; on-line resizing required
old_desc_blocks = 32, new_desc_blocks = 44
The filesystem on /dev/sdb is now 91136000 (4k) blocks long.
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 342G 28G 298G 9% /
tmpfs 3.1G 0 3.1G 0% /mnt/wsl
tools 454G 273G 182G 61% /init
none 3.1G 0 3.1G 0% /dev
none 3.1G 8.0K 3.1G 1% /run
none 3.1G 0 3.1G 0% /run/lock
none 3.1G 0 3.1G 0% /run/shm
none 3.1G 0 3.1G 0% /run/user
tmpfs 3.1G 0 3.1G 0% /sys/fs/cgroup
C:\ 454G 273G 182G 61% /mnt/c
E:\ 466G 109G 358G 24% /mnt/e
Hintergrundinformation
Begriffserklärung
Docker: Legt Programme samt ihrer Abhängigkeiten in Images ab. Diese bilden die Basis für virtualisierte Container, die auf nahezu jedem Betriebssystem lauffähig sind. So werden Anwendungen portabel und unkompliziert.
Docker Desktop: Docker Desktop ist eine einfach zu installierende Anwendung für eine Windows- Umgebung, mit der containerisierte Anwendungen und Microservices erstellt und verteilt werden können. Docker Desktop umfasst Docker Engine, Docker CLI-Client, Docker Compose, Docker Content Trust, Kubernetes und Credential Helper.
Docker Compose: Docker Compose ist ein Tool, das zum Definieren und Freigeben von Multicontaineranwendungen entwickelt wurde. Mit Compose können Services definieren werden, die dann mit einem einzigen Befehl gestartet bzw. beenden können.
Docker Image: Der Begriff „Image“ ist Ihnen im Zusammenhang mit Virtualisierung möglicherweise von virtuellen Maschinen (VMs) bekannt. Für gewöhnlich handelt es sich bei einem VM-Image um eine Kopie eines Betriebssystems. Ggf. enthält ein VM-Image weitere installierten Komponenten wie Datenbank und Webserver. Der Begriff entstammt einer Zeit, in der Software auf optischen Datenträgern wie CD-ROMs und DVDs verteilt wurde. Wollte man eine lokale Kopie des Datenträgers anlegen, erstellte man mit einer speziellen Software ein Abbild, auf Englisch „Image“. Bei der Container-Virtualisierung handelt es sich um die konsequente Weiterentwicklung der VMVirtualisierung. Anstatt einen virtuellen Computer (Maschine) mit eigenem Betriebssystem zu virtualisieren, umfasst ein Docker-Image in der Regel lediglich eine Anwendung. Dabei kann es sich um eine einzelne Binärdatei handeln oder um einen Verbund mehrerer Software-Komponenten.
Docker Container: Die Virtualisierungs-Lösung Docker hat im Verlauf des letzten Jahrzehnts grundlegend verändert, wie Software gebaut, verteilt und betrieben wird. Anders als bei den zuvor etablierten virtuellen Maschinen (VM) werden mit Docker einzelne Anwendungen virtualisiert. Bei einem Docker-Container handelt es sich also um einen Anwendungs- oder Software-Container. Der Begriff des Software-Containers ist angelehnt an physische Container, wie sie auf Schiffen eingesetzt werden. In der Logistik haben Container als standardisierte Einheit die modernen Handelsketten erst ermöglicht. So lässt sich ein Container auf jedem dafür ausgelegten Schiff, Lkw oder Zug befördern. Dies funktioniert weitgehend unabhängig vom Inhalt des Containers. Nach außen hin ist der Container mit standardisierten Schnittstellen versehen. Ganz ähnlich ist dies auch bei Docker-Containern der Fall.
VHDx Datei: In einer VHDx-Datei lässt sich der Inhalt einer kompletten Festplatte virtuell in Form einer einzigen Datei speichern. Das Dateiformat ist eine Erweiterung des VHD-Formats und wurde erstmals mit Windows 8 und Windows Server 2012 veröffentlicht. Es bietet gegenüber dem VHD-Format zahlreiche Verbesserungen und Funktionserweiterungen.
Software Struktur
Die smartWARE Evaluation Software besteht im wesentlichen aus 4 funktionalen Einheiten (Services):
Datastore
Speichert die Originaldaten (Cold Data), die von den Jupiter Geräten in Intervallen gesendet werden.Dataview
Bereitet Teile der der Daten (Cold Data) auf und speichert diese in der Postgres Datenbank (Warm Data). Nimmt Benutzereingaben der Browser Anwendung entgegen und liefert die Daten zur Darstellung der Dashboard Grafiken/Tabellen.Postgres Datenbank
Hier werden die sogenannten Warm Data gespeichert, also der Anteil der Daten, die zur schnellen Anzeige in den Dashboards dienen.Nginx (Reverse Proxy)
Die http(s) Schnittstelle der Services.
Diese Services sind als Linux Docker Container entwickelt und werden mit Hilfe von Docker-Compose konfiguriert und gestartet/gestoppt. Die Darstellung der Daten für den Benutzer erfolgt dabei über einen Web-Browser auf einem beliebigen Rechner des Netzwerks.
Persistene Daten
Alle aufgezeichneten Daten werden durch den Datastore Service persistent im Home Verzeichnis des Linux Users gespeichert:
~/smartWAREData/datastore
Die Daten sind in gepackten Dateien gespeichert, und durch zusätzliche signierte Dateien vor Manipulation geschützt. Dieser gesamte Datenbestand wird auch als Cold Data bezeichnet.
Das Löschen dieses Verzeichnisses oder einzelner Dateien aus diesem Verzeichnis führt zum Verlust der aufgezeichneten Daten, falls keine Kopie der Daten erstellt wurde!
Backup
Erst ab Version 3.0.0.7 ist die Backup Funktion unterstützt.
Wenn datastore Backup aktiviert ist, werden die Daten des datastore zusätzlich beim Empfang im Verzeichnis gespeichert.
~/smartWAREBackup/
Um die Wahrscheinlichkeit eines Datenverlust durch einen Festplattencrash zu minimieren, empfiehlt es sich die Daten aus diesem Verzeichnis regelmäßig auf ein NAS im Netzwerk zu verschieben. Die Windows 10 Aufgabenplanung (Task Scheduler) in Verbindung mit dem Programm robocopy ist für diesen Zweck geeignet.
In einer Windows Powershell kann man nun mit folgendem Befehl die Dateien aus dem Verzeichnis \wsl$\Ubuntu-20.04\home<youruser>\smartWAREBackup verschieben, zum Beispiel auf eine schnelle USB Platte (z.Bsp. D:)
robocopy \wsl$\Ubuntu-20.04\home<youruser>\smartWAREBackup D:
\backup_smartware_data /MOV /E
Es werden dabei immer die Dateien verschoben. Das Verzeichnis \wsl$\Ubuntu-20.04\home<youruser>\smartWAREBackup ist also nur ein temporärer Zwischenspeicher der Backup Daten.
Bitte beachten Sie, <youruser> durch den Namen, der auf Ihrem System eingestellt ist zu ersetzen, wie auch der Laufwerksbuchstabe des Ziellaufwerks (im Beispiel D:\ ) auf Ihr reales System zu verändern ist.
Der Aufruf von robocopy folgt nach folgendem Schema.
robocopy Quellverzeichnis Zielverzeichnis /MOV /E
Der Parameter /MOV verschiebt Dateien und löscht sie aus der Quelle, nachdem sie kopiert wurden.
Der Parameter /E kopiert Unterverzeichnisse. Diese Option schließt automatisch leere Verzeichnisse ein.
Mit dem Parameter /L kann man eine Simulation des Befehls durchführen. Die Dateien werden dabei nicht kopiert und auch nicht gelöscht.
Backup automatisieren
Damit das Programm robocopy nicht immer manuell gestartet werden muss, kann man den Vorgang auch durch die Windows Aufgabenplanung täglich automatisieren.
Öffnen Sie dazu das Programm Aufgabenplanung.
Klicken Sie im Bereich Aktionen auf "Einfache Aufgabe erstellen...".
Es öffnet sich ein Assistent in dem Sie Bitte einen Namen und eine Beschreibung eingeben:
Dann klicken Sie auf die Schaltfläche "Weiter >".
Wählen Sie z.Bsp. "Täglich" und klicken Sie auf "Weiter >".
In diesem Dialog wählen Sie das Datum und die Uhrzeit an der das erste mal das Backup gestartet werden soll und klicken dann auf "Weiter >".
Wenn "Programm starten" ausgewählt ist klicken Sie auf "Weiter >".
In das Feld "Programme/Skript" tragen sie Bitte "robocopy" ein und in das Feld "Argumente hinzufügen (optional)" den folgenden langen Parameter Text, den Sie natürlich auf Ihren User Namen und den richtigen Ziellaufwerksbuchstaben anpassen müssen:
\\wsl$\Ubuntu-20.04\home\<youruser>\smartWAREBackup D:
\backup_smartware_data /MOV /E
Klicken Sie dann auf "Weiter >".
Klicken Sie auf "Fertig stellen".
Sie können nun auch direkt die Aufgabe starten um zu überprüfen, dass die Daten auch auf das Ziellaufwerk kopiert werden.