Verwenden von Junos PyEZ zum Commit der Konfiguration

Mit Junos PyEZ können Sie strukturierte und unstrukturierte Konfigurationsänderungen auf Junos-Geräten vornehmen. Nachdem Sie eine Verbindung mit dem Gerät hergestellt und die Konfiguration geändert haben, müssen Sie die Konfiguration bestätigen, um sie zu aktivieren. In diesem Thema wird erläutert, wie die Konfiguration festgeschrieben wird und welche Commit-Optionen in Junos PyEZ-Anwendungen unterstützt werden.

So bestätigen Sie die Kandidatenkonfiguration

Wenn Sie das Dienstprogramm Junos PyEZ jnpr.junos.utils.config.Config verwenden, um unstrukturierte Konfigurationsänderungen auf einem Gerät vorzunehmen, bestätigen Sie die Kandidatenkonfiguration durch Aufrufen der Config Instanzmethode commit() . Zum Beispiel:

Um die Syntax der Konfiguration zu überprüfen, ohne sie zu bestätigen, rufen Sie die commit_check() Methode anstelle der commit() Methode auf.

Wenn Sie Junos PyEZ-Konfigurationstabellen und -ansichten verwenden, um strukturierte Konfigurationsänderungen auf einem Gerät vorzunehmen, bestätigen Sie die Kandidatenkonfiguration, indem Sie entweder die set() Methode aufrufen, die automatisch die lock()load()commit() , und unlock() Methoden aufruft, oder indem Sie die verschiedenen Methoden einzeln aufrufen. Zum Beispiel:

Auf ähnliche Weise können Sie die einzelnen Methoden aufrufen, wie im folgenden Beispiel:

Hinweis:

Wenn Sie einen Kontext-Manager verwenden, um das Config oder Table-Objekt zu erstellen, und das mode Argument auf private, exclusive, dynamic, batchoder ephemeralsetzen, rufen Sie nur die load() und-Methoden commit() auf, um das Gerät zu konfigurieren. Der Kontext-Manager verarbeitet das Öffnen und Sperren sowie das Schließen und Entsperren der Datenbank, sodass Aufrufe der lock()unlock(), oder-Methoden set() in einem dieser Modi zu einer LockError-Ausnahme führen.

Festlegen von Commit-Optionen

Die Junos CLI bietet Optionen für den Commit-Vorgang, wie z. B. das Hinzufügen eines Commit-Kommentars oder das Synchronisieren der Konfiguration auf mehreren Routing-Engines. Junos PyEZ unterstützt viele dieser Commit-Optionen und einige zusätzliche Optionen, die Sie in Ihrer Junos PyEZ-Anwendung verwenden können, indem Sie die entsprechenden Argumente in die commit() Argumentliste or set() method aufnehmen. Tabelle 1 beschreibt die unterstützten Commit-Optionen und stellt den entsprechenden CLI-Befehl bereit.

Tabelle 1: Von Junos PyEZ unterstützte Commit-Optionen

Argument für die Commit-Option

Beschreibung

CLI-Befehl

comment="comment"

Protokollieren Sie einen Kommentar für diesen Commitvorgang in der Systemprotokolldatei und im Commitverlauf des Geräts.

commit comment "comment"

confirm=(True | minutes)

Erfordern, dass ein Commitvorgang innerhalb eines bestimmten Zeitraums nach dem ersten Commit bestätigt wird. Andernfalls führen Sie ein Rollback auf die zuvor festgeschriebene Konfiguration durch.

Legen Sie das Argument auf fest, um die Standardzeit von 10 Minuten zu True verwenden.

commit confirmed <minutes>

detail=True

Geben Sie ein XML-Objekt mit detaillierten Informationen über den Commit-Prozess zurück.

commit | display detail | display xml

force_sync=True

Synchronisieren und bestätigen Sie die Konfiguration auf beiden Routing-Engines, auch wenn die andere Routing-Engine über offene Konfigurationssitzungen oder nicht festgeschriebene Konfigurationsänderungen verfügt.

commit synchronize force

ignore_warning=True

ignore_warning="string"

ignore_warning=["string1", "string2"]

Ignorieren Sie Warnungen, die während des Commitvorgangs ausgelöst werden.

Legen Sie das Argument auf True so fest, dass alle Warnungen ignoriert werden sollen, oder legen Sie das Argument auf eine Zeichenfolge oder Liste von Zeichenfolgen fest, die angeben, welche Warnungen ignoriert werden sollen.

–

sync=True

Synchronisieren und bestätigen Sie die Konfiguration auf beiden Routing-Engines.

commit synchronize

timeout=seconds

Warten Sie auf den Abschluss des Vorgangs mit dem angegebenen Wert als Zeitüberschreitung.

–

Kommentar bestätigen

Wenn Sie die Konfiguration bestätigen, können Sie einen kurzen Kommentar einfügen, um den Zweck der festgeschriebenen Änderungen zu beschreiben. Um einen Kommentar zu protokollieren, der die Änderungen beschreibt, fügen Sie den comment Parameter und eine Meldungszeichenfolge ggf. in die commit() Argumentliste or set() method ein. Zum Beispiel:

