Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden von Ansible mit Junos PyEZ-Tabellen zum Abrufen von Betriebsinformationen von Junos-Geräten

ZUSAMMENFASSUNG Verwenden Sie Junos PyEZ-Tabellen und -Ansichten in Ihren Ansible-Playbooks, um Betriebsinformationen von Junos-Geräten abzurufen.

Modulübersicht

Junos PyEZ-Betriebstabellen bieten eine einfache und effiziente Möglichkeit, Informationen aus komplexen Betriebsbefehlsausgaben zu extrahieren. Juniper Networks stellt ein Ansible-Modul bereit, mit dem Sie Junos PyEZ-Op-Tabellen aus Ansible-Playbooks heraus nutzen können. Tabelle 1 gibt einen Überblick über das Modul.

Tabelle 1: Junos PyEZ-Tabellenmodul

Inhaltsgruppe

Modulname

juniper.device Sammlung

table

Anmerkung:

Das table Modul unterstützt nicht die Verwendung von Konfigurationstabellen und -ansichten.

Grundlegendes zu Junos PyEZ-Tabellen

Junos PyEZ ist ein Microframework für Python, mit dem Sie Junos-Geräte verwalten und automatisieren können. Junos PyEZ unterstützt die Verwendung einfacher YAML-Definitionen, die als Tabellen und Ansichten bezeichnet werden, um Betriebsbefehlsausgaben und Konfigurationsdaten von Junos-Geräten abzurufen und zu filtern.

Junos PyEZ-Betriebstabellen extrahieren Informationen aus der Ausgabe von Betriebsbefehlen oder RPCs. Die PyEZ-Module jnpr.junos.op von Junos enthalten vordefinierte Tabellen- und Ansichtsdefinitionen für einige gängige RPCs. Sie können auch benutzerdefinierte Tabellen und Ansichten erstellen.

Wenn Sie Ansible zum Verwalten von Junos-Geräten verwenden, kann das table Modul Junos PyEZ-Tabellen verwenden, um Daten von einem Gerät abzurufen. Das Modul kann auf die vordefinierten Betriebstabellen und -ansichten verweisen, die in der PyEZ-Verteilung von Junos enthalten sind, oder es kann auf benutzerdefinierte Tabellen und Ansichten verweisen, die sich auf dem Ansible-Steuerknoten befinden.

Allgemeine Informationen zu Junos PyEZ-Tabellen und -Ansichten finden Sie in den folgenden Abschnitten und in der zugehörigen Dokumentation im Junos PyEZ-Entwicklerhandbuch:

Verwendung der Ansible-Module von Juniper Networks mit Junos PyEZ-Tabellen

Das juniper.device.table Modul kann die folgenden Argumente enthalten, um die zu verwendende Tabelle anzugeben:

  • file– Dateiname der YAML-Datei, die die Junos PyEZ-Tabelle und -Ansicht definiert.

  • path- (Optional) Pfad zu dem Verzeichnis, das die YAML-Datei mit den Definitionen Table und View enthält. Der Standarddateipfad ist der Speicherort der vordefinierten Junos PyEZ op-Tabellen, die sich im Junos PyEZ-Installationspfad im Verzeichnis jnpr/junos/op befinden.

  • table—(Optional) Name der Tabelle, die zum Abrufen der Daten verwendet wird. Diese Option ist nur erforderlich, wenn eine Datei mehrere Tabellendefinitionen enthält oder die Datei eine einzelne Tabelle enthält, die "Tabelle" nicht im Namen enthält.

Mit der folgenden Aufgabe werden z. B. Daten mithilfe einer benutzerdefinierten Tabelle mit dem Namen FPCTableabgerufen, die in der Datei fpc.yaml im Playbook-Verzeichnis definiert ist:

Die Antwort des Moduls enthält den Schlüssel, der resource eine Liste der Elemente enthält, die von der Tabelle zurückgegeben werden. Jedes Listenelement ist ein Wörterbuch, das die von der Ansicht definierten Feldnamen und den aus den Daten extrahierten Wert für jedes der entsprechenden Felder enthält.

