Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Definieren von Junos PyEZ-Konfigurationstabellen

ZUSAMMENFASSUNG Erstellen Sie benutzerdefinierte Tabellen, die eine bestimmte Ressource auf einem Junos-Gerät konfigurieren, oder extrahieren Sie Konfigurationsdaten aus dem Gerät.

Sie definieren Junos PyEZ-Konfigurationstabellen, um bestimmte Daten aus der ausgewählten Konfigurationsdatenbank eines Junos-Geräts zu extrahieren oder um strukturierte Ressourcen zu erstellen, die zur programmgesteuerten Konfiguration eines Junos-Geräts verwendet werden können. Auf diese Weise können Sie bestimmte Konfigurationsobjekte auf dem Gerät schnell abrufen oder ändern.

Junos PyEZ-Tabellen werden mit YAML formatiert. Wenn Sie eine Junos PyEZ-Konfigurationstabelle definieren, müssen Sie den Konfigurationsbereich entweder mit oder setangebenget. Tabellen, die die get Eigenschaft enthalten, können nur die angegebenen Konfigurationsdaten von einem Gerät abrufen. Tabellen, die die set Eigenschaft enthalten, definieren Konfigurationsressourcen, die Sie zum Konfigurieren des Geräts sowie zum Abrufen von Konfigurationsdaten vom Gerät verwenden können. Daher sind sie eine Obermenge und enthalten alle Funktionen von Tabellen, getdie .

Konfigurationstabellendefinitionen können eine Reihe von erforderlichen und optionalen Parametern enthalten. Tabelle 1 fasst die Parameter zusammen und gibt an, ob der Parameter in Tabellen verwendet werden kann, die ausschließlich Konfigurationsdaten vom Gerät abrufen (get) oder in Tabellen, die das Gerät ebenfalls konfigurieren können (set).

Tabelle 1: Parameter der Junos PyEZ-Konfigurationstabelle

Name der Tabellenparameter

Tabellen-Parameter

Tabellentyp

Beschreibung

Tabellenname

get Oder set

Benutzerdefinierter Tabellenbezeichner.

Konfigurationsumfang

get Oder set

XPath-Ausdruck relativ zum Element der obersten Ebene <configuration> , der die Konfigurationshierarchieebene angibt, auf der Objekte je nach Tabellentyp ausgewählt oder konfiguriert werden sollen.

Geben Sie an, dass Konfigurationsobjekte abgerufen werden sollen, oder geben Sie get an set , dass Objekte sowohl konfiguriert als auch abgerufen werden sollen.

Diese Objekte werden zur Referenz für die zugeordnete Ansicht.

Feld "Konfigurationsressourcenschlüssel"

key-field

set

Zeichenfolge oder Liste von Zeichenfolgen, die auf alle in der Ansicht definierten Feldnamen verweist, die Bezeichnerelementen zugeordnet sind und zur eindeutigen Identifizierung des Konfigurationsobjekts verwendet werden können. Sie können z. B. den Feldnamen angeben, der dem <name> Element für ein Objekt entspricht.

Sie müssen immer mindestens ein Schlüsselfeld in der Tabelle definieren, und Benutzer müssen Werte für alle Schlüssel deklarieren, wenn sie die Ressource in ihrer Anwendung konfigurieren.

Erforderliche Schlüssel

required_keys

get Oder set

(Optional) Assoziatives Array oder Wörterbuch von Schlüssel-Wert-Paaren, die eine Hierarchieebene im Konfigurationsbereich dem Element zuordnen, das das Objekt auf dieser Hierarchieebene eindeutig identifiziert, z. B. das <name> Element.

Benutzer müssen alle erforderlichen Schlüssel als Argumente für die get() Methode angeben, wenn sie die Konfigurationsdaten in ihrer Anwendung abrufen.

Tabellenansicht

view

get Oder set

Ansicht, die mit der Tabelle verknüpft ist.

Betrachten Sie die folgenden Junos PyEZ-Konfigurationstabellen und die zugehörigen Ansichten. UserTable, die die get Eigenschaft enthält, extrahiert Konfigurationsdaten für Benutzerkonten auf dem Zielgerät. UserConfigTable, die die set Eigenschaft enthält, definiert eine strukturierte Konfigurationsressource, die zum Konfigurieren von Benutzerkonten auf dem Zielgerät sowie zum Abrufen von Konfigurationsdaten für Benutzerkonten verwendet werden kann.

In den folgenden Abschnitten werden die verschiedenen Komponenten der Tabellen erläutert:

Tabellenname

Der Tabellenname ist ein benutzerdefinierter Bezeichner für die Tabelle. Die YAML-Datei oder -Zeichenfolge kann eine oder mehrere Tabellen enthalten. Der Anfang des YAML-Dokuments muss linksbündig ausgerichtet werden. Zum Beispiel:

Konfigurationsbereich (Abrufen oder Festlegen)

Die Konfigurationsbereichseigenschaft, die in allen Konfigurationstabellendefinitionen erforderlich ist, gibt je nach Tabellentyp die Konfigurationshierarchieebene an, auf der Objekte abgerufen oder konfiguriert werden sollen. Junos PyEZ-Konfigurationstabellen können zum Abrufen und Ändern von Konfigurationsdaten auf einem Junos-Gerät verwendet werden. Konfigurationstabellen, die die get Eigenschaft angeben, können nur Konfigurationsdaten abrufen. Konfigurationstabellen, die die set Eigenschaft angeben, können Daten sowohl konfigurieren als auch abrufen.

Der Wert für get oder set ist ein XPath-Ausdruck relativ zum Element der obersten Ebene <configuration> , das die Hierarchieebene angibt, auf der die Konfigurationsdaten abgerufen oder festgelegt werden sollen. Diese Daten werden zur Referenz für die zugeordnete Ansicht.

Betrachten Sie die folgende Beispielkonfigurationshierarchie:

Um die user Elemente auf Hierarchieebene [edit system login] abzurufen oder zu konfigurieren, würde der Wert für die or-Eigenschaft get set den folgenden Ausdruck verwenden:

Hinweis:

Fügen Sie keinen Schrägstrich ( / ) am Ende des XPath-Ausdrucks ein, da das Skript einen Fehler generiert.

Um z. B. eine Tabelle zu definieren, die nur zum Abrufen user von Objekten verwendet werden kann, verwenden Sie get.

Um eine Tabelle zu definieren, die nicht nur zum Abrufen von Objekten, sondern auch zum Konfigurieren user von Objekten verwendet werden kann, verwenden Sie set.

Standardmäßig rufen Junos PyEZ-Konfigurationstabellen Daten aus der Kandidatenkonfigurationsdatenbank ab. Wenn Sie die get() Methode im Python-Skript aufrufen, um die Tabellendaten abzurufen, können Sie angeben, dass die Methode stattdessen Daten aus der festgeschriebenen Konfigurationsdatenbank zurückgeben soll, indem Sie das options Argument übergeben und das 'database':'committed' Element in das options Wörterbuch aufnehmen. Zum Beispiel:

Schlüsselfeld (Schlüsselfeld)

In der Junos OS-Konfiguration muss jede Instanz eines Konfigurationsobjekts, z. B. eine Schnittstelle oder ein Benutzerkonto, über eine eindeutige Kennung verfügen. In vielen Fällen identifiziert das <name> Element, das explizit in der Junos-XML-Ausgabe angezeigt wird, jede Instanz des Objekts eindeutig. In einigen Fällen wird jedoch ein anderes Element oder eine Kombination von Elementen verwendet. Eine logische Schnittstelle wird z. B. eindeutig durch die Kombination aus dem Namen der physischen Schnittstelle und der Nummer der logischen Einheit identifiziert.

Konfigurationstabellen, die die set Eigenschaft zum Definieren einer Konfigurationsressource angeben, müssen angeben, welches Element oder welche Kombination von Elementen die Ressource eindeutig identifiziert. Die key-field Eigenschaft, bei der es sich um eine Zeichenfolge oder eine Liste von Zeichenfolgen handelt, erfüllt diese Funktion und ist für alle set Konfigurationstabellen erforderlich.

