Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden von Junos PyEZ-Tabellen mit TextFSM-Vorlagen

ZUSAMMENFASSUNG Junos PyEZ op-Tabellen können allein oder in Verbindung mit einer Junos PyEZ-Ansicht auf eine TextFSM-Vorlage verweisen, um die CLI- oder VTY-Befehlsausgabe eines beliebigen Netzwerkgeräts zu analysieren.

Grundlegendes zu TextFSM-Vorlagen

Junos PyEZ op Tables können Daten aus der CLI- oder VTY-Befehlsausgabe extrahieren. Die Tabelle kann auf eine Ansicht verweisen, um Felder in der Befehlsausgabe Python-Objekten zuzuordnen. Ab Junos PyEZ-Version 2.4.0 können Junos PyEZ-Tabellen auch allein oder in Verbindung mit einer Ansicht auf eine TextFSM-Vorlage verweisen, um die Befehlsausgabe zu analysieren. Junos PyEZ op Tables können TextFSM-Vorlagen verwenden, um Befehlsausgaben von jedem Netzwerkgerät unabhängig von Hersteller, Netzwerkbetriebssystem oder Befehl zu analysieren.

TextFSM ist eine Python-Bibliothek, die halbformatierte CLI-Ausgaben, wie z. B. die Ausgabe des Befehls show, von Netzwerkgeräten analysiert. Es wurde von Google entwickelt und später unter der Apache-2.0-Lizenz veröffentlicht. Das Modul benötigt eine Vorlage und etwas Eingabetext. Die Vorlage verwendet reguläre Ausdrücke, um zu beschreiben, wie die Daten analysiert werden, und Sie können mehrere Vorlagen definieren und auf dieselben Daten anwenden.

TextFSMCliTable Die Klasse von ermöglicht es Benutzern, einen Befehl auf einer bestimmten Plattform der Vorlage zuzuordnen, die die Befehlsausgabe analysiert. Network to Code, ein Unternehmen für Netzwerkautomatisierung, hat einen Python-Wrapper zusammen mit CliTable einem Repository von TextFSM-Vorlagen für Netzwerkgeräte entwickelt. Sie können die ntc-templates Bibliothek auf Ihrem Junos PyEZ-Server bzw. in Ihrer virtuellen Umgebung installieren und dann in Ihren Junos PyEZ-Tabellen auf die NTC-Vorlagen und andere TextFSM-Vorlagen verweisen.

Die NTC-Vorlagen parse show Befehlsausgabe von Netzwerkgeräten. Jede NTC-Vorlage definiert die erwarteten Ausgabefelder für einen bestimmten Befehl und ordnet die Daten für jedes Element einem Header zu. Der Dateiname der NTC-Vorlage identifiziert den Hersteller, das Netzwerkbetriebssystem und den Befehl (mit Unterstrichen), sodass das System leicht bestimmen kann, welche Vorlage für eine bestimmte Plattform und einen bestimmten Befehl verwendet werden soll.

Betrachten Sie z. B. die Vorlage juniper_junos_show_arp_no-resolve.textfsm .

Die Vorlage analysiert die show arp no-resolve Befehlsausgabe von Juniper Networks Junos-Geräten.

Junos PyEZ op-Tabellen können eine NTC-Vorlage oder eine andere TextFSM-Vorlage verwenden, um unstrukturierte Befehlsausgaben zu analysieren. Die Tabelle verwendet eine TextFSM-Vorlage, indem die folgenden Felder definiert werden. Junos PyEZ verwendet die platform Werte und command , um den Dateinamen der Vorlage zu bestimmen.

  • command: command– Befehl, der die zu analysierende Ausgabe generiert. Der Befehl muss der Befehlszeichenfolge im Dateinamen einer NTC-Vorlage oder einer anderen TextFSM-Vorlage zugeordnet werden.

  • key: key– Feld, das in der TextFSM-Vorlage oder in der Junos PyEZ-Ansicht definiert ist und zur eindeutigen Identifizierung des Datensatzelements verwendet wird.

  • platform: platform– Anbieter und Betriebssystem für die TextFSM-Vorlage, z. B juniper_junos. . . Der Plattformwert muss mit dem Plattform-String im Dateinamen einer NTC-Vorlage oder einer anderen TextFSM-Vorlage übereinstimmen.

  • use_textfsm: True– Geben Sie an, dass die Junos PyEZ-Tabelle die Befehlsausgabe mithilfe der TextFSM-Vorlage für die angegebene Plattform und den angegebenen Befehl analysieren soll.

