Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden von Junos PyEZ zum Konfigurieren von Junos-Geräten

ZUSAMMENFASSUNG Sie können das Dienstprogramm Junos PyEZ Config oder Junos PyEZ Tables and Views verwenden, um Junos-Geräte zu konfigurieren.

Mit Junos PyEZ können Sie strukturierte und unstrukturierte Konfigurationsänderungen auf Junos-Geräten vornehmen. Das Benutzerkonto, das zum Vornehmen von Konfigurationsänderungen verwendet wird, muss über Berechtigungen zum Ändern der relevanten Teile der Konfiguration auf jedem Gerät verfügen. Wenn Sie keinen Benutzer definieren, wird standardmäßig die Standardeinstellung .$USER

In den folgenden Abschnitten werden strukturierte und unstrukturierte Konfigurationsänderungen verglichen und Details zum Junos PyEZ-Konfigurationsprozess bereitgestellt, wenn unstrukturierte Konfigurationsänderungen mithilfe des Dienstprogramms oder strukturierte Konfigurationsänderungen mithilfe von Config Tabellen und Ansichten vorgenommen werden.

Grundlegendes zu strukturierten und unstrukturierten Konfigurationsänderungen

Unstrukturierte Konfigurationsänderungen, die aus dem Laden statischer oder vorlagenbasierter Konfigurationsdaten bestehen, die als ASCII-Text, Junos XML-Elemente, Junos OS-Befehle set oder JavaScript Object Notation (JSON) formatiert sind, werden mit dem jnpr.junos.utils.config.Config Dienstprogramm durchgeführt. Im Gegensatz dazu werden bei strukturierten Konfigurationsänderungen Junos PyEZ-Konfigurationstabellen und -ansichten verwendet, um bestimmte Ressourcen zu definieren, um z. B. ein Junos OS-Benutzerkonto zu konfigurieren. Wenn Sie die Tabelle zum Junos PyEZ-Framework hinzufügen, erstellt Junos PyEZ dynamisch eine Konfigurationsklasse für die Ressource, mit der Sie diese Ressource programmgesteuert auf einem Gerät konfigurieren können.

Wenn Sie das Config Dienstprogramm verwenden, um unstrukturierte Konfigurationsänderungen auf Junos-Geräten vorzunehmen, können Sie jeden Teil der Konfiguration ändern, aber Sie müssen eines der akzeptierten Formate für die Konfigurationsdaten sowie die richtige Syntax für dieses Format verwenden. Benutzer, die mit den unterstützten Konfigurationsformaten vertraut sind und die Möglichkeit haben möchten, einen beliebigen Teil der Konfiguration zu ändern, bevorzugen möglicherweise diese Methode für Konfigurationsänderungen. Das Config Dienstprogramm ermöglicht Ihnen auch das Zurücksetzen auf eine zuvor festgeschriebene Konfiguration oder das Laden der vorhandenen Rettungskonfiguration.

Strukturierte Konfigurationsänderungen hingegen erfordern, dass Sie Tabellen und Ansichten erstellen, um bestimmte Ressourcen zu definieren, und ermöglichen Ihnen nur, die definierten Ressourcen auf dem Gerät zu konfigurieren. Wenn Sie eine strukturierte Ressource definieren, können Sie angeben, welche Konfigurationsanweisungen ein Benutzer für die Ressource konfigurieren kann, und Sie können auch Typ- und Einschränkungsprüfungen definieren, um sicherzustellen, dass die Benutzer akzeptable Werte für die Daten in ihrer Junos PyEZ-Anwendung angeben. Sobald eine Tabelle und eine Ansicht erstellt wurden, können sie einfach freigegeben und wiederverwendet werden. Ein Tabellenbenutzer kann die Ressource auf einem Gerät programmgesteuert konfigurieren, und der Benutzer benötigt keine Kenntnisse der unterstützten Konfigurationsformate oder deren Syntax.

Tabelle 1 fasst die beiden Methoden zusammen, die Junos PyEZ zum Vornehmen von Konfigurationsänderungen unterstützt.

Tabelle 1: Änderungen an der strukturierten und unstrukturierten Konfiguration von Junos PyEZ

Art der Konfigurationsänderung

Dienstprogramm

Umfang

Konfigurationsdatenformat

Zusätzliche Informationen

Strukturierte

Tabellen und Ansichten

Beschränkt auf die Konfigurationsanweisungen, die in der Tabelle und Ansicht definiert sind

Wird verwendet, um gezielte Konfigurationsänderungen vorzunehmen

Keine Kenntnisse von Konfigurationsformaten oder deren Syntax erforderlich

