Verstehen von Python-Automatisierungsskripten für Junos-Geräte
Überblick über Python-Skripte
Alternativ zu SLAX und XSLT können Sie Python-Skripte auf Junos-Geräten erstellen und ausführen, die das Python-Erweiterungspaket im Softwarebild unterstützen. Python ist eine praktische, funktionsreiche Sprache mit umfassender Bibliotheksunterstützung, die es Ihnen ermöglicht, benutzerdefinierte Skripte zu erstellen. Tabelle 1 beschreibt die auf Junos-Geräten verfügbaren Python-Versionen und stellt die Veröffentlichung fest, in der die Unterstützung für diese Version für bestimmte Arten von Skripten hinzugefügt oder entfernt wurde.
Python-Version |
Release |
Veränderung |
Betroffene Skripttypen |
---|---|---|---|
Python 2.7.x |
Junos OS Version 16.1R1 und höher |
Support hinzugefügt |
Commit-, Ereignis-, Op- und SNMP-Skripte Juniper Extension Toolkit (JET)-Skripte YANG-Handlungs- und Übersetzungsskripte |
Junos OS Version 20.2R1 und höher |
Support entfernt |
YANG-Handlungs- und Übersetzungsskripte |
|
Junos OS Version 21.1R1 und höher |
Support entfernt |
Commit-, Ereignis-, Op- und SNMP-Skripte Juniper Extension Toolkit (JET)-Skripte |
|
Junos OS Evolved Version 22.3R1 und höher |
Support entfernt |
Commit-, Ereignis-, Op- und SNMP-Skripte Juniper Extension Toolkit (JET)-Skripte YANG-Handlungs- und Übersetzungsskripte |
|
Python 3.x |
Junos OS Version 19.4R1 und höher |
Support hinzugefügt |
Commit-, Ereignis-, Op- und SNMP-Skripte |
Junos OS Version 20.2R1 und höher |
Support hinzugefügt |
Juniper Extension Toolkit (JET)-Skripte YANG-Handlungs- und Übersetzungsskripte |
|
Junos OS Evolved Version 21.1R1 und höher |
Support hinzugefügt Unter Feature Explorer finden Sie unterstützte Plattformen. |
Commit-, Ereignis-, Op- und SNMP-Skripte Juniper Extension Toolkit (JET)-Skripte YANG-Handlungs- und Übersetzungsskripte |
Das End-of-Life- und End-of-Support-Datum für Python 2.7 war der 1. Januar 2020. Der offizielle Upgrade-Pfad für Python 2.7 ist Python 3. Da Unterstützung für Python 3 zu Geräten hinzugefügt wird, auf denen Junos OS für die verschiedenen Arten von Onbox-Skripten ausgeführt wird, empfehlen wir Ihnen, unterstützte Skripttypen von Python 2 nach Python 3 zu migrieren.
Python-Skripte können alle Funktionen und Konstrukte in der Python-Sprache nutzen, was Flexibilität gegenüber SLAX und XSLT bietet und es Ihnen ermöglicht, Vorgänge auszuführen, die in SLAX und XSLT schwierig oder unmöglich durchzuführen sind. SLAX und XSLT sind für die Verarbeitung von XML-Daten konzipiert, Python eignet sich jedoch für die Verarbeitung jedes Formats. Python unterstützt eine umfangreiche Liste von Datentypen, einschließlich Listen, Wörterbücher, Sätze und Tupel, und viele Python-Variablen sind veränderlich, im Gegensatz zu den meisten SLAX- und XSLT-Variablen. Die Loop-Steuerung ist in SLAX- und XSLT-Skripten begrenzt, aber Python-Skripte können Anweisungen wie break
und continue
genau zur Steuerung des Loop-Verhaltens verwenden. Python bietet außerdem umfassende Unterstützung für Dateivorgänge, und Sie können den Standard-Python-Debugger in der Befehlszeile aufrufen, um Python-Op-Skripte zu debuggen.
Darüber hinaus unterstützt Junos OS in Python-Skripten Folgendes:
Junos PyEZ-Bibliothek – vereinfacht die Ausführung von RPCs und die Durchführung von Betriebs- und Konfigurationsaufgaben auf Geräten, auf denen Junos OS ausgeführt wird.
lxml
Bibliothek – vereinfacht die XPath-Handhabung.Jinja2-Bibliothek – Vorlagen-Engine, mit der Sie Inhalte aus vordefinierten Vorlagen generieren können, die für das Generieren von Junos OS-Konfigurationsdaten nützlich sein können.
IPv6: Ab Junos OS Version 19.3R1 werden Geräte, auf denen Junos OS ausgeführt wird, mit erweiterter FreeBSD-Unterstützung mit IPv6 in Python-Automatisierungsskripten verwendet. Weitere Informationen finden Sie unter IPv6-Unterstützung in Python-Automatisierungsskripten.
Nicht standardmäßige Routing-Instanzen: Python-Skripte auf unterstützten Geräten können ab Junos OS Version 19.3R1 die Erweiterungsfunktion set_routing_instance() verwenden, um eine Verbindung zu einem Remotegerät über eine Nicht-Standard-Routinginstanz herzustellen.
Zusätzliche Python-Module: Informationen zu den Modulen, die für Python-Skripte auf Geräten mit Junos OS verfügbar sind, finden Sie unter Übersicht der Python-Module auf Geräten mit Junos OS.
Um die Ausführung von nicht autorisiertem Python-Code auf Geräten zu verhindern, auf denen Junos OS ausgeführt wird, müssen nicht signierte Python-Skripte bestimmte Anforderungen erfüllen, bevor Sie das Skript auf einem Gerät ausführen können. Detaillierte Informationen zu den Anforderungen für die Ausführung von Python-Automatisierungsskripten auf Geräten mit Junos OS finden Sie unter Anforderungen für die Ausführung von Python-Automatisierungsskripten auf Junos-Geräten.
Um nicht signierte Python-Skripte entweder mit Python 2.7 oder Python 3 auszuführen, müssen Sie die language python
Anweisung bzw language python3
. Anweisung auf Hierarchieebene [edit system scripts]
konfigurieren. Wenn Sie die language python3
Anweisung konfigurieren, verwendet das Gerät Python 3 zur Ausführung von Skripten, die diese Python-Version unterstützen, und verwendet Python 2.7 zur Ausführung von Skripten, die Python 3 in der angegebenen Junos OS-Version nicht unterstützen, wie in Tabelle 1 angegeben.
Für JET-Skripte müssen Sie die Version der Anweisung konfigurieren, die der Python-Version entspricht, die das Skript unterstützt. Wenn Sie beispielsweise die language python3
Anweisung für ein JET-Skript konfigurieren, das nur Python 2.7 unterstützt, erhalten Sie einen Laufzeitfehler, wenn Sie das Skript ausführen.
Python-Skripteingaben für Commit-, Ereignis-, Op- und SNMP-Skripte
Geräte mit Junos OS, die Python-Automatisierungsskripte unterstützen, umfassen die folgenden Module, die Sie in Commit-, Ereignis-, Op- und SNMP-Skripte importieren können:
jcs
- bietet Zugriff auf eine Teilmenge der Erweiterungsfunktionen und Vorlagen, die für SLAX- und XSLT-Skripts verfügbar sind.Informationen zu den Funktionen und Vorlagen für die Junos OS-Erweiterung finden Sie unter Understanding Extension Functions in Junos OS Automation Scripts and Understanding Named Templates in Junos OS Automation Scripts.
junos
- enthält dieJunos
in Tabelle 2 aufgeführten Klassen- und Skripteingaben.
Python-Objekt |
Typ |
Skripttyp |
Beschreibung |
XSLT/SLAX-äquivalent |
---|---|---|---|---|
|
Wörterbuch |
Begehen Ereignis Op |
Gerätespezifische Informationen über die Skriptausführungsumgebung wie den Geräte-Hostnamen, den Skripttyp und den Benutzer, der das Skript ausführt. |
Commit-Script-Eingabe/Junos-Kontext Ereignisskript-Eingabe/Junos-Kontext op-script-input/junos-context |
|
lxml.etree _Element |
Begehen |
Kandidatenkonfiguration nach der Vererbung im Junos XML-Format. |
Commit-Script-Eingabe/Konfiguration |
|
lxml.etree _Element |
Ereignis |
Details des Ereignisses, das die entsprechende Ereignisrichtlinie ausgelöst hat. |
Ereignisskript-Eingang/Trigger-Ereignis |
|
lxml.etree _Element |
Ereignis |
Details korrelierter Ereignisse, die vor dem Triggerereignis aufgetreten sind. |
Ereignisskript-Eingabe/Empfangene Ereignisse |
|
Generatorfunktion, die eine Abfolge von Remote-Geräten erzeugt. |
Ereignis |
Verbindungsdetails für einen lokalen oder Remote-Host, der für ein Ereignisskript auf Hierarchieebene |
Ereignisskript-Eingabe/Remoteausführungsdetails |
Detaillierte Informationen zu den verschiedenen Skripteingaben und deren Import und Verwendung in Automatisierungsskripten finden Sie unter:
Python-Skriptressourcen
Tabelle 3 bietet Ressourcen, mit denen Sie Python-Skripte auf Geräten mit Junos OS erstellen und ausführen können. Tabelle 4 bietet Ressourcen für jede der verschiedenen Arten von Skripten.
Ressource |
Dokumentation |
---|---|
Ausführungsanforderungen für Python-Skripte |
Anforderungen für die Ausführung von Python-Automatisierungsskripten auf Junos-Geräten |
Python-Module auf Geräten mit Junos OS |
Übersicht über Python-Module auf Geräten, auf denen Junos OS ausgeführt wird |
IPv6-Unterstützung in Python-Skripten |
|
Junos PyEZ-Dokumentation |
|
Python-Programmiersprache: Dokumentation |
Skripttyp |
Dokumentation |
---|---|
Junos OS Commit-, Ereignis-, Op- und SNMP-Skripte |
|
Juniper Extension Toolkit (JET)-Skripte |
|
YANG-Handlungs- und Übersetzungsskripte |