In der Ansicht für eine set Tabelle müssen explizit Felder für alle Bezeichnerelemente für die Konfigurationsressource definiert werden. Die key-field Eigenschaft muss dann auf alle Feldnamen für die Bezeichnerelemente in der Tabellendefinition verweisen. Wenn Sie die Tabelle zum Konfigurieren der Ressource verwenden, muss eine Junos PyEZ-Anwendung Werte für alle Schlüsselfelder bereitstellen.

In der folgenden Tabelle wird z. B. eine strukturierte Ressource definiert, die zum Konfigurieren von Benutzerkonten auf Hierarchieebene [edit system login] verwendet werden kann. Die View definiert das username Feld explizit und ordnet es dem name Element auf Hierarchieebene [edit system login user] zu. Die key-field Eigenschaft verweist auf dieses Feld, um anzugeben, dass das name Element Instanzen dieses Objekts eindeutig identifiziert.

Wenn die Junos PyEZ-Anwendung Instanzen der UserConfigTable Ressource auf dem Gerät konfiguriert, muss sie für jede Instanz einen Wert für den username Schlüssel definieren. Zum Beispiel:

Wenn die Konfigurationstabelle Felder für Anweisungen in mehreren Hierarchieebenen definiert, die auf jeder Ebene Bezeichner haben, muss die key-field Eigenschaft alle Bezeichner enthalten. Wenn die Tabelle z. B. eine logische Einheit auf einer Schnittstelle konfiguriert, muss die key-field Eigenschaft sowohl den Schnittstellennamen als auch die Nummer der logischen Einheit als Schlüssel enthalten.

Erforderliche Schlüssel (required_keys)

Sie fügen die optionale required_keys Eigenschaft in Ihre Konfigurationstabellendefinition ein, um zu verlangen, dass die Tabellenbenutzer Werte für einen oder mehrere Schlüssel angeben, wenn sie die Daten in ihrer Anwendung abrufen. Jeder Schlüssel muss eine Hierarchieebene im Konfigurationsbereich, der durch den get Parameter or set definiert ist, dem <name> Bezeichner auf dieser Ebene zuordnen. Sie können nur einen SchlÃ1/4ssel pro Hierarchieebene definieren.

Im folgenden Beispiel ist es erforderlich, UserTable dass die Junos PyEZ-Anwendung beim Abrufen der Daten den Wert eines name Elements auf Hierarchieebene [edit system login user] angibt:

Im entsprechenden Junos PyEZ-Skript müssen Sie die erforderlichen Schlüssel in die Liste der get() Methodenargumente aufnehmen. Im folgenden Beispiel werden die Konfigurationsdaten für den Benutzer mit dem Namen "readonly" angefordert:

Sie können Schlüssel nur auf Hierarchieebenen in dem Konfigurationsumfang anfordern, der durch den get Parameter or set definiert ist. Betrachten Sie die folgende Definition für get:

In diesem Fall können Sie den Benutzer auffordern, Werte für den Schnittstellennamen und die Gerätenummer anzugeben, wie im folgenden Beispielcode gezeigt, aber Sie können keinen erforderlichen Schlüssel für die Schnittstellenadresse definieren, die sich auf einer niedrigeren Hierarchieebene befindet:

Tabellenansicht (Ansicht)

Die view Eigenschaft ordnet die Tabellendefinition einer bestimmten Ansicht zu. Eine Ansicht ordnet Ihre benutzerdefinierten Feldnamen mithilfe von XPath-Ausdrücken Elementen in den ausgewählten Tabellenelementen zu. Sie können die Ansicht so anpassen, dass je nach Tabellentyp und -vorgang nur bestimmte Elemente zum Abrufen oder Konfigurieren ausgewählt werden.

Weitere Informationen zum Definieren von Ansichten für Konfigurationstabellen finden Sie unter Definieren von Ansichten für Junos PyEZ-Konfigurationstabellen.