Unstrukturierte

jnpr.junos.utils.config.Config Klasse

Beliebiger Teil der Konfiguration

  • Text

  • JSON

  • Junos OS-Befehle set

  • Junos XML

Unterstützt:

  • Laden von Konfigurationsdaten aus Strings, XML-Objekten, lokalen oder Remote-Dateien oder Jinja2-Vorlagen

  • Laden der Rescue-Konfiguration

  • Zurücksetzen der Konfiguration auf eine frühere Version

In diesem Thema werden der allgemeine Konfigurationsprozess sowie die Vorgänge und Elemente erläutert, die beiden Konfigurationsmethoden gemeinsam sind. Ausführliche Informationen zum Ausführen von Konfigurationsaktualisierungen mit dem Config Dienstprogramm oder mit Tabellen und Ansichten finden Sie in der Dokumentation zu dieser Konfigurationsmethode.

Weitere Informationen zur Verwendung des Dienstprogramms Config zum Vornehmen unstrukturierter Konfigurationsänderungen finden Sie in den folgenden Themen:

Weitere Informationen zur Verwendung von Konfigurationstabellen und -ansichten zum Vornehmen strukturierter Konfigurationsänderungen finden Sie in den folgenden Themen:

Grundlegendes zum allgemeinen Konfigurationsprozess

Mit Junos PyEZ können Sie Konfigurationsänderungen auf Junos-Geräten vornehmen. Nachdem Sie erfolgreich eine Verbindung mit dem Gerät hergestellt haben, erstellen Sie je nach bevorzugter Konfigurationsmethode ein Config oder Tabellenobjekt und ordnen es dem Device Objekt zu. Zum Beispiel:

Config-Objekt

Tabellenobjekt

Standardmäßig aktualisiert Junos PyEZ die globale Kandidatenkonfiguration (auch als freigegebene Konfigurationsdatenbank bezeichnet). Der grundlegende Prozess zum Vornehmen von Konfigurationsänderungen besteht darin, die Konfigurationsdatenbank zu sperren, die Konfigurationsänderungen zu laden, die Konfiguration zu bestätigen, um sie zu aktivieren, und dann die Konfigurationsdatenbank zu entsperren. Wenn Sie das Dienstprogramm Junos PyEZ Config verwenden, um unstrukturierte Konfigurationsänderungen in der gemeinsam genutzten Konfigurationsdatenbank vorzunehmen, können Sie die folgenden Aktionen ausführen, indem Sie die entsprechenden Instanzmethoden aufrufen, die hier beschrieben werden:

  1. Sperren Sie die Konfiguration mit lock()

  2. Ändern Sie die Konfiguration, indem Sie eine der folgenden Aktionen ausführen:

  3. Bestätigen Sie die Konfiguration mit commit() , wie unter Bestätigen der Konfiguration und Verwenden von Junos PyEZ zum Festschreiben der Konfiguration beschrieben

  4. Entsperren Sie die Konfiguration mit unlock()

Wenn Sie Tabellen und Ansichten verwenden, um strukturierte Konfigurationsänderungen auf einem Gerät vorzunehmen, können Sie wählen, ob Sie die lock()Methoden , load(), commit()und einzeln unlock() aufrufen möchten, oder Sie können die Methode aufrufen, die set() alle diese Methoden automatisch aufruft.

Hinweis:

Die load() Methode führt die gleiche Funktion für Table-Objekte und Config -Objekte aus, Sie geben jedoch unterschiedliche Parameter an, je nachdem, welcher Objekttyp die Methode aufruft.

So legen Sie den Konfigurationsmodus fest

Standardmäßig aktualisiert Junos PyEZ die globale Kandidatenkonfiguration. Sie können auch einen anderen Konfigurationsmodus angeben, der beim Ändern der Konfigurationsdatenbank verwendet werden soll. Wenn Sie einen anderen Modus als den Standardmodus angeben möchten, müssen Sie das Config or Table-Objekt mithilfe eines Kontext-Managers (with ... as Syntax) erstellen und das Argument mode auf den gewünschten Modus festlegen. Zu den unterstützten Modi gehören private, exclusive, dynamic, batchund ephemeral.

Wenn Sie einen anderen Modus als den Standardmodus angeben, behandelt der Kontext-Manager das Öffnen und Sperren sowie Schließen und Entsperren der Datenbank. Dadurch wird sichergestellt, dass Sie die Datenbank nicht versehentlich in einem gesperrten Zustand belassen. In diesen Fällen müssen Sie nur die load() commit() und-Methode aufrufen, um das Gerät zu konfigurieren.

In den folgenden Beispielen werden Konfigurationsänderungen mithilfe des configure private Modus vorgenommen:

Hinweis:

Der Kontext-Manager behandelt das Öffnen und Sperren der Konfigurationsdatenbank im private, exclusive, dynamic, batchoder ephemeral -Modus. Daher führt das Aufrufen der lock() or-Methoden set() in einem dieser Modi zu einer LockError Ausnahme.

Mit Junos PyEZ können Sie die kurzlebige Konfigurationsdatenbank auf Geräten aktualisieren, die diese Datenbank unterstützen. Bei der kurzlebigen Datenbank handelt es sich um eine alternative Konfigurationsdatenbank, die eine schnelle programmgesteuerte Schnittstelle zum Ausführen von Konfigurationsupdates auf Junos-Geräten bereitstellt.

Hinweis:

Die flüchtige Konfigurationsdatenbank ist eine erweiterte Funktion, die bei falscher Verwendung schwerwiegende negative Auswirkungen auf den Betrieb des Geräts haben kann. Weitere Informationen finden Sie unter Grundlegendes zur kurzlebigen Konfigurationsdatenbank.

Um die Standardinstanz der kurzlebigen Konfigurationsdatenbank zu öffnen und zu konfigurieren, schließen Sie das Argument mode='ephemeral' ein. Zum Beispiel:

Um eine benutzerdefinierte Instanz der kurzlebigen Konfigurationsdatenbank zu öffnen und zu konfigurieren, schließen Sie das mode='ephemeral' Argument ein, und legen Sie das ephemeral_instance Argument auf den Namen der Instanz fest.

Angeben des Ladevorgangs

In Junos PyEZ können Sie Konfigurationsänderungen mit vielen der gleichen Ladevorgänge laden, die in der Junos OS CLI unterstützt werden. Sie geben den gewünschten Ladevorgang an, indem Sie die entsprechenden Parameter in die set() Methode einschließen oder weglassen, wenn Sie strukturierte Konfigurationsänderungen mithilfe von Tabellen und Ansichten vornehmen, oder in die load() Methode für strukturierte oder unstrukturierte Konfigurationsänderungen. Tabelle 2 fasst die Parametereinstellungen zusammen, die für jeden Ladevorgangstyp erforderlich sind.

Hinweis:

Da die load override Vorgänge and load update eine vollständige Konfiguration erfordern, dürfen die overwrite=True Argumente and update=True nicht verwendet werden, wenn Konfigurationsänderungen mithilfe von Tabellen vorgenommen werden, die nur bestimmte Anweisungen in der Konfiguration ändern.

Tabelle 2: Parameter für die Angabe des Ladevorgangstyps in den Methoden load() und set()

Ladevorgang

Argument

Beschreibung

Erste unterstützte Version von Junos PyEZ

load merge

merge=True

Führen Sie die geladene Konfiguration mit der vorhandenen Konfiguration zusammen.

1.0

load override

overwrite=True

Ersetzen Sie die gesamte Konfiguration durch die geladene Konfiguration.

1.0

load patch

patch=True

Laden Sie Konfigurationsdaten aus einer Patch-Datei.

2.4.0

load replace (Standardeinstellung)

Führen Sie die geladene Konfiguration mit der vorhandenen Konfiguration zusammen, ersetzen Sie jedoch Anweisungen in der vorhandenen Konfiguration durch diejenigen, die das replace: Tag in der geladenen Konfiguration angeben. Wenn in der vorhandenen Konfiguration keine Anweisung vorhanden ist, wird die Anweisung in der geladenen Konfiguration hinzugefügt.

1.0

load update

update=True

Laden Sie eine vollständige Konfiguration und vergleichen Sie sie mit der vorhandenen Konfiguration. Jedes Konfigurationselement, das sich in der geladenen Konfiguration unterscheidet, ersetzt das entsprechende Element in der vorhandenen Konfiguration. Während des Commit-Vorgangs analysieren nur Systemprozesse, die von geänderten Konfigurationselementen betroffen sind, die neue Konfiguration.

2.1.0

So erstellen Sie das Konfigurations- oder Tabellenobjekt als Eigenschaft der Geräteinstanz

Mit der Device class-Methode bind() können Sie verschiedene Instanzen und Methoden an die Device Instanz anfügen. In Ihrer Junos PyEZ-Anwendung haben Sie die Möglichkeit, das Config or Table-Objekt an die Device Instanz zu binden. Die Funktionalität der Methoden ändert sich nicht, aber die Methodenausführung unterscheidet sich geringfügig. Zum Beispiel:

Als eigenständige Variable:

Als gebundene Eigenschaft: