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.
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.
Funktion |
Namensräume |
SLAX-Version |
Typ |
Beschreibung |
Unterstützung in Python-Skripten |
---|---|---|---|---|---|
Slax |
1.1 |
Datenmanipulation |
Decodieren Sie BASE64-codierte Daten, und geben Sie eine Zeichenfolge zurück. |
– |
|
Slax |
1.1 |
Datenmanipulation |
Codieren Sie eine Datenzeichenfolge im BASE64-Codierungsformat. |
– |
|
jcs, SLAX |
1.0 |
Datenmanipulation |
Unterteilen Sie ein einfaches Element in mehrere Elemente, die durch Zeilenumbrüche getrennt sind. |
– |
|
Jcs |
1.0 |
Dienstprogramm |
Schließen Sie einen zuvor geöffneten Verbindungsgriff. |
– |
|
jcs, SLAX |
1.0 |
Dienstprogramm |
Verhindern Sie, dass derselbe Vorgang wiederholt in einem Skript ausgeführt wird. |
Y |
|
Slax |
1.1 |
Ein-/Ausgangssteuerung |
Lesen Sie Daten aus einer Datei oder URL und geben Sie eine Zeichenfolge zurück. |
– |
|
– |
– |
Dienstprogramm |
Generieren Sie eine dauerhafte oder vorübergehende Änderung an der Konfiguration in einem Commit-Skript. |
Y |
|
– |
– |
Ein-/Ausgangssteuerung |
Generieren Sie eine Fehlermeldung auf der Konsole. |
Y |
|
– |
– |
Ein-/Ausgangssteuerung |
Gibt Informationen für das angeforderte MIB-Objekt aus einem SNMP-Skript zurück. |
Y |
|
– |
– |
Ein-/Ausgangssteuerung |
Generieren Sie eine Warnmeldung auf der Konsole. |
Y |
|
jcs, SLAX |
1.0 |
Logik |
Werten Sie einen Knotensatz oder ein Zeichenfolgenargument aus, um zu bestimmen, ob es sich um einen leeren Wert handelt. |
– |
|
Slax |
1.1 |
Ein-/Ausgangssteuerung |
Werten Sie einen SLAX-Ausdruck aus, und geben Sie das Ergebnis zurück. |
– |
|
Jcs |
1.0 |
Dienstprogramm |
Führen Sie einen Remoteprozeduraufruf (Remote Procedure Call , RPC) im Kontext einer angegebenen Verbindungskennung aus. |
– |
|
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. |
– |
|
jcs, SLAX |
1.1 |
Ein-/Ausgangssteuerung |
Fordern Sie den Benutzer zur Eingabe eines Befehls auf und geben Sie die Eingabe als Zeichenfolge zurück. |
– |
|
Jcs |
1.0 |
Dienstprogramm |
Gibt die Sitzungs-ID und die Funktionen des NETCONF-Servers während einer NETCONF-Sitzung zurück. |
– |
|
|
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 |
Jcs |
1.0 |
Dienstprogramm |
Gibt das Sitzungsprotokoll zurück, das dem Verbindungshandle zugeordnet ist. |
– |
|
|
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 |
– |
– |
Ein-/Ausgangssteuerung |
Rufen Sie den Aktionswert ab, der an das SNMP-Skript übergeben wurde. |
Y |
|
– |
– |
Ein-/Ausgangssteuerung |
Rufen Sie den OID-Wert ab, der an das SNMP-Skript übergeben wurde. |
Y |
|
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 |
|
Jcs |
1.0 |
Dienstprogramm |
Rufen Sie einen RPC auf einem lokalen Gerät mit Junos OS auf. |
– |
|
Jcs |
1.0 |
Dienstprogramm |
Gibt ein Verbindungshandle zurück, das zum Ausführen von RPCs verwendet werden kann. |
– |
|
jcs, SLAX |
1.0 |
Ein-/Ausgangssteuerung |
Generieren Sie unformatierten Ausgabetext, der sofort an die CLI-Sitzung gesendet wird. |
Y |
|
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 |
|
jcs, SLAX |
1.0 |
Ein-/Ausgangssteuerung |
Generieren Sie formatierten Ausgabetext. Die meisten Standardformate |
Y |
|
jcs, SLAX |
1.0 |
Ein-/Ausgangssteuerung |
Geben Sie sofort eine Statusmeldung mit dem einzelnen Argument an die CLI-Sitzung aus, sofern das |
Y |
|
jcs, SLAX |
1.0 |
Datenmanipulation |
Werten Sie einen regulären Ausdruck anhand eines bestimmten Zeichenfolgenarguments aus und geben Sie alle Übereinstimmungen zurück. |
– |
|
- |
- |
Dienstprogramm |
Programmieren Sie die Protokollsoftware (TCP/UDP) so, dass nicht standardmäßige Routing-Instanzen verwendet werden. |
Y |
|
jcs, SLAX |
1.0 |
Dienstprogramm |
Bewirkt, dass das Skript für eine bestimmte Zeit in den Ruhezustand versetzt wird. |
– |
|
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. |
– |
|
jcs, SLAX |
1.0 |
Dienstprogramm |
Gibt den Wert des angegebenen |
Y |
|
jcs, SLAX |
1.0 |
Ein-/Ausgangssteuerung |
Protokollieren Sie Meldungen mit der angegebenen Priorität in der Systemprotokolldatei. |
Y |
|
jcs, SLAX |
1.0 |
Ein-/Ausgangssteuerung |
Geben Sie eine Ablaufverfolgungsmeldung aus, die an die Ablaufverfolgungsdatei gesendet wird. |
Y |