Headless-Client

info Informationen

  • Der Headless-Client wird für die Durchführung von Batch-Jobs benötigt, d.h. für serverseitig auszuführende Aufgaben ohne Benutzerinteraktion, die regelmäßig über einen Scheduler (Task Manager unter Windows bzw. Cron unter Linux) angestoßen werden.
  • Voraussetzung für die Einrichtung des Headless-Clients sind fundierte Kenntnisse in den jeweiligen administrativen Fachgebieten.

Ab S 39.5.21

note Voraussetzungen
  • Auf dem System, auf dem der Headless-Client installiert und gestartet wird (typischerweise der Applikationsserver, es kann aber auch ein beliebiger Client sein), muss Folgendes installiert sein:
    • Python in der Version 2.6 oder 2.7
    • NEU Der Headless-Client steht im Installationsverzeichnis des PLANTA-Servers im Unterverzeichnis HeadlessClient zur Verfügung. Es ist nur das Kopieren zu einem geeigneten Pfad erforderlich (z.B. Windows: C:\PLANTA\Jobs\Headless oder Linux: /planta/jobs/headless)
      • warning Das bereitgestellte Headless-Client-Paket ist plattformunabhängig und kann sowohl für Windows als auch für Linux verwendet werden.
    • Ein Standard-Client ist auf dem jeweiligen System für den Headless-Client nicht erforderlich.
  • Der PLANTA-Server, mit dem sich der Headless-Client verbindet, muss gestartet sowie bereit sein, Client-Verbindungen entgegenzunehmen.

Bis S 39.5.21

note Voraussetzungen
  • Auf dem System, auf dem der Headless-Client installiert und gestartet wird (typischerweise der Applikationsserver, es kann aber auch ein beliebiger Client sein), muss Folgendes installiert sein:
    • Python in der Version 2.6 oder 2.7.
    • Das Headless-Client-Paket selbst steht in gepackter Form im Kunden-Download-Bereich auf unserer Website zur Verfügung (es ist nicht in jedem Lieferpaket enthalten. Die letzte Version ist unter Aktuelle Releases --> 39.4.x. --> 4.4.0 zu finden). Es ist nur das Entpacken unter einem geeigneten Pfad erforderlich (z.B. Windows: C:\PLANTA\Jobs\Headless oder Linux: /planta/jobs/headless)
      • warning Das bereitgestellte Headless-Client-Paket ist plattformunabhängig und kann sowohl für Windows als auch für Linux verwendet werden.
    • Ein Standard-Client ist auf dem jeweiligen System für den Headless-Client nicht erforderlich.

note Details

  • Das Python-Startskript des Headless-Cients, planta_headless.py, erhält alle Parameter über die Kommandozeile, bis auf das Passwort, das aus Sicherheitsgründen von einer Datei gelesen wird.
    • Diese Datei enthält den bcrypt-verschlüsselten Hash des Passworts des Planta-Benutzers und sollte nur von dem Anwender lesbar sein, der berechtigt ist, Jobs mit diesem PLANTA-Benutzer zu starten.
    • Das Erfassen dieser Passwort-Datei im entsprechend gesicherten Headless-Verzeichnis und das Verwenden der oktalen Zugriffsberechtigungen 0400 sollten ausreichen, um ein gewisses Maß an Sicherheit zu gewährleisten, obgleich alle weiteren Zugriffskontrollen, die dem Administrator zur Verfügung stehen, unterstützt werden.
    • Zunächst wird die Datei bei Aufruf des Headless-Clients erstellt durch Angabe einer nicht vorhandenen Datei unter einem Pfad, in dem der Benutzer exklusive Lese- und Schreibrechte hat.
    • In diesem Fall wird der Headless-Client einmal nach dem Passwort fragen und nach erfolgreichem Einloggen den dazugehörigen Hash in einer neu angelegten Passwort-Datei mit dem vorgegebenen Namen speichern.
  • Durch Aufrufen des Headless-Clients mit Parameter --help (also z.B. python planta_headless.py --help) werden die Nutzungsinformationen anzeigt.
  • Standardmäßig wird keinerlei Ausgabe erzeugt, da z.B. der Cron-Daemon unter Linux üblicherweise sämtliche Konsolenausgaben als E-Mail an die zuständigen Administratoren versendet. Wenn eine Ausgabe zu Testzwecken gewünscht ist, kann mit dem Parameter --verbose, ggf. verbunden mir einer Dateiumleitung, gearbeitet werden.
  • Der OS Login-Mechanismus spiegelt sich auch Headless-Client wider.
    • Abwärtskompatibilität für Anwender, die vom erweiterten OS-Login keinen Gebrauch machen, ist gegeben.
    • Wer erhöhte Anforderungen an die Sicherheit des Systemzugangs hat, dem ist die Challenge-Response-Authentication besonders zu empfehlen.

Parameter

Optionen