Das Einfügen des comment Arguments entspricht der Ausgabe des Konfigurationsmodusbefehls commit comment in der CLI. Der Kommentar wird in der Systemprotokolldatei protokolliert und in den Commitverlauf des Geräts aufgenommen, den Sie durch Ausführen des show system commit Befehls in der CLI anzeigen können.

Commit Bestätigen

Um zu erzwingen, dass ein Commitvorgang innerhalb eines bestimmten Zeitraums nach dem ersten Commit bestätigt werden muss, schließen Sie das confirm=minutes Argument ggf. in die commit() Argumentliste oder set() method ein.

Wenn der Commit nicht innerhalb des angegebenen Zeitlimits bestätigt wird, führt das Gerät automatisch ein Rollback zur zuvor festgeschriebenen Konfiguration durch und sendet eine Broadcast-Nachricht an alle angemeldeten Benutzer. Der zulässige Bereich liegt zwischen 1 und 65.535 Minuten. Sie können auch confirm=True angeben, dass die Standard-Rollbackzeit von 10 Minuten verwendet werden soll. Um den Commitvorgang zu bestätigen, rufen Sie entweder die commit() Methode or commit_check() auf.

Der bestätigte Commit-Vorgang ist nützlich, um zu überprüfen, ob eine Konfigurationsänderung ordnungsgemäß funktioniert und den Verwaltungszugriff auf das Gerät nicht verhindert. Wenn die Änderung den Zugriff verhindert oder andere Fehler verursacht, ermöglicht das automatische Rollback auf die vorherige Konfiguration den Zugriff auf das Gerät, nachdem der Rollback-Stichtag abgelaufen ist. Wenn Sie die Verbindung zum Gerät verlieren, müssen Sie die Junos PyEZ-Methode open() ausführen, um die Verbindung wiederherzustellen.

Detail bestätigen

Sie können die Details des gesamten Commitvorgangs überprüfen, indem Sie das detail=True Argument in die commit() Argumentliste oder set() method aufnehmen. Wenn Sie dieses Argument angeben, gibt die Methode ein XML-Objekt mit detaillierten Informationen zum Commit-Prozess zurück. Der Rückgabewert entspricht dem Inhalt, der vom <commit-results> Element in der Ausgabe des commit | display detail | display xml Befehls in der CLI eingeschlossen ist.

Commit Synchronisieren

Wenn das Gerät über zwei Routing-Engines verfügt, können Sie die Konfiguration auf beiden Routing-Engines synchronisieren und bestätigen, indem Sie das sync=True Argument in die commit() Argumentliste oder set() method aufnehmen.

Wenn Sie das sync=True Argument angeben, kopiert das Gerät die auf der lokalen Routing-Engine gespeicherte Kandidatenkonfiguration auf die andere Routing-Engine, überprüft die syntaktische Richtigkeit des Kandidaten und führt einen Commit auf beiden Routing-Engines durch. Um zu erzwingen, dass der commit synchronize Vorgang auch dann erfolgreich ist, wenn es offene Konfigurationssitzungen oder Konfigurationsänderungen ohne Commit auf der anderen Routing-Engine gibt, verwenden Sie das force_sync=True Argument, das das Gerät veranlasst, alle Konfigurationssitzungen auf der anderen Routing-Engine zu beenden, bevor die Konfiguration synchronisiert und festgeschrieben wird.

Commit- und Commit-Check-Timeout

Die Standardzeit für ein RPC-Timeout beträgt 30 Sekunden. Große Konfigurationsänderungen können diesen Wert überschreiten, was zu einer Zeitüberschreitung bei einem Commit- oder Commitüberprüfungsvorgang führt, bevor die Konfiguration hochgeladen, überprüft und committ werden kann. Um Konfigurationsänderungen zu berücksichtigen, die möglicherweise eine Commit-Prüfung oder eine Commit-Zeit erfordern, die länger als das Standard-Timeout-Intervall ist, fügen Sie das timeout=seconds Argument in die commit_check()Argumentliste von , commit() oder set() method ein, und legen Sie das Timeout-Intervall auf einen geeigneten Wert fest. Zum Beispiel:

Warnungen ignorieren

Junos PyEZ löst eine RpcError Ausnahme aus, wenn die RPC-Antwort Elemente mit dem Schweregrad "Warnung" oder höher enthält<rpc-error>. In Fällen, in denen es notwendig oder wünschenswert ist, die RpcError Ausnahmen zu unterdrücken, die als Reaktion auf Warnungen ausgelöst werden, können Sie den Parameter der ignore_warning commit() Methode einschließen. Zum Beispiel:

Weitere Informationen zur Verwendung des ignore_warning Parameters finden Sie unter Unterdrücken von RpcError-Ausnahmen, die für Warnungen in Junos PyEZ-Anwendungen ausgelöst wurden.