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
HeadlessClientzur 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
0400sollten 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 |
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 |
|
-i 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_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
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.