Lade...
 

MorphIT 4.0.0 Konfiguration

MorphIT 4.0.0 Konfiguration

Die Konfiguration des Servers ist hier beschrieben. Diese Seite beschreibt die Unterschiede der Konfiguration von Version 4.0.0 zu ihren Vorgängern und die Migration.

Mit der Version 4.0.0 von MorphIT wurde die Ordnerstruktur, die Konfiguration und die Start-Scripte überarbeitet. Diese Anpassungen sollen folgendes ermöglichen:

  • Einfachere Verwaltung von MorphIT-Installationen durch zentrales morphit-Script
  • Einfachere Konfiguration durch zentrale Konfiguration aller Komponenten /config/config.js & /config/custom/config.js
  • Einfachere Installation durch zentrale Node-Module in /node_modules im Gegensatz zu Node-Modulen für jede einzelne Komponente
  • Start von mehreren MorphIT-Projekten aus einer MorphIT-Installation durch Konfigurations-Dateien (morphit-configurations). Damit auch die Möglichkeit, die Konfigurationsdateien außerhalb des MorphIT-Verzeichnisses abzulegen und MorphIT mit einer neuen Version zu überspielen, ohne dabei die Konfigurationen zu verlieren oder gleiche Konfigurationen für verschiedene Versionen zu benutzen.
  • Es gibt gemeinsame Module die von allen Komponenten verwendet werden können (/utility)

 

Die Änderung hat zur Folge, dass beim Wechsel auf Version 4.0.0 die Konfigurationsdateien überarbeitet werden müssen. Außerdem müssen die Dienste neu eingerichtet werden.

Migrationsschritte

Für die Migration von einer früheren Version auf 4.0.0 gibt es ein Migrations-Script, welches die Konfigurationen übersetzt. Man sollte für die Migration wie folgt vorgehen.

  1. Neues MorphIT-Verzeichnis (/neu) neben dem alten Verzeichnis (/alt) ablegen, das alte Verzeichnis noch nicht löschen. Das alte Verzeichnis darf nicht einfach überschrieben werden, ansonsten funktioniert die automatische Migration nicht.
  2. /alt/start_maintenance.bat ausführen (Nur notwendig falls der Server läuft)
  3. /alt/morphit/uninstall_service.bat mit Administratorrechten ausführen (Nur notwendig, wenn der Server als Dienst installiert wurde)
  4. /alt/launcher/uninstall_service.bat mit Administratorrechten ausführen (Nur notwendig, wenn der Launcher als Dienst installiert wurde)
  5. /neu/morphit.bat migrate ../alt in der CMD ausführen, um die Konfiguration auf das neue Format zu aktualisieren. Diese automatisierte Konvertierung verliert leider alle Kommentare innerhalb der Konfigurationsdateien. Die /config/custom/config.js kann auch nach der Beschreibung hier manuell erstellt werden.
  6. Jetzt kann man /alt löschen und /neu wie gewünscht umbenennen.
  7. /neu/morphit.bat install server mit Administratorrechten starten (Falls der Server als Dienst gestartet werden soll)
  8. /neu/morphit.bat install launcher mit Administratorrechten starten (Falls der Launcher als Dienst gestartet werden soll)

 

Ordnerstruktur

Änderungen zur vorherigen Struktur sind fett hervorgehoben.

/

morphit.bat

Die morphit.bat stellt das zentrale MorphIT-Verwaltungsscript dar, welches alle bisherigen Scripte aus dem MorphIT-Verzeichnis ersetzt. Die alten Scripte sind in leicht angepasster Form nun unter /scripts abgelegt, jedoch sollten die Scripte dort nicht direkt gestartet werden, da die morphit.bat wichtige Konfigurationsschritte durchführt, ehe die Scripte aufgerufen werden. Jedes Script wurde jedoch so überarbeitet, dass es ausgibt, wie das Script stattdessen über die morphit.bat aufgerufen werden kann.

Die morphit.bat kann interaktiv gestartet werden (ohne Parameter), dann wird der Nutzer über durch Menüs navigiert, die ihn Konfiguration und auszuführende Aktion mit einer kurzen Beschreibung auswählen lassen oder man startet die morphit.bat mir Kommandozeilenargument, die Konfiguration, Aktion und Ziel angeben. Auf diese Weise lassen sich auch Verknüpfungen anlegen, die bestimmte Aktionen durchführen.

Aufruf Beschreibung
morphit MorphIT fragt nach der Konfiguration, Aktion und Ziel (interkativer Start)
morphit KONFIGURATION MorphIT lädt die angegebene Konfiguration und fragt nach der auszuführenden Aktion und optional dem Ziel.
morphit KONFIGURATION AKTION MorphIT lädt die Konfiguration und startet die Aktion. Falls die Aktion ein Ziel benötigt (z.B install, start, uninstall), dann fragt MorphIT interaktiv danach.
morphit KONFIGURATION AKTION ZIEL ... MorphIT lädt die Konfiguration, und startet die Aktion mit dem angegebenen Ziel. Optional können noch Kommandozeilenargumente folgen, die an die zu startende Aktion übergeben werden.
morphit AKTION MorphIT lädt die default.bat als Konfiguration und startet die Aktion. Falls die Aktion ein Ziel benötigt (z.B install, start, uninstall), dann fragt MorphIT interaktiv danach.
morphit AKTION ZIEL ... MorphIT lädt die default.bat als Konfiguration und startet die Aktion mit dem angegebenen Ziel. Optional können noch Kommandozeilenargumente folgen, die an die zu startende Aktion übergeben werden.

Gültige Aktionen

Aktion Beschreibung
install Installiert den server oder launcher-Dienst
start Startet den Server, den Launcher, die Konsole oder der Wartungsmodus.
uninstall Deinstalliert wieder einen vorher installierten Dienst
update Aktualisiert/Installiert die Node-Module
shutdown Beendet die Server, Launcher und ClassiX Prozesse hart. Falls möglich sollte stattdessen der Wartungsmodus verwendet werden.

 

Die morphit.bat lädt zunächst eine MorphIT-Konfiguration, die als .bat-Datei innerhalb von morphit-configurations definiert ist. Falls nur ein Projekt über diese MorphIT-Installation gestartet wird, dann kann einfach die leere Konfiguration (default.bat) geladen werden und die notwendige Konfiguration in der /config/custom/config.js vorgenommen werden.

Anschließend wird die je nach gewählter Aktion und dem Ziel das entsprechende Script aus /scripts gestartet. 
Beispiel: morphit start server lädt zunächste die Default-Konfiguration und ruft dann /scripts/start_server.bat auf.

Achtung: Bei der Verwendung von CLINK funktioniert STRG+C zum Abbrechen des MorphIT-Scripts im interaktiven Modus bei Eingabeaufforderungen nicht korrekt. Das Script wiederholt dann die Frage oder nimmt eine leere Eingabe an, anstatt sich zu beenden. Das ist ein Problem mit CLINK selbst und tritt nicht auf, wenn man die Windows-CMD verwendet.

morphit-configurations

Die morphit-configurations-Verzeichniss(e) werden vom MorphIT-Script beim Start nach Konfigurationen durchsucht. Dabei durchsucht das Script aufsteigend bis zum Root-Verzeichnis (C:\, Y:\) alle morphit-configurations-Verzeichnisse nach .bat-Dateien (.cmd-Dateien werden überlesen), die als Konfigurationen interpretiert werden.

Auf diese Weise können Konfigurationen außerhalb des MorphIT-Verzeichnisses abgelegt werden und werden damit nicht überschrieben, wenn man das MorphIT-Verzeichnis austauscht. Gibt es mehrere Konfigurationen mit dem gleichen Namen in verschiedenen Verzeichnissen, dann werden alle Konfigurationsdateien geladen, wobei die Dateien, die näher am Root-Verzeichnis sind, zuerst geladen werden und die dort gesetzten Werte werden von Konfigurationen, die näher am MorphIT-Verzeichnis sind, überschrieben.

Semantik

Eine MorphIT-Konfiguration kann Einfluss auf das Verhalten des MorphIT-Scripts nehmen und defniert die Konfigurationsdateien, die vom Server, Launcher und der Admin-Konsole beim Start geladen werden und kann zusätzliche Start-Parameter definieren. Die Grundidee der Konfigurationen ist mit einer MorphIT-Installation verschiedene ClassiX-Projekte starten zu können. 

Die verwendbaren Umgebungsvariablen und die zu setzenden Variablen sind in den folgenden Tabellen beschrieben:

Verfügbare Variablen

Variable Bedeutung
COMMON_CONFIG Der Pfad zum common.cmd-Script, welches aufgerufen werden kann, um mit minimalem Aufwand eine Projektkonfiguration anzulegen. Beispiel:  CALL "%COMMON_CONFIG%" Evaluate
MORPHIT_DIR Das Verzeichnis, in welchem die morphit.bat liegt
SCRIPT_DIR Der Pfad zum /scripts-Verzeichnis

Setzbare Variablen

Variable Bedeutung
Installation
AUTO Falls diese Variable auf YES gesetzt ist, dann werden Abfragen bei der Installation/Deinstallation von Diensten übersprungen.
LOG_DIR Wird diese Variable gesetzt, dann schreibt ein der Dienst, der über morphit install installiert wird, seine Logs in das angegebene Verzeichnis. Das Verzeichnis wird bei Bedarf angelegt. morphit install fragt in diesem Fall auch nicht nach dem Log-Verzeichnis bei der Installation.
SERVICE_SUFFIX Der Suffix, der zur Unterscheidung der Dienste mehrerer MorphIT-Projekte verwendet wird. Hierfür kann zum Beispiel der Projektname verwendet werden.
Start
CONFIG_FILES Eine durch Semikolon getrennte Liste von Pfaden zu config.js-Dateien, die beim Start von Server, Launcher und Admin-Konsole geladen werden sollen. Die Dateien werden vor der /config/custom/config.js geladen und haben das gleiche Format und sollten dazu verwendet werden, um für jedes MorphIT-Projekt eigene Ports zu vergeben und die Start-Optionen des Launchers anzupassen. Die common.cmd setzt diesen Pfad auf CX_ROOTDIR\system\morphitConfig.js, sodass dort Projektspezifische Optionen, wie das Design gesetzt werden können.
CONSOLE_PARAMS Kommandozeilenargumente, die der Admin-Konsole bei jedem Start übergeben werden sollen.
LAUNCHER_PARAMS Kommandozeilenargumente, die dem Launcher bei jedem Start übergeben werden sollen.
NODE_PARAMS Kommandozeilenargumente, die NodeJS beim Start jeder Komponente übergeben werden sollen. Diese Optionen sind für den Normalbetrieb uninteressant und dienen dem Debuggen der Anwendung (siehe: /morphit-configurations/debug.bat)
SERVER_PARAMS Kommandozeilenargumente, die dem Server-Konsole bei jedem Start übergeben werden sollen.
UPDATE_ON_EACH_START Dieser Wert kann auf YES gesetzt werden, um bei jedem Start einer Komponente, ein Update der Node-Module zu erzwingen. Dies kann den Start deutlich verlangsamen und ein Update der Node-Module ist nur beim Austausch von MorphIT notwendig und kann über morphit update auch manuell ausgeführt werden. Zudem wird unabhängig von UPDATE_ON_EACH_START ein morphit update immer vor einem morphit start services ausgeführt, um sicherzustellen, dass die Node-Module auf dem neuesten Stand sind, ehe die MorphIT-Dienste gestartet werden.

Alternativ können diese Umgebungsvariablen auch in einem aufrufenden Batch-Script gesetzt werden, falls keine Konfiguration definiert werden soll. Dann sind die oben genannten verfügbaren Variablen natürlich noch nicht verfügbar und man sollte die default-Konfiguration starten, denn diese überschreibt keine Werte.

config.js

Da sich Launcher, Server und Admin-Konsole in ihren Konfigurationen auf die gleichen Ports, Endpunkte und SSL-Optionen einigen müssen, wurde die /server/config.js nach /config/config.js verschoben und um einige Felder erweitert, sodass alle Komponenten ihre Konfiguration aus dieser einen Konfigurationsdatei laden können.
 
Folgendes hat sich an der Konfiguration geändert:
  • Dateipfade, die als relative Pfade angegeben sind, sind nicht mehr relativ zum /server-Verzeichnis, sondern zum MorphIT-Hauptverzeichnis.
  • Im Feld host muss der Hostname/IP angegeben werden, unter dem der Launcher den Server erreichen kann, falls der Launcher auf einer anderen Maschine läuft.
  • maintenance aus /admin_console/config/config.js liegt nun unter ws.admin.maintenance in der /config/config.js
  • Die Launcher-Konfiguration aus /launcher/config/launcher.js liegt nun unter ws.launcher
  • Die Start-Konfiguration aus /launcher/config/launch.js liegt nun unter ws.launcher.launch

 

Die restliche Struktur wurde nicht verändert.

Nachdem die /config/config.js geladen wurde, werden alle Konfigurationsdateien geladen, die in der Variable CONFIG_FILES vom Konfigurations-Script gesetzt wurden. Anschließend wird die /config/custom/config.js geladen (falls vorhanden) und zuletzt werden (falls angegeben) Optionen gesetzt, die über zusätzliche Startparameter gesetzt werden (Beispiel: morphit start server --custom.port 80). Später geladene Dateien überschreiben dabei die Werte von früher gesetzten Dateien.