So verwenden Sie TextFSM-Vorlagen zum Parsen der Befehlsausgabe

Junos PyEZ-Tabellen können TextFSM-Vorlagen, einschließlich der vordefinierten NTC-Vorlagen, verwenden, um die Ausgabe von show-Befehlen von Junos-Geräten zu analysieren.

So verwenden Sie TextFSM-Vorlagen in einer Junos PyEZ-Tabelle:

  1. Installieren Sie die ntc-templates Bibliothek auf Ihrem Junos PyEZ-Server oder in Ihrer virtuellen Umgebung.

  2. Erstellen Sie eine benutzerdefinierte Junos PyEZ-Tabelle, die die Argumente , key, platformund use_textfsm und alle zusätzlichen Argumente enthält, die commandfür Ihren Betrieb erforderlich sind.

    Die Junos PyEZ-Anwendung verwendet die platform Werte und command , um den Dateinamen der Vorlage zu bestimmen, der in diesem Fall juniper_junos_show_arp_no-resolve.textfsm lautet.

  3. Erstellen Sie eine Junos PyEZ-Anwendung, die die Tabelle zum Abrufen der Daten verwendet.

  4. Führen Sie die Anwendung aus.

    Die Tabelle verwendet die NTC-Vorlage, um die Ausgabefelder zu extrahieren. Für jedes Tabellenelement gibt die Anwendung den definierten Schlüssel und die Daten für jedes Feld zurück.

Verwenden von TextFSM-Vorlagen mit Junos PyEZ-Ansichten zum Analysieren der Befehlsausgabe

Junos PyEZ-Tabellen können eine TextFSM-Vorlage und eine Junos PyEZ-Ansicht kombinieren, um die Befehlsausgabe zu analysieren. Die TextFSM-Vorlage ordnet die Daten einem Header zu. In der Ansicht können Sie Ihre Variablennamen den Überschriften zuordnen, die in der Vorlage für die Felder definiert sind, die Sie zurückgeben möchten. Dies ist z. B. nützlich, wenn Sie andere Variablennamen als die in der Vorlage definierten verwenden möchten oder wenn Sie andere Felder zurückgeben möchten. Junos PyEZ gibt nur die Felder zurück, die sowohl in der TextFSM-Vorlage als auch in der Junos PyEZ-Ansicht gemeinsam sind.

Im folgenden Beispiel wird die Vorlage juniper_junos_show_arp_no-resolve.textfsm verwendet, um die Befehlsausgabe zu analysieren. Die Junos PyEZ-Ansicht ordnet die Daten neuen Variablennamen zu und gibt nur eine Teilmenge der Felder zurück. Informationen zum Überprüfen der Vorlage finden Sie unter Grundlegendes zu TextFSM-Vorlagen.

So verwenden Sie eine TextFSM-Vorlage und eine Ansicht in einer Junos PyEZ-Tabelle:

  1. Erstellen Sie eine benutzerdefinierte Junos PyEZ-Tabelle, die die Argumente , , , use_textfsmund view und alle zusätzlichen Argumente enthält, die commandfür Ihren platformBetrieb erforderlich sind. key

  2. Erstellen Sie die Junos PyEZ-Ansicht, die definiert, welche Vorlagenfelder zurückgegeben werden sollen, sowie den entsprechenden Variablennamen für jedes Feld.

    In diesem Fall ordnet die Ansicht das FLAGS in der TextFSM-Vorlage definierte Feld nicht zu, und die analysierten Daten enthalten diesen Wert nicht.

  3. Erstellen Sie eine Junos PyEZ-Anwendung, die die Tabelle zum Abrufen der Daten verwendet.

  4. Führen Sie die Anwendung aus.

    Die Tabelle verwendet die NTC-Vorlage und die NTC-Ansicht, um die Ausgabefelder zu extrahieren. Für jedes Tabellenelement gibt die Anwendung den definierten Schlüssel und die Daten für die Felder zurück, die den in der Ansicht definierten Variablennamen zugeordnet sind.

