Skip to main content
Skip table of contents

Headless-Client

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.

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
      • Windows: nur 32-bit-Version
        • Kostenloser Download: http://python.org/ftp/python/2.7.3/python-2.7.3.msi
      • Linux: 64- oder 32-bit-Version
        • In allen gängigen, aktuelleren Distributions-Repositories vorhanden (ansonsten http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz)
    • 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)
      • 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.

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
--versionZeigt die Versionsnummer an und beendet das Programm.
-h, --helpZeigt die Hilfe-Nachricht an und beendet das Programm.
-q, --quietUnterdrückt alle Ausgaben (Voreinstellung)
-v, --verboseJedesmal, 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:PORTVerbindung zum Server
-t TIMEOUT, --timeout=TIMEOUTWartezeit bis zum Job-Abschluss in Sekunden. -1 für keinen Time-out

Login-Parameter

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

Job-Spezifikationen

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

Rückgabecodes

Werte

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

Time-out des Headless-Clients

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.
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.