Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Grundlegendes zu Erweiterungsfunktionen in Junos OS-Automatisierungsskripts

Junos OS bietet Automatisierungs-Scripting-Tools, einschließlich Erweiterungsfunktionen und benannten Vorlagen, die in Commit-, Op-, Event- und SNMP-Skripten verwendet werden können, um Skripting-Aufgaben auf Geräten mit Junos OS einfacher auszuführen. Die Bibliotheken bieten Logik, Datenbearbeitung, Ein- und Ausgabe sowie Hilfsfunktionen und ermöglichen es Ihnen, Operationen auszuführen, die in XPath nur schwer oder gar nicht ausgeführt werden können. Tabelle 1 fasst die Erweiterungsfunktionen von Juniper zusammen.

Um die Erweiterungsfunktionen verwenden zu können, müssen Python-Automatisierungsskripte das jcs Modul importieren, und SLAX- und XSLT-Skripte müssen den entsprechenden Namespace-URI in der Stylesheet-Deklaration deklarieren. Eine Funktion im Namespace ist im Namespace-URI-http://xml.juniper.net/junos/commit-scripts/1.0 definiert, und eine Funktion im Namespace ist im jcs slax Namespace-URI http://xml.libslax.org/slax definiert.

Funktionen, die den slax Namespace verwenden, werden ab Junos OS Version 12.2 unterstützt. Skripts, die Junos OS-unabhängige Erweiterungsfunktionen verwenden, die jcs in früheren Versionen im Namespace vorhanden waren, können entweder den oder den jcs Namespace verwenden, der slax in Junos  OS Version 12.2 beginnt. Um jedoch eine dieser Funktionen in früheren Junos OS-Versionen verwenden zu können, müssen Skripts den jcs Namespace-URI verwenden.

Die SLAX-Skriptanweisung version bestimmt, welche Funktionen in diesem Skript verwendet werden können. Um eine Funktion verwenden zu können, die in einer bestimmten SLAX-Version eingeführt wurde, muss der Wert der script-Anweisung version gleich oder größer als die Version sein, in der die Funktion eingeführt wurde. Beispielsweise können Funktionen, die in Version 1.1 der SLAX-Sprache eingeführt wurden, nicht in einem SLAX-Skript verwendet werden, das über eine "Version 1.0"-Anweisung verfügt.

Hinweis:

SLAX-Skripte können auch zusätzliche Funktionen aus den libslax-Standarderweiterungsbibliotheken verwenden. Weitere Informationen finden Sie unter libslax-Standarderweiterungsbibliotheken: bit, curl, db, os und xutil.

Python-Automatisierungsskripte unterstützen nur eine Teilmenge der Erweiterungsfunktionen. Für viele der nicht unterstützten Funktionen können Sie Standard-Python-Bibliotheken verwenden, um dieselbe Funktionalität zu erreichen.

Tabelle 1: Erweiterungsfunktionen für die Verwendung in Automatisierungsskripten

Funktion

Namensräume

SLAX-Version

Typ

Beschreibung

Unterstützung in Python-Skripten

base64-decode()

Slax

1.1

Datenmanipulation

Decodieren Sie BASE64-codierte Daten, und geben Sie eine Zeichenfolge zurück.

base64-encode()

Slax

1.1

Datenmanipulation

Codieren Sie eine Datenzeichenfolge im BASE64-Codierungsformat.

break-lines()

jcs, SLAX

1.0

Datenmanipulation

Unterteilen Sie ein einfaches Element in mehrere Elemente, die durch Zeilenumbrüche getrennt sind.

close()

Jcs

1.0

Dienstprogramm

Schließen Sie einen zuvor geöffneten Verbindungsgriff.

dampen()

jcs, SLAX

1.0

Dienstprogramm

Verhindern Sie, dass derselbe Vorgang wiederholt in einem Skript ausgeführt wird.

Y

document()

Slax

1.1

Ein-/Ausgangssteuerung

Lesen Sie Daten aus einer Datei oder URL und geben Sie eine Zeichenfolge zurück.

emit_change()

Dienstprogramm

Generieren Sie eine dauerhafte oder vorübergehende Änderung an der Konfiguration in einem Commit-Skript.

Y

emit_error()

Ein-/Ausgangssteuerung

Generieren Sie eine Fehlermeldung auf der Konsole.

Y

emit_snmp_attributes()

Ein-/Ausgangssteuerung

Gibt Informationen für das angeforderte MIB-Objekt aus einem SNMP-Skript zurück.

Y

emit_warning()

Ein-/Ausgangssteuerung

Generieren Sie eine Warnmeldung auf der Konsole.

Y

empty()

jcs, SLAX

1.0

Logik

Werten Sie einen Knotensatz oder ein Zeichenfolgenargument aus, um zu bestimmen, ob es sich um einen leeren Wert handelt.

evaluate()

Slax

1.1

Ein-/Ausgangssteuerung

Werten Sie einen SLAX-Ausdruck aus, und geben Sie das Ergebnis zurück.

execute()

Jcs

1.0

Dienstprogramm

Führen Sie einen Remoteprozeduraufruf (Remote Procedure Call , RPC) im Kontext einer angegebenen Verbindungskennung aus.

first-of()

jcs, SLAX

1.0

Logik

Gibt das erste nicht leere Element (ungleich NULL) in einer Liste zurück. Wenn alle Objekte in der Liste leer sind, wird der Standardausdruck zurückgegeben.

get-command()

jcs, SLAX

1.1

Ein-/Ausgangssteuerung

Fordern Sie den Benutzer zur Eingabe eines Befehls auf und geben Sie die Eingabe als Zeichenfolge zurück.

get-hello()

Jcs

1.0

Dienstprogramm

Gibt die Sitzungs-ID und die Funktionen des NETCONF-Servers während einer NETCONF-Sitzung zurück.

get-input() (XSLT/SLAX)

get_input() (Python)

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Rufen Sie eine CLI-Eingabeaufforderung auf, und warten Sie auf Benutzereingaben. Wenn das Skript nicht interaktiv ausgeführt wird, gibt die Funktion einen leeren Wert zurück. Diese Funktion kann nicht mit Ereignisskripten verwendet werden.

Y

get-protocol()

Jcs

1.0

Dienstprogramm

Gibt das Sitzungsprotokoll zurück, das dem Verbindungshandle zugeordnet ist.

get-secret() (XSLT/SLAX)

get_secret() (Python)

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Rufen Sie eine CLI-Eingabeaufforderung auf, und warten Sie auf Benutzereingaben. Die Eingabe wird nicht an den Benutzer zurückgesendet.

Y

get_snmp_action()

Ein-/Ausgangssteuerung

Rufen Sie den Aktionswert ab, der an das SNMP-Skript übergeben wurde.

Y

get_snmp_oid()

Ein-/Ausgangssteuerung

Rufen Sie den OID-Wert ab, der an das SNMP-Skript übergeben wurde.

Y

hostname()

Jcs

1.0

Dienstprogramm

Gibt den vollqualifizierten Domänennamen zurück, der einer bestimmten IPv4- oder IPv6-Adresse zugeordnet ist, sofern der DNS-Server auf dem Gerät konfiguriert ist.

Y

invoke()

Jcs

1.0

Dienstprogramm

Rufen Sie einen RPC auf einem lokalen Gerät mit Junos OS auf.

open()

Jcs

1.0

Dienstprogramm

Gibt ein Verbindungshandle zurück, das zum Ausführen von RPCs verwendet werden kann.

output()

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Generieren Sie unformatierten Ausgabetext, der sofort an die CLI-Sitzung gesendet wird.

Y

parse-ip()

Jcs

1.0

Datenmanipulation

Analysieren Sie eine IPv4- oder IPv6-Adresse und geben Sie die Host-IP-Adresse, die Protokollfamilie, die Präfixlänge, die Netzwerkadresse und die Netzwerkmaske zurück.

Y

printf()

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Generieren Sie formatierten Ausgabetext. Die meisten Standardformate printf werden unterstützt, zusätzlich zu einigen Junos OS-spezifischen Formaten. Die Funktion gibt eine formatierte Zeichenfolge zurück, gibt sie jedoch beim Aufruf nicht aus.

Y

progress()

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Geben Sie sofort eine Statusmeldung mit dem einzelnen Argument an die CLI-Sitzung aus, sofern das detail Flag beim Aufrufen des Skripts angegeben wurde.

Y

regex()

jcs, SLAX

1.0

Datenmanipulation

Werten Sie einen regulären Ausdruck anhand eines bestimmten Zeichenfolgenarguments aus und geben Sie alle Übereinstimmungen zurück.

set_routing_instance()

-

-

Dienstprogramm

Programmieren Sie die Protokollsoftware (TCP/UDP) so, dass nicht standardmäßige Routing-Instanzen verwendet werden.

Y

sleep()

jcs, SLAX

1.0

Dienstprogramm

Bewirkt, dass das Skript für eine bestimmte Zeit in den Ruhezustand versetzt wird.

split()

jcs, SLAX

1.0

Datenmanipulation

Teilen Sie eine Zeichenfolge in ein Array von Teilzeichenfolgen auf, die durch ein Muster für reguläre Ausdrücke getrennt sind.

sysctl()

jcs, SLAX

1.0

Dienstprogramm

Gibt den Wert des angegebenen sysctl Werts als Zeichenfolge oder Ganzzahl zurück.

Y

syslog()

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Protokollieren Sie Meldungen mit der angegebenen Priorität in der Systemprotokolldatei.

Y

trace()

jcs, SLAX

1.0

Ein-/Ausgangssteuerung

Geben Sie eine Ablaufverfolgungsmeldung aus, die an die Ablaufverfolgungsdatei gesendet wird.

Y