Parameter Erläuterung
--version Zeigt die Versionsnummer an und beendet das Programm.
-h, --help Zeigt die Hilfe-Nachricht an und beendet das Programm.
-q, --quiet Unterdrückt alle Ausgaben (Voreinstellung)
-v, --verbose Jedesmal, wenn der Parameter zusätzlich gesetzt wird (z. B. -v -v... oder -vv...), erhöht sich der "Verbositäts-Level" (Höchst-Level 3): Info-Nachricht..., XML versendet..., etc.

Verbindungsparameter

Parameter Erläuterung
-s HOST:PORT, --service=HOST:PORT Verbindung zum Server
-t TIMEOUT, --timeout=TIMEOUT Wartezeit bis zum Job-Abschluss in Sekunden. -1 für keinen Time-out

Ab S 39.5.21

Login-Parameter

Parameter Erläuterung
-u USER_NAME, --user=USER_NAME Benutzername zum Einloggen ins PLANTA-System
-a TYPE, --auth_type=TYPE verwendeter Authentifizierungstyp zum Einloggen ins PLANTA-System: "osuser" oder "challenge"
-p SECRET_FILE, --secret=SECRET_FILE Datei, die den Passwort-Hash enthält
NEU-i INDIVIDUAL_PARAMETERS,
--individual_parameters=INDIVIDUAL_PARAMETERS
Parameter für die gestartete Sitzung; beliebiger Text, z.B.: "{para1:'value1',para2:'value2'}"

Bis S 39.5.21

Login-Parameter

Parameter Erläuterung
-u USER_NAME, --user=USER_NAME Benutzername zum Einloggen ins PLANTA-System
-a TYPE, --auth_type=TYPE verwendeter Authentifizierungstyp zum Einloggen ins PLANTA-System: "osuser" oder "challenge"
-p SECRET_FILE, --secret=SECRET_FILE Datei, die den Passwort-Hash enthält

Job-Spezifikationen

Parameter Erläuterung
-m MOD_ID, --module=MOD_ID Der Job ruft das Modul mit der angegebenen ID auf dem Server auf.
-f PYTHON_FILE, --py_file=PYTHON_FILE Der Job führt eine Python-Datei auf dem Server aus.
-c PYTHON_CODE, --py_code=PYTHON_CODE Der Job führt einen Python-Code-Ausschnitt (Snippet) auf dem Server aus.

Rückgabecodes

Ab S 39.5.21

note Werte
  • 0: Ok, Jobs wurden erfolgreich abgeschlossen
  • 1: Socket- oder Verbindungsfehler
  • 2: Parameterfehler
  • 3: Time-out, während der Server Jobs bearbeitet hat
    warning Das weist nicht unbedingt auf einen Fehler hin. Die Jobs werden bearbeitet, bis sie abgeschlossen sind. Der Client trennt jedoch vorher die Verbindung.
  • NEW 4: Authentifizierung fehlgeschlagen
  • NEW 5: Unerwartete Ausnahme (momentan innerhalb der Authentifizierung über den Typ "challenge")
  • NEW 6: Login-Time-out: wenn Login länger als 20 Sekunden dauert
  • NEW 7: Server beendet die Sitzung während der Ausführung eines Jobs
  • NEW 8: Interner Server-Fehler
  • NEW 9: Es konnte kein geöffnetes Modul gefunden werden (notwendig zur Ausführung von Jobs)

Bis S 39.5.21

note Werte
  • 0: Ok, Jobs wurden erfolgreich abgeschlossen
  • 1: Socket- oder Verbindungsfehler
  • 2: Parameterfehler
  • 3: Time-out, während der Server Jobs bearbeitet hat
    warning Das weist nicht unbedingt auf einen Fehler hin. Die Jobs werden bearbeitet, bis sie abgeschlossen sind. Der Client trennt jedoch vorher die Verbindung.

Time-out des Headless-Clients

warning Hinweis
  • Je nach Time-out-Parameter und Aktionslaufzeit beendet sich der Headless-Client sofort nach Aktionsstart, nach fest definierter Zeitspanne oder erst nach Beendigung der Aktion.
  • Ohne Angabe eines Time-outs wird eine Aktion lediglich angestoßen, ohne auf Beendigung der Session zu warten.
  • Nur mit Parameter --timeout=-1 wird sichergestellt, dass der Headless-Client genauso lange läuft wie die Session.
  • Um sicherzustellen, dass ein Batch-Job nur einmal gleichzeitig laufen kann, wie dies z.B. mit dem Task Scheduler von Microsoft Windows möglich ist, ist die Angabe dieses Parameters unerläßlich.
Topic revision: r40 - 2018-02-21 - 12:57:01 - IrinaZieger
PLANTA_MARS_DE.HeadlessClient moved from PLANTA_MARS_DE.KommandozeilenClientParameter on 2010-08-11 - 13:13 by JanaBrotz








 
  • Suche in Topic-Namen

  • Suche in Topic-Inhalten