Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Erforderliche Textbausteine für Commit-Skripte

ZUSAMMENFASSUNG Definieren Sie die Textbausteine für Commit-Skripte.

Junos OS-Commit-Skripte können in XSLT (Extensible Stylesheet Language Transformations), SLAX (Stylesheet Language Alternative SyntaX) oder Python geschrieben werden. Commit-Skripte müssen die erforderlichen Textbausteine enthalten, die für diese Skriptsprache sowohl für grundlegende Skriptfunktionen als auch für alle optionalen Funktionen erforderlich sind, die innerhalb des Skripts verwendet werden, wie die Junos OS-Erweiterungsfunktionen und benannte Vorlagen. Dieses Thema enthält Standardbausteine, die in XSLT-, SLAX- und Python-Commitskripts verwendet werden können.

SLAX- und XSLT-Commit-Skripte basieren auf Junos XML und Junos XML-Protokoll-Tag-Elementen. Wie alle XML-Elemente schließen spitze Klammern den Namen eines Junos XML- oder Junos XML-Protokoll-Tag-Elements in die öffnenden und schließenden Tags ein. Dies ist eine XML-Konvention, und die eckigen Klammern sind ein erforderlicher Teil des vollständigen Tag-Elementnamens. Sie sind nicht zu verwechseln mit den spitzen Klammern, die in der Dokumentation verwendet werden, um optionale Teile von Junos OS CLI-Befehlszeichenfolgen anzugeben.

XSLT-Textbausteine für Commit-Skripte

Der Textbaustein für XSLT-Commit-Skripte lautet wie folgt:

Zeile 1 ist die XML-Verarbeitungsanweisung (Extensible Markup Language). Diese PI gibt an, dass der Code in XML mit Version 1.0 geschrieben wird. Die XML-PI (sofern vorhanden) muss das erste Nichtkommentartoken in der Skriptdatei sein.

Zeile 2 öffnet das Stylesheet und gibt die XSLT-Version als 1.0 an.

In den Zeilen 3 bis 6 sind alle Namespace-Zuordnungen aufgeführt, die üblicherweise in Commit-Skripten verwendet werden. Nicht alle diese Präfixe werden in diesem Beispiel verwendet, aber es ist kein Fehler, Namespacezuordnungen aufzulisten, auf die nicht verwiesen wird. Durch das Auflisten aller Namespacezuordnungen werden Fehler vermieden, wenn die Zuordnungen in späteren Versionen des Skripts verwendet werden.

Zeile 7 ist eine XSLT-Importanweisung. Es lädt die Vorlagen und Variablen aus der Datei, auf die als .. /import/junos.xsl, die im Lieferumfang von Junos OS enthalten ist. Die Datei junos.xsl enthält eine Reihe benannter Vorlagen, die Sie in Ihren Skripts aufrufen können. Diese benannten Vorlagen werden unter Grundlegendes zu benannten Vorlagen in Junos OS-Automatisierungsskripten erläutert.

Zeile 8 definiert eine Vorlage, die mit dem <configuration> Element übereinstimmt, bei dem es sich um den von der <xsl:template match="/"> Vorlage ausgewählten Knoten handelt, der in der Importdatei junos.xsl enthalten ist. Mit dem <xsl:template match="configuration"> Element können Sie das /configuration/ Root-Element von allen XPath-Ausdrücken im Skript ausschließen und XPath-Ausdrücke mit der obersten Junos OS-Hierarchieebene beginnen. Weitere Informationen finden Sie unter XPath-Übersicht.

Fügen Sie Ihren Code zwischen den Zeilen 8 und 9 hinzu.

Zeile 9 schließt die Vorlage.

Zeile 10 schließt das Stylesheet und das Commit-Skript.

SLAX-Textbausteine für Commit-Skripte

Der Textbaustein für das SLAX-Commit-Skript lautet wie folgt:

Python-Textbausteine für Commit-Skripte

Python-Commitskripte verfügen nicht über einen erforderlichen Textbaustein, müssen jedoch alle Objekte importieren, die im Skript verwendet werden. Python-Commit-Skripte können Folgendes importieren:

  • Junos_Context dictionary: Enthält Informationen über die Skriptausführungsumgebung.

  • Junos_Configuration object – Enthält die Konfiguration des Kandidaten nach der Vererbung.

  • jcs library: Ermöglicht dem Skript die Verwendung von Junos OS-Erweiterungsfunktionen und von Junos OS benannten Vorlagen im Skript.

  • jnpr.junos module and classes: Ermöglicht dem Skript die Verwendung von Junos PyEZ.

Zum Beispiel:

Python-Automatisierungsskripte müssen keine Interpreter-Direktive Zeile (#!/usr/bin/env python) am Anfang des Skripts einfügen. Das Programm wird jedoch weiterhin korrekt ausgeführt, wenn ein solches vorhanden ist.