Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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.

Tabelle 1: Python-Versionen auf Geräten mit Junos OS

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

Hinweis:

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:

Tabelle 2: Junos-Modulobjekte

Python-Objekt

Typ

Skripttyp

Beschreibung

XSLT/SLAX-äquivalent

Junos_Context

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

Junos_Configuration

lxml.etree _Element

Begehen

Kandidatenkonfiguration nach der Vererbung im Junos XML-Format.

Commit-Script-Eingabe/Konfiguration

Junos_Trigger_Event

lxml.etree _Element

Ereignis

Details des Ereignisses, das die entsprechende Ereignisrichtlinie ausgelöst hat.

Ereignisskript-Eingang/Trigger-Ereignis

Junos_Received_Events

lxml.etree _Element

Ereignis

Details korrelierter Ereignisse, die vor dem Triggerereignis aufgetreten sind.

Ereignisskript-Eingabe/Empfangene Ereignisse

Junos_Remote_Execution_Details

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 [edit event-options event-script file filename remote-execution] konfiguriert ist.

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.

Tabelle 3: Allgemeine Ressourcen

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

IPv6-Unterstützung in Python-Automatisierungsskripten

Junos PyEZ-Dokumentation

Junos PyEZ

Python-Programmiersprache: Dokumentation

https://www.python.org/

Tabelle 4: Ressourcen nach Skripttyp

Skripttyp

Dokumentation

Junos OS Commit-, Ereignis-, Op- und SNMP-Skripte

Junos OS Automation Scripting Benutzerhandbuch

Juniper Extension Toolkit (JET)-Skripte

Juniper Extension Toolkit – Dokumentation

YANG-Handlungs- und Übersetzungsskripte

NETCONF XML Management Protocol – Entwicklerleitfaden