Headless-Client

Informationen
  • Der Headless-Client wird für die Durchführung von Batch-Jobs benötigt, d.h. für ohne Benutzerinteraktion serverseitig auszuführende Aufgaben, 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 Rechner, 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 Release-Paket zur Verfügung. Es ist nur das Entpacken unter einem geeigneten Pfad erforderlich (z.B. Windows: C:\PLANTA\Jobs\Headless / Linux: /planta/jobs/headless)
      • Das bereitgestellte Headless-Client-Paket ist plattformunabhängig, kann also 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.

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 ü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.
  • new394.gif Der OS Login-Mechanismus wurde serverseitig erweitert, was sich auch im Headless-Client widerspiegelt.
    • Allerdings dient die Anpassung des Headless-Client lediglich der Abwärtskompatibilität für Anwender, die vom erweiterten OS-Login keinen Gebrauch machen.
    • Wer erhöhte Anforderungen an die Sicherheit des Systemzugangs hat, dem ist die Challenge-Response-Authentication besonders zu empfehlen.
  • Alle Parameter mit kurzer Erläuterung:
# planta_headless.py --version
planta_headless.py 39 Mars

# planta_headless.py --help
Usage: planta_headless.py [options]

Options:
  --version             Zeigt die Versionsnummer an und beendet das Programm
  -h, --help            Zeigt diese Hilfe-Nachricht an und beendet das Programm
  -q, --quiet           Unterdrückt alle Ausgaben (Voreinstellung)
  -v, --verbose         Erhöht Verbositäts-Level mit jedem Ereignis: Info-
                        Nachricht, XML versendet, XML erhalten
  Connection settings:
    -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 options:
    -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 specifications:
    -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.)

         PLANTA project









 
  • Suche in Topic-Namen

  • Suche in Topic-Inhalten
This site is powered by the TWiki collaboration platform Powered by Perl