Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ändern der Konfiguration mithilfe eines Ereignisskripts

Sie können eine Ereignisrichtlinie konfigurieren, um die Konfiguration als Reaktion auf ein Ereignis zu ändern. Ereignisrichtlinien können die Konfiguration ändern, indem ein Ereignisskript aufgerufen wird, das die Konfiguration ändert und einen Commit ausführt, oder indem die change-configuration Anweisung zum Ausführen von Konfigurationsmodusbefehlen verwendet wird, die die Konfiguration ändern. Ereignisskripts bieten beim Ändern der Konfiguration mehr Flexibilität als die change-configuration Anweisung. Mit Ereignisskripts können Sie z. B. nach bestimmten Bedingungen suchen, die Konfigurationsdaten in verschiedenen Formaten bereitstellen und angeben, wie die Daten mit der vorhandenen Konfiguration zusammengeführt werden sollen. In bestimmten Fällen, z. B. auf Geräten mit dualer Routing-Engine, auf denen NSR (Nonstop Active Routing) aktiviert ist, können Ereignisrichtlinien nur Ereignisskripts verwenden, um die Konfiguration zu ändern.

In den folgenden Abschnitten wird die Verwendung von Ereignisskripts zum Ändern der Konfiguration erläutert.

Ändern der Konfiguration mithilfe eines SLAX- oder XSLT-Ereignisskripts

SLAX- und XSLT-Ereignisskripte können die jcs:load-configuration Vorlage aufrufen, um strukturierte Änderungen an der Junos OS-Konfiguration vorzunehmen. Sie müssen eine Verbindung mit dem Zielgerät herstellen, bevor Sie die Vorlage aufrufen, um die Konfiguration zu ändern. Weitere Informationen zur Vorlage finden Sie unter jcs:load-configuration und Ändern der Konfiguration mithilfe von SLAX- und XSLT-Skripten.

Das folgende SLAX-Ereignisskript öffnet eine Verbindung mit dem lokalen Gerät, ruft die jcs:load-configuration Vorlage auf, um die Konfiguration zu ändern und zu bestätigen, und schließt dann die Verbindung. Alle für die jcs:load-configuration Vorlage erforderlichen Werte werden als Variablen definiert, die dann als Argumente an die Vorlage übergeben werden.

So konfigurieren Sie eine Ereignisrichtlinie, die das SLAX-Ereignisskript für ein bestimmtes Ereignis aufruft:

  1. Kopieren Sie das Skript in das Verzeichnis /var/db/scripts/event auf dem Gerät, und geben Sie einen Dateinamen mit der Erweiterung .slax an, z. B. config-change.slax.
  2. Konfigurieren Sie das Ereignisskript.
  3. Konfigurieren Sie eine Ereignisrichtlinie, die das Ereignisskript für Ihr spezifisches Ereignis aufruft, z. B.:
  4. Bestätigen Sie die Konfiguration.

Ändern der Konfiguration mithilfe eines Python-Ereignisskripts

Python-Skripte können die Junos PyEZ-Bibliothek verwenden, um Änderungen an der Konfiguration auf Geräten mit Junos OS vorzunehmen. Das PyEZ-Dienstprogramm jnpr.junos.utils.config.Config Junos stellt Instanzmethoden zum Sperren, Laden, Bestätigen und Entsperren der Konfiguration bereit.

Das folgende Python-Ereignisskript stellt eine Verbindung mit dem lokalen Gerät her und aktualisiert und führt einen Commit für die Konfiguration durch.

So konfigurieren Sie eine Ereignisrichtlinie, die das Python-Ereignisskript für ein bestimmtes Ereignis aufruft:

  1. Kopieren Sie das Skript in das Verzeichnis /var/db/scripts/event auf dem Gerät, und geben Sie einen Dateinamen an, der die Erweiterung .py verwendet, z. B. config-change.py.
    Anmerkung:

    Unsignierte Python-Skripte müssen entweder im Besitz von root oder eines Benutzers in der Junos OS-Anmeldeklasse super-user sein, und nur der Dateieigentümer kann Schreibberechtigungen für die Datei haben.

  2. Aktivieren Sie die Ausführung von nicht signierten Python-Skripts auf dem Gerät.
  3. Konfigurieren Sie das Ereignisskript und den Benutzer, unter dessen Berechtigungen das Skript ausgeführt wird.
  4. Konfigurieren Sie eine Ereignisrichtlinie, die das Ereignisskript für Ihr spezifisches Ereignis aufruft, z. B.:
  5. Bestätigen Sie die Konfiguration.

Weitere Informationen zur Verwendung von Junos PyEZ zur Konfiguration von Geräten mit Junos OS finden Sie im Junos PyEZ-Entwicklerhandbuch.

Ändern der Konfiguration mithilfe von Ereignisskripts auf Geräten, auf denen aktives Nonstop-Routing aktiviert ist

Wenn Sie eine Ereignisrichtlinie verwenden, um die Konfiguration auf einem Gerät mit dualer Routing-Engine zu ändern, auf dem Nonstop Active Routing (NSR) aktiviert ist, wird empfohlen, dass die Ereignisrichtlinie ein Ereignisskript aufruft, das die aktualisierte Konfiguration nur auf der primären Routing-Engine festschreibt. Dadurch wird sichergestellt, dass die Aktualisierung der Konfiguration und der anschließende Commitvorgang auf beiden Routingmodulen erfolgreich sind. Die Konfiguration wird automatisch mit der Backup-Routing-Engine synchronisiert, da die commit synchronize Anweisung auf Hierarchieebene [edit system] als Teil der NSR-Konfiguration konfiguriert wird. Wenn Sie die change-configuration Anweisung verwenden, um die Konfiguration zu ändern, oder wenn das Ereignisskript die Änderung nicht nur für die primäre Routing-Engine festschreibt, können beide Routingmodule gleichzeitig versuchen, eine Sperre für die Konfigurationsdatenbank abzurufen, wodurch ein oder beide Commits fehlschlagen.

Um ein Ereignisskript zu erstellen, das die Konfiguration nur auf der primären Routing-Engine konfiguriert und festschreibt, schließen Sie Logik ein, die testet, ob die aktuelle Routing-Engine die primäre Routing-Engine ist. Wenn die aktuelle Routing-Engine die primäre Routing-Engine ist, aktualisieren Sie die Konfiguration, und bestätigen Sie sie.

Das folgende SLAX-Ereignisskript stellt eine Verbindung mit dem lokalen Gerät her und prüft, ob die aktuelle Routing-Engine die primäre Routing-Engine ist. Wenn es sich um die primäre Routing-Engine handelt, aktualisiert das Skript die Konfiguration und führt dann einen Commit für sie durch.

In ähnlicher Weise stellt das folgende Python-Ereignisskript eine Verbindung mit dem lokalen Gerät her und aktualisiert und führt nur dann einen Commit für die Konfiguration durch, wenn die aktuelle Routing-Engine die primäre Routing-Engine ist: