Lade...
 

Verwaltung von MorphIT

Verwaltung von MorphIT

Für die Verwaltung von MorphIT wird seit dem MorphIT-Release 3.7.5  eine Administrationskonsole für den MorphIT-Server bereitgestellt.

Einrichtung

Die Admin-Konsole wird zusammen mit MorphIT ausgeliefert und befindet sich im Verzeichnis /admin_console. Für den Start der Konsole wird ebenfalls NodeJS benötigt.

Vor MorphIT 4.0.0

Vor dem Start müssen die Abhängigkeiten per npm install in diesem Verzeichnis installiert werden.

Die Konsole kann dann über die start_console.bat gestartet werden. Sie versucht sich an den Endpunkt zu verbinden, der in der Server-Konfiguration unter ws.admin angegeben ist. In dem ausgelieferten Zustand stimmen die Konfigurationen überein, sollte sich die Konsole nicht verbinden können, dann muss geprüft werden, ob der im Server konfigurierte Endpunkt mit dem der Konsole übereinstimmt. (/admin_console/config/config.js & /admin_console/config/custom/config.js)

Ab MorphIT 4.0.0

Die Konsole kann über morphit start console gestartet werden. Der Endpunkt, and den sich die Konsole verbindet, wird in der /config/config.js /config/custom/config.js unter ws.admin festgelegt.

 

Die Konsole verfügt in dem aktuellen Zustand über keine Authentifizierungsmechanismen. Aus Sicherheitsgründen akzeptiert der Server deshalb nur Verbindungen von der lokalen Maschine.

Relevante Konfiguration

Server-Konfiguration: (/server/config.js & /server/custom/config.js)  
Ab MorphIT 4.0.0 in (/config/config.js & /config/custom/config.js)

Name Default Beschreibung
ws.admin.port 8081 Der Port, auf dem Verbindungen zur Admin-Konsole akzeptiert werden sollen.
ws.admin.enabled true Gibt an, ob der Server die Administration per Admin-Konsole überhaupt zulässt.
ws.admin.reject_remote true Gibt an, ob nur Verbindungen von der lokalen Maschine erlaubt sind.
ws.admin.allow_eval
4.6.1
true Erlaubt die Ausführung des eval-Befehls der Admin-Konsole. In Sicherheitskritischen Systemen sollte diese Option deaktivert werden, da ein potenzieller Angreifer, der auf der Maschine Nutzerrechte erlangt hierüber die Rechte erhalten kann, mit denen der MorphIT-Server läuft. (Privilege Escalation)
ws.classix.shutdown_timeout 10000 Die Zeit (in ms), die ClassiX-Instanzen maximal haben, um sich beim Wechsel in den Wartungs-
Modus oder beim Trennen der Browser-Verbindung sauber zu beenden, ehe die Verbindung einfach getrennt wird.
ws.classix.kill_on_timeout false Falls sich eine ClassiX-Instanz nicht innerhalb von ws.classix.shutdown_timeout beendet und dieser Wert auf true gesetzt ist, wird zusätzlich zum Trennen der Verbindung auch versucht, die Instanz über deren Launcher als Prozess abzuschießen.
ws.launcher.shutdown_timeout 10000 Die Zeit (in ms), die Launcher-Instnazen maximal haben, um sich beim Wechsel in den Wartungs-
Modus suaber zu beenden, ehe die Verbidnung einfach getrennt wird.
ssl.enabled true Gibt die SSL-Konfiguration für die einzelnen Ports an. Die genaue Semantik ist hier beschrieben.

Admin-Konsole: (/admin_console/config/config.js & /admin_console/config/custom/config.js) 
Ab MorphIT 4.0.0 überflüssig

Name Default Beschreibung
endpoint.ssl false Gibt an, ob der Admin-Endpunkt im Server unter SSL läuft, oder nicht.
endpoint.host localhost Gibt an, auf welchen Rechner sich die Admin-Konsole verbinden soll.
endpoint.port 8081 Gibt an, auf welchen Port sich die Admin-Konsole verbinden soll.

 

Benutzung

Die Konsole versucht sich beim Start automatisch mit dem konfigurierten Endpunkt zu verbinden. Falls dies fehlschlägt, sollte die Konfiguration überprüft werden. Sobald die Verbindung hergestellt wurde, wir dem Benutzer ein CMD-ähnlicher Prompt angezeigt, in dem aktuell die folgenden Befehle unterstützt werden. (Die Konsole vervollständigt Befehle, wenn TAB gedrückt wird)

Server-Befehle

Server-Befehle werden im Server-Log protokolliert.

Befehl Beschreibung
comment text Schreibt einen Kommentar in das Server-Log.
status

Fragt den Status des Servers und aller Verbundenen ClassiX-, MorphIT-, & Launcher-Instanzen ab.
Potenzielle Probleme werden farblich rot markiert. Dadurch kann bei Problemen schnell die 
Ursache gefunden werden.

Der Status-Befehl kann durch Anfügen von 

--classix --launcher --morphit --queue --server --strategy --webwidget 

auf die Ausgabe der angegebenen Bereiche eingeschränkt werden. Dies kann hilfreich sein, wenn viele Instanzen mit dem Server verbunden sind und die volle Ausgabe zu lang wäre und womöglich durch den beschränkten CMD-Buffer gekürzt wird.

eval JS-Code

Der angegebene Code wird in dem Kontext des Administrations-Moduls ausgeführt... Hierdurch können zur
Laufzeit in gewissem Umfang Korrekturen am Verhalten des Servers durchgeführt werden. Oder der Zustand des Servers ohne externen Debugger genauer inspiziert werden.

Vorsicht: Durch eine falsche Befehlsfolge kann der Server auch funktionsunfähig gemacht werden und
muss dann neu gestartet werden. 

Dieser Befehl kann über ws.admin.allow_eval=false deaktiviert werden, um in sicherheitskritischen Anwendungen Privilege Escalation über den eval-Befehl zu verhindern.

maintenance text

Setzt den MorphIT-Server in den Wartungs-Modus. Hierzu werden alle Verbundenen Instanzen (ClassiX/Launcher inkl. Dienst) 
sauber beendet und den MorphIT-Clients der eingegebene Text angezeigt. Der Server startet einen Wartungs-Server,
der MorphIT aus dem Cache ausliefert und die Wartungs-Nachricht für neue Clients anzeigt. Anschließend wird der Server beendet
und der Dienst des Servers gestoppt.
 

Ab diesem Zeitpunkt können die MorphIT-Verzeichnisse beliebig verändert werden. Der Wartungs-Server übernimmt die Rolle des
MorphIT-Servers und beantwortet neue MorphIT-Anfragen mit der angegebenen Wartungs-Meldung. Sobald die Änderungen
abgeschlossen sind, kann der Dienst des regulären MorphIT-Servers & -Launchers gestartet werden. Der MorphIT-Server erkennt
einen laufenden Wartungs-Server und beendet ihn vor dem Start.

Ab MorphIT 3.16.1:
Der Wartungsserver schreibt eine Log-Datei mit dem Schema cxm####.log ins %TEMP%-Verzeichnis und löscht sie sobald er wieder durch den regulären MorphIT-Server ersetzt wurde. Sollte der Wartungsserver nicht korrekt starten, dann können in der Log-Datei Hinweise auf die Ursache des Problems enthalten sein.

Lokale-Befehle

Befehl Beschreibung
help Gibt eine Beschreibung der unterstützten Befehle aus.
clear Löscht den Text-Inhalt der Konsole.
exit Trennt die Verbindung zum Server und beendet die Konsole.

 

Befehlszeilen-Parameter

Ab MorphIT 3.20.0

Die Admin-Konsole kann über Befehlzeilen-Argumente so gestartet werden, dass zunächst eine Sequenz von Befehlen ausgeführt wird und sich die Konsole anschließend beendet, oder interaktiv Befehle entgegen nimmt. Bei einem Verbindungsfehler setzte die Konsole einen entsprechenden %ERRORLEVEL%.

Parameter Beschreibung
--command Zeile

Führt die angegebene Zeile so aus, als hätte der Benutzer sie in die Konsole eingegeben. Enthält die Zeile Leerzeichen, dann muss sie in Anführungszeichen eingeschlossen werden.
Es können mehrere Befehle hintereinander ausgeführt werden, indem mehrere --command Parameter gesetzt werden. Die Ausführungsreihenfolge ist dann identisch zur Parameterreihenfolge.

--cmd und --c können als Kurzform von --command genauso verwendet werden.

--exit

Wird dieser Parameter gesetzt, dann beendet sich die Konsole nach der Ausführung aller Befehle automatisch. Dieser Parameter ist gleichwertig mit einem --command exit als letzter Parameter. Der Parameter hat keine Auswirkung falls kein --command angegeben wurde.

--help Gibt einen Hilfetext zur Benutzung der Admin-Konsole aus.

InstantView Scriptsprache