Die Jobsteuerung führt Schreiboperationen auf den Netzwerkkomponenten durch! Der Account-Typ muss mit den entsprechenden Berechtigungen im “kCliManager” hinterlegt sein. Die eigentliche Aufgabe der Jobsteuerung liegt darin die vorgegebenen Aufgaben, die als Skript hinterlegt werden, auf den Netzwerkkomponenten auszuführen. Solange im Skriptfenster kein Skript definiert ist, wird die Jobsteuerung auch nicht eigenmächtig schreibende Aktionen auf den Netzwerkkomponenten durchführen. Nur die vom Anwender vorgegebenen Skripte werden abgearbeitet. Somit liegt hier die Verantwortung über den Inhalt der Skripte beim Anwender!
Bevor die Jobsteuerung gestartet werden kann, wird der Anwender auf die Skriptsteuerung hingewiesen und das die Verantwortung beim Anwender liegt.

Die Datenbank vom „kCliManager“, die vorher eingelesen wurde, wird zur Jobsteuerung übergeben (eine Kopie der Datenbank) und entsprechend dargestellt. Das heißt, dass alle Änderungen in den Konfigurationen durch die Skripts erst nach einem erneuten Scannvorgang in der „kCliManager” Datenbank vorliegen. Somit muss nach dem Verlassen der Jobsteuerung der Scannvorgang erneut gestartet werden, damit die Datenbank aktualisiert werden kann.
Im linken Teil der Jobsteuerung findet man auch die Fenster und Funktionen wieder, wie beim Hauptfenster vom kCliManager – Darstellung der Netzwerkkomponenten, Filter, Status und Ergebnisfenster.
Im rechten Teil ist die Skriptsteuerung mit dem Fenster für den Skriptinhalt untergebracht. Zudem wird eine Auswahl mit Beispiel-Skripts bereitgestellt und eigene Skripte können über die Lade- und Speicherfunktion für Skripts in Textdateien geladen bzw. gesichert werden.
Skript erstellen
Innerhalb des „kCliManager” wurden Skriptbefehle definiert, die die eigentlichen Befehle für die Netzwerkkomponenten einschliessen. Dazu wurden die folgenden Skriptbefehle definiert:
kCliManager-Skript
vendor:<Cisco oder ATI oder HPe>
hardware:<Das Modell z.B. 1841 oder 8824. Bei dem Eintrag ANY werden alle Systeme des gewählten Herstellers bearbeitet.>
[Start]
/%<Die Befehle, die auf den Router zeilenweise übermittelt werden sollen, sind im Schrägstrich und Prozentzeichen bzw. am Ende umgekehrt eingeschlossen.
Sollte nach einer Zeile eine Fehlermeldung auftreten wird dieses Skript abgebrochen.>
%/
wait- -<Hier wird auf eine entsprechende Antwort gewartet>
send- -<Wenn die Antwort oben empfangen wird, dann wird dieser String gesendet.>
wait- -<Hier wird auf eine weitere Antwort gewartet>
exit- -<Wenn die Antwort oben empfangen wird, dann wird dieser String gesendet und das Skript beendet.>
[Stopp]
Hinweis: Zwischen <…> sind die entsprechenden Eingaben vorzunehmen.
Beispielskript – Software-Update
Ein Beispielskript für ein IOS Update auf einen Cisco Systems Router könnte dann wie folgt aussehen:
kCliManager-Skript
vendor:cisco
Hardware:3640
[Start]
/%copy /erase tftp: flash:
%/
wait- -Address or name
send- -192.168.0.7
wait- -Source filename
send- -c3640-ik9s-mz.124-21a.bin
wait- -Destination filename
send- -c3640-ik9s-mz.124-21a.bin
wait- -Erasing the flash filesystem
send- -
wait- -Do you want to over write?
send- -
wait- -Verifying checksum
exit- -
wait- -bytes copied
exit- -
wait- -Connection refused
exit- -
[Stopp]
Skript-Befehle
Innerhalb der Skriptsprache sind keine Kommentareinträge vorgesehen! Als Kommentar können die Zeilen vor dem Begriff „kCliManager-Skript“ Verwendung finden. Denn alles vor diesem Begriff wird von der Jobsteuerung ignoriert. Somit darf der Begriff „kCliManager-Skript“ im Kommentar nicht vorkommen.
Die Befehle WAIT und SEND/EXIT können x-mal nacheinander erfolgen. Wichtig ist aber, dass auf einem WAIT ein SEND oder EXIT erfolgen muß!
Hinweis: Die WAIT/(SEND/EXIT) Befehle im Skript sind „ODER“ verknüpft. Wenn aber die Bedingung im WAIT/EXIT erfüllt ist, dann wird der EXIT Befehl noch gesendet und das Skript beendet. Ansonsten werden die Einträge alle abgearbeitet und ggf. auch mehrfach durchlaufen!
Die Zeichekette nach einem WAIT- -, SEND- – oder EXIT- – darf nur eine Zeile mit max. 200 Zeichen umfassen!
Per Skript den Output zum TFTP-Server senden
Wenn in der Befehlskette zwischen /%….%/ die Zeichenkette auftritt, dann wird <Hostname> durch den tatsächlichen Hostnamen ersetzt. Diese Funktion ist sehr hilfreich, wenn z.B. der Output von Cisco Systems Netzwerkkomponenten auf einen TFTP Server gesichert werden soll. Der Befehl bei Cisco Systems lautet:
Beispiel mit show Tech (ab IOS 12.3(13)T):
show tech | tee tftp://IPAdresse/Dateiname
und im Skript würde dieser Befehl wie folgt aussehen:
show tech | tee tftp://192.168.0.5/<Hostname>.txt
Bei der Ausführung wird der String <Hostname> durch den Hostnamen ersetzt und somit wird der eindeutige Dateiname auf dem Server gewährleistet.
Per Skript den Output lokal sichern
Als weitere Möglichkeit Daten von Netzwerkkomponten einzusammeln und in separaten Dateien zu speichern ist wie folgt vorgesehen.
Sobald im Skript das Schlüsselwort vorkommt, wird dieses Skript entsprechend den Vorgaben zum Speichern der Output-Daten bearbeitet. Das Schlüsselwort bewirkt, dass zum Starten des Jobs das Verzeichnis zum Speichern der Output Dateien abgefragt wird. Wenn die „wait“ Bedingung, wie im Beispiel “Configuration register” erkannt ist, wird die Output Datei erstellt. Der Outputname setzt sich aus der laufenden Nummer sowie dem Hostnamen zusammen.
Innerhalb von /%…%/ dürfen alle Zeichen verwendet werden, die die Netzwerkkomponente zuläßt. Beim Cisco Systems IOS steht z.B. das Ausrufezeichen (!) für eine Kommentarzeile.
kCliManager-Skript
vendor:cisco
Hardware:any
[Start]
/%!Ausgabe der CDP Nachbarn
show cdp nei
!
!- – - – - – - – - – - – - – - – - – - – - – - – - – -
!
!Ausgabe der Routing-Informationen
show ip route summary
!
!- – - – - – - – - – - – - – - – - – - – - – - – - – -
!
!Endeerkennung mittels show version
!
show version
!
%/
wait- -Configuration register
exit- -<save>
[Stopp]
Ist das Skript fertig definiert, dann erfolgt über „Suchfunktion“ die Auswahl der Netzwerk-komponenten, die mit diesem Skript bearbeitet werden sollen. Das Skript wird nur bei den Netzwerkkomponenten angewendet, die in der Auswahl „Job-Netzwerkdatenbank“ aufgeführt sind!
Wie hier in diesem Beispiel ist nur ein Routertyp (3640) im Skript ausgewählt. Sind mehrere Router des Typs für das definierte Skript ausgewählt, wird die Jobsteuerung bis zu 5 Router gleichzeitig mit diesem Skript bearbeiten. Diese Parallel-Bearbeitung ermöglich innerhalb einer relativ kurzen Zeit mehrere Router mit einem neuen IOS zu betanken. Die Anzahl der parallel laufenden Sessions ist z.B. beim IOS Update vom verwendeten TFTP Server und von der Leistungsfähigkeit des verwendeten Rechners abhängig auf dem der „kCliManager” läuft.
Bei den Skriptbefehlen ist darauf zu achten, dass die entsprechenden möglichen Antworten der Netzwerkkomponenten berücksichtigt werden. Auch Fehlermeldungen, die nicht unbedingt auftreten würden, sind zu beachten!
Falls ein Skript nicht beendet werden sollte, weil die entsprechende „Exit“ Bedingung fehlt, kann über „Stopp“ der Job abgebrochen werden.
In der Spalte „Status“ wird während der Skriptausführung der aktuelle Status angezeigt, wie z.B. TCP Session, Login, Skript gestartet etc.. Wird z.B. ein IOS Update durchgeführt, wird dieses ggf. mehrere Minuten dauern. Während der TFTP Übertragung erfolgt innerhalb der Jobsteuerung keine Anzeige zu den übertragenen Datenpaketen. Hierzu sind die Informationen vom TFTP Server heranzuziehen.


