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:
1 <?xml version="1.0" standalone="yes"?> 2 <xsl:stylesheet version="1.0" 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> 7 <xsl:import href="../import/junos.xsl"/> 8 <xsl:template match="configuration"> <!-- ... insert your code here ... --> 9 </xsl:template> 10 </xsl:stylesheet>
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.
1 <?xml version="1.0"?>
Zeile 2 öffnet das Stylesheet und gibt die XSLT-Version als 1.0 an.
2 <xsl:stylesheet version="1.0"
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.
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0">
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.
7 <xsl:import href="../import/junos.xsl"/>
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.
8 <xsl:template match="configuration">
Fügen Sie Ihren Code zwischen den Zeilen 8 und 9 hinzu.
Zeile 9 schließt die Vorlage.
9 </xsl:template>
Zeile 10 schließt das Stylesheet und das Commit-Skript.
10 </xsl:stylesheet>
SLAX-Textbausteine für Commit-Skripte
Der Textbaustein für das SLAX-Commit-Skript lautet wie folgt:
version 1.2; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; match configuration { /* * insert your code here */ }
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:
from junos import Junos_Context from junos import Junos_Configuration from jnpr.junos import Device import jcs if __name__ == '__main__':
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.