So verwenden Sie benutzerdefinierte TextFSM-Vorlagen

Junos PyEZ-Tabellen können die TextFSM-Vorlagen verwenden, die als Teil des ntc-templates Pakets installiert werden, oder sie können auf benutzerdefinierte TextFSM-Vorlagen verweisen. Um benutzerdefinierte TextFSM-Vorlagen in Ihrer Junos PyEZ-Anwendung zu verwenden, müssen Sie die Vorlage bereitstellen und dann beim Definieren der Tabelleninstanz den absoluten Pfad zum Vorlagenverzeichnis angeben.

So verwenden Sie eine benutzerdefinierte TextFSM-Vorlage in einer Junos PyEZ-Tabelle:

  1. Erstellen Sie ein Verzeichnis für Ihre benutzerdefinierten Vorlagen.

  2. Erstellen Sie im Verzeichnis templates die Vorlage, und benennen Sie die Datei mit der platform_commandDateinamenskonvention .textfsm .

  3. Erstellen Sie eine Junos PyEZ-Tabelle, die dieselben platform Werte wie command der Dateiname der Vorlage definiert.

  4. Geben Sie in Ihrer Junos PyEZ-Anwendung den absoluten Pfad zum benutzerdefinierten Vorlagenverzeichnis an, wenn Sie die Tabelleninstanz definieren.

  5. Führen Sie die Anwendung aus.

So verwenden Sie Junos PyEZ-Tabellen mit TextFSM-Vorlagen, um die Befehlsausgabe eines beliebigen Anbieters zu analysieren

Junos PyEZ-Tabellen können TextFSM-Vorlagen verwenden, um Befehlsausgaben von Netzwerkgeräten eines beliebigen Herstellers zu analysieren. Sie können die Ausgabe in Ihrer Python-Anwendung abrufen oder die Ausgabe aus einer Datei lesen. Wenn Sie dann die Junos PyEZ-Tabelleninstanz erstellen, können Sie die Befehlsausgabezeichenfolge an das Argument der Tabelle übergeben, anstatt eine Device Instanz raw zu übergeben.

Betrachten Sie z. B. die folgende TextFSM-Vorlage:

Die Vorlage analysiert die show alarms detail Befehlsausgabe des angegebenen Geräts.

Im folgenden Beispiel wird eine Junos PyEZ-Tabelle definiert, die die benutzerdefinierte TextFSM-Vorlage cisco_xr_show_alarms_detail.textfsm in Verbindung mit einer View verwendet, um die show alarms detail Befehlsausgabe zu analysieren. Im Beispiel wird die netmiko Bibliothek verwendet, um die Daten direkt vom Gerät abzurufen. Wenn die Anwendung die Table-Instanz erstellt, wird das raw Argument in der Befehlsausgabe übergeben, und das template_dir Argument definiert den Pfad zu dem Verzeichnis, das die benutzerdefinierte Vorlage enthält.

Wenn Sie die Anwendung ausführen, ruft sie die Befehlsausgabe vom Gerät ab und verwendet die TextFSM-Vorlage im angegebenen Verzeichnis zusammen mit der Ansicht, um die Ausgabe zu analysieren. Junos PyEZ gibt nur die Felder zurück, die sowohl in der TextFSM-Vorlage als auch in der Junos PyEZ-Ansicht gemeinsam sind. Die Anwendung speichert auch die Befehlsausgabe in einer Datei, sodass die Ausgabe später verarbeitet werden kann, wie im nächsten Beispiel gezeigt.

Im folgenden Beispiel werden die gleiche TextFSM-Vorlage und die gleiche Junos PyEZ-Ansicht wie im vorherigen Beispiel verwendet, aber in diesem Fall wird die Befehlsausgabe aus einer Datei gelesen.