Betrachten Sie die folgende vordefinierte Tabelle und Ansicht ArpTable und ArpViewin der arp.yml Datei der Junos PyEZ-Distribution. ArpTable führt den <get-arp-table-information> RPC mit der Option aus, die <no-resolve/> dem show arp no-resolve CLI-Befehl entspricht. Die entsprechende Ansicht extrahiert die MAC-Adresse, die IP-Adresse und den Schnittstellennamen für jedes <arp-table-entry> Element in der Antwort.

Das folgende Ansible-Playbook führt das table Modul aus, das zum Abrufen von ARP-Informationen (Address Resolution Protocol) von Junos-Geräten verwendet wird ArpTable . Da ArpTable es in der Junos PyEZ-Distribution enthalten ist und sich im Standardverzeichnis für die vordefinierten Junos PyEZ op-Tabellen befindet, ist das path Argument module nicht erforderlich, um den Speicherort der Datei anzugeben. Da ArpTable es sich um die einzige Tabelle handelt, die in der Datei definiert ist und "Table" im Namen enthalten ist, ist das table Argument nicht erforderlich, um die Tabelle anzugeben.

Die Playbookausgabe, die der Kürze halber abgeschnitten ist, enthält die entsprechenden Felder, wie von ArpView definiert, für jedes <arp-table-entry> Element, das vom Gerät zurückgegeben wird.

Das folgende Ansible-Playbook nutzt die vordefinierte Junos PyEZ-Betriebstabelle OspfInterfaceTable, um Informationen über OSPF-Schnittstellen auf Junos-Geräten abzurufen. Die ospf.yml Datei definiert mehrere Tabellen und Ansichten, sodass der Modulaufruf das table Argument enthält, um anzugeben, welche Tabelle verwendet werden soll.

Angeben von RPC-Argumenten

Junos PyEZ-Betriebstabellen verfügen über einen optionalen args Schlüssel, der die Standardbefehlsoptionen und -argumente für den RPC definiert, der von dieser Tabelle ausgeführt wird. Die Anwendung führt den RPC mit den Standardoptionen aus, es sei denn, der Benutzer überschreibt die Standardeinstellungen. In Junos PyEZ-Anwendungen können Sie die Standardoptionen überschreiben oder beim Aufruf der get() Methode zusätzliche Optionen und Argumente an den RPC übergeben.

Das juniper.device.table Modul ermöglicht es Ihnen auch, die in der Tabelle definierten Standardoptionen zu überschreiben oder zusätzliche Optionen und Argumente mithilfe des kwargs Arguments an den RPC zu übergeben. Der kwargs Wert ist ein Wörterbuch von Befehlsoptionen und Werten, die vom RPC und dem Gerät, auf dem der RPC ausgeführt wird, unterstützt werden müssen.

Beispielsweise führt die vordefinierte Junos PyEZ op-Tabelle EthPortTable in der ethport.yml Datei den <get-interface-information> RPC mit der media Befehlsoption aus. Standardmäßig gibt der RPC Informationen für alle Schnittstellen zurück, die mit dem angegebenen regulären Ausdruck für den Schnittstellennamen übereinstimmen.

Das folgende Ansible-Playbook wird verwendet EthPortTable , um Informationen über die Schnittstellen auf Junos-Geräten zu extrahieren. Das kwargs Argument enthält interface_name: "ge-1/0/0", das den EthPortTable Standardwert für interface_name überschreibt und das Modul anweist, die angeforderten Felder nur für die ge-1/0/0-Schnittstelle abzurufen.

Weitere Informationen zu den standardmäßigen und vom Benutzer bereitgestellten Befehlsoptionen und -argumenten in Junos PyEZ-Tabellen finden Sie unter Definieren von Junos PyEZ-Betriebstabellen und Verwenden von Junos PyEZ-Betriebstabellen und -Ansichten, die die strukturierte Ausgabe analysieren.