Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Übersicht über das Generieren von persistenten oder vorübergehenden Konfigurationsänderungen mithilfe von Commit-Skripten

Commit-Skripte für Junos OS erzwingen benutzerdefinierte Konfigurationsregeln. Wenn eine Kandidatenkonfiguration Anweisungen enthält, von denen Sie entschieden haben, dass sie nicht in Ihrer Konfiguration enthalten sein dürfen, oder wenn die Kandidatenkonfiguration Anweisungen auslässt, die Sie als erforderlich erachtet haben, können Commit-Skripte die Konfiguration automatisch ändern und dadurch das Problem beheben.

Unterschiede zwischen persistenten und vorübergehenden Änderungen

Konfigurationsänderungen, die von Commit-Skripten vorgenommen werden, können persistent oder vorübergehend sein.

Eine dauerhafte Änderung verbleibt in der Kandidatenkonfiguration und wirkt sich auf Routing-Vorgänge aus, bis Sie sie explizit löschen, auch wenn Sie anschließend das Commit-Skript, das die Änderung generiert hat, entfernen oder deaktivieren und den commit Befehl erneut absetzen. Mit anderen Worten, das Entfernen des Commit-Skripts führt nicht dazu, dass eine dauerhafte Änderung aus der Konfiguration entfernt wird.

Eine vorübergehende Änderung wird dagegen in der Checkout-Konfiguration vorgenommen, nicht jedoch in der Kandidatenkonfiguration. Bei der Checkout-Konfiguration handelt es sich um die Konfigurationsdatenbank, die auf die standardmäßige Junos OS-Syntax überprüft wird, kurz bevor sie kopiert wird, um die aktive Konfiguration auf dem Gerät zu werden. Wenn Sie anschließend das Commit-Skript, das die Änderung vorgenommen hat, entfernen oder deaktivieren und den commit Befehl erneut absetzen, wird die Änderung nicht mehr an der Checkout-Konfiguration vorgenommen und wirkt sich daher nicht auf die aktive Konfiguration aus. Mit anderen Worten, durch das Entfernen des Commit-Skripts wird eine vorübergehende Änderung effektiv aus der Konfiguration entfernt.

Eine häufige Verwendung für vorübergehende Änderungen besteht darin, die Notwendigkeit zu beseitigen, bekannte Richtlinien wiederholt zu konfigurieren und anzuzeigen, sodass diese Richtlinien implizit erzwungen werden können. Wenn beispielsweise MPLS auf jeder Schnittstelle mit aktiviertem ISO-Protokoll (International Organization for Standardization) aktiviert werden muss, kann die Änderung vorübergehend sein, sodass die sich wiederholenden oder redundanten Konfigurationsdaten nicht in der Kandidatenkonfiguration übernommen oder angezeigt werden müssen. Darüber hinaus können Sie mit vorübergehenden Änderungen Skriptanweisungen schreiben, die die Änderung nur anwenden, wenn eine Reihe von Bedingungen erfüllt ist.

Persistente und vorübergehende Änderungen werden auf die gleiche Weise in die Konfiguration geladen, wie der load replace Konfigurationsmodusbefehl eine eingehende Konfiguration lädt. Beim Generieren einer persistenten oder vorübergehenden Änderung bewirkt das Hinzufügen des replace="replace" Attributs zu einem Konfigurationselement das gleiche Verhalten wie ein replace: Tag in einem load replace Vorgang.

Standardmäßig führt Junos OS die eingehende Konfiguration und die Kandidatenkonfiguration zusammen. Neue Anweisungen und Hierarchien werden hinzugefügt, und widersprüchliche Anweisungen werden überschrieben. Wenn Sie beim Generieren einer dauerhaften oder vorübergehenden Änderung das Attribut zu einem Konfigurationselement hinzufügen, ersetzt Junos OS das vorhandene Konfigurationselement durch das replace="replace" eingehende Konfigurationselement. Wenn das Attribut zu einem Konfigurationselement hinzugefügt wird, aber in der aktuellen Konfiguration kein Element mit demselben Namen vorhanden ist, wird das replace="replace" eingehende Konfigurationselement der Konfiguration hinzugefügt. Elemente, die nicht über das replace Attribut verfügen, werden in der Konfiguration zusammengeführt.

Persistente und vorübergehende Änderungen werden geladen, bevor die standardmäßigen Junos OS-Validierungsprüfungen durchgeführt werden. Das bedeutet, dass alle Konfigurationsänderungen, die von einem Commit-Skript vorgenommen werden, auf korrekte Syntax überprüft werden. Wenn die Syntax korrekt ist, wird die neue Konfiguration zur aktiven, betriebsbereiten Gerätekonfiguration.

Geschützte Elemente in der Konfigurationshierarchie können weder durch eine dauerhafte noch durch eine vorübergehende Änderung geändert oder gelöscht werden. Wenn ein Commit-Skript versucht, eine geschützte Anweisung oder Hierarchie zu ändern oder zu löschen, gibt Junos OS eine Warnung aus, dass die Änderung nicht vorgenommen werden kann, und fährt mit dem Commit fort.

Persistente und vorübergehende Änderungen weisen mehrere wichtige Unterschiede auf, wie in Tabelle 1 beschrieben.

Tabelle 1: Unterschiede zwischen persistenten und vorübergehenden Änderungen

Dauerhafte Änderungen

Vorübergehende Änderungen

Sie können eine dauerhafte Änderung in Commit-Skripten darstellen, indem Sie den content Parameter in Verbindung mit einem tag Parameter verwenden, der innerhalb eines Aufrufs der Vorlage in SLAX- und XSLT-Skripten oder eines Aufrufs der jcs:emit-change jcs.emit_change Methode in Python-Skripten auf "change" festgelegt ist.

SLAX- und XSLT-Commit-Skripte können mithilfe des <change> Tags auch eine dauerhafte Änderung darstellen.

Sie können eine vorübergehende Änderung in Commit-Skripten mit dem Parameter in Verbindung mit dem content Parameter a tag darstellen, der innerhalb eines Aufrufs der Vorlage in SLAX- und XSLT-Skripten oder eines Aufrufs der jcs:emit-change jcs.emit_change Methode in Python-Skripten auf "transient-change" gesetzt ist.

SLAX- und XSLT-Commit-Skripte können mithilfe des <transient-change> Tags auch eine vorübergehende Änderung darstellen.

Sie können dauerhafte Änderungen verwenden, um beliebige Junos XML-Protokolloperationen auszuführen, z. B. Abschnitte der Konfiguration aktivieren, deaktivieren, löschen, einfügen (neu anordnen), kommentieren (kommentieren) und ersetzen.

Wie bei dauerhaften Änderungen können Sie vorübergehende Änderungen verwenden, um beliebige Junos XML-Protokollvorgänge auszuführen. Einige Vorgänge des Junos XML-Protokolls sind jedoch bei vorübergehenden Änderungen, wie z. B. dem Generieren von Kommentaren und inaktiven Einstellungen, nicht sinnvoll.

Persistente Änderungen werden immer während des Commit-Prozesses geladen, wenn keine Fehler durch Commit-Skripts oder durch die standardmäßige Gültigkeitsprüfung von Junos OS generiert werden.

Damit vorübergehende Änderungen geladen werden können, müssen Sie die allow-transients Anweisung auf Hierarchieebene [edit system scripts commit] einschließen. Wenn Sie ein Commit-Skript aktivieren, das vorübergehende Änderungen generiert, und Sie die Anweisung nicht in die Konfiguration aufnehmen, generiert die allow-transients CLI eine Fehlermeldung, und der Commit-Vorgang schlägt fehl. Sie können kein Commit-Skript verwenden, um die allow-transients Anweisung zu generieren.

Wie dauerhafte Änderungen müssen auch vorübergehende Änderungen die standardmäßige Gültigkeitsprüfung von Junos OS bestehen.

Persistente Änderungen funktionieren wie der load replace Konfigurationsmodusbefehl, und die Änderung wird der Kandidatenkonfiguration hinzugefügt.

Wenn Sie beim Generieren einer dauerhaften Änderung das Attribut zu einem Konfigurationselement hinzufügen, ersetzt Junos OS das vorhandene Element in der Kandidatenkonfiguration durch das replace="replace" eingehende Konfigurationselement. Wenn in der Kandidatenkonfiguration kein Element mit demselben Namen vorhanden ist, wird das eingehende Konfigurationselement der Konfiguration hinzugefügt. Elemente, die nicht über das replace Attribut verfügen, werden in der Konfiguration zusammengeführt.

Vorübergehende Änderungen funktionieren wie der load replace Konfigurationsmodusbefehl, und die Änderung wird der Checkout-Konfiguration hinzugefügt.

Wenn Sie beim Generieren einer vorübergehenden Änderung das Attribut zu einem Konfigurationselement hinzufügen, ersetzt Junos OS das vorhandene Element in der Checkout-Konfiguration durch das replace="replace" eingehende Konfigurationselement. Wenn in der Checkout-Konfiguration kein Element mit demselben Namen vorhanden ist, wird das eingehende Konfigurationselement der Konfiguration hinzugefügt. Elemente, die nicht über das replace Attribut verfügen, werden in der Konfiguration zusammengeführt.

Vorübergehende Änderungen werden nicht in die Kandidatenkonfiguration kopiert. Aus diesem Grund werden vorübergehende Änderungen nicht in der Konfiguration gespeichert, wenn das zugehörige Commit-Skript gelöscht oder deaktiviert wird.

Nachdem eine dauerhafte Änderung festgeschrieben wurde, behandelt die Software sie wie eine Änderung, die Sie vornehmen, indem Sie die Kandidatenkonfiguration direkt bearbeiten und bestätigen.

Nachdem die persistenten Änderungen in die Kandidatenkonfiguration kopiert wurden, werden sie in die Checkout-Konfiguration kopiert. Wenn  die Änderungen die standardmäßigen Gültigkeitsprüfungen von Junos OS bestehen, werden die Änderungen an die Komponenten des Switches, des Routers oder des Sicherheitsgeräts weitergegeben.

Jedes Mal, wenn eine vorübergehende Änderung vorgenommen wird, aktualisiert die Software die Checkout-Konfigurationsdatenbank. Nachdem die vorübergehenden Änderungen die standardmäßigen Gültigkeitsprüfungen von Junos OS bestanden haben, werden die Änderungen an die Gerätekomponenten weitergegeben.

Nachdem Sie ein Skript übergeben haben, das die Generierung einer persistenten Änderung bewirkt, können Sie die persistente Änderung anzeigen, indem Sie den show Befehl configuration mode eingeben:

user@host# show

Dieser Befehl zeigt nur persistente Änderungen an, keine vorübergehenden Änderungen.

Nachdem Sie ein Skript übergeben haben, das die Generierung einer vorübergehenden Änderung bewirkt, können Sie die vorübergehende Änderung anzeigen, indem Sie den show | display commit-scripts Befehl configuration mode eingeben:

user@host# show | display commit-scripts

Dieser Befehl zeigt sowohl persistente als auch vorübergehende Änderungen an.

Persistente Änderungen müssen den Regeln für den benutzerdefinierten Konfigurationsentwurf entsprechen, die durch Commit-Skripte vorgegeben werden.

Dies wird erst nach einem zweiten Commit-Vorgang deutlich, da persistente Änderungen nicht von den Commit-Skriptregeln für den aktuellen Commit-Vorgang ausgewertet werden. Der nachfolgende Commit-Vorgang schlägt fehl, wenn die persistenten Änderungen nicht den Regeln entsprechen, die von den Commit-Skripts auferlegt werden, die während des ersten Commit-Vorgangs konfiguriert wurden.

Vorübergehende Änderungen werden nie von Ihren benutzerdefinierten Regeln getestet und müssen diesen auch nicht entsprechen. Dies wird durch die Reihenfolge der Vorgänge im Junos OS-Commit-Modell verursacht, die unter Commit-Skripts und Junos OS-Commit-Modell ausführlich erläutert wird.

Eine dauerhafte Änderung bleibt in der Konfiguration auch dann erhalten, wenn Sie die Commit-Skriptanweisungen, die die Änderung generiert haben, löschen, deaktivieren oder deaktivieren.

Wenn Sie die Commit-Skriptanweisungen, die eine vorübergehende Änderung generieren, löschen, deaktivieren oder deaktivieren, wird die Änderung nach dem nächsten Commit-Vorgang aus der Konfiguration entfernt. Kurz gesagt, wenn die zugehörigen Anweisungen oder das gesamte Commit-Skript entfernt werden, wird auch die vorübergehende Änderung entfernt.

Wie bei der direkten CLI-Konfiguration können Sie eine dauerhafte Änderung entfernen, indem Sie zu einer vorherigen Konfiguration zurückkehren, die die Änderung nicht enthielt, und den commit Befehl ausgeben. Wenn Sie jedoch das zugehörige Commit-Skript nicht deaktivieren oder deaktivieren und das Problem, das ursprünglich zum Generieren der Änderung geführt hat, weiterhin besteht, wird die Änderung automatisch neu generiert, wenn Sie einen anderen commit Befehl ausführen.

Sie können eine vorübergehende Änderung nicht entfernen, indem Sie zu einer vorherigen Konfiguration zurückkehren.

Sie können dauerhafte Änderungen direkt ändern, indem Sie die Konfiguration mithilfe der CLI bearbeiten.

Sie können eine vorübergehende Änderung nicht direkt mithilfe der Junos OS CLI ändern oder löschen, da die Änderung nicht in der Kandidatenkonfiguration enthalten ist.

Um den Inhalt einer vorübergehenden Änderung zu ändern, müssen Sie die Anweisungen im Commit-Skript ändern, das die  vorübergehende Änderung generiert.

Zusammenspiel von Konfigurationsänderungen und Konfigurationsgruppen

Jede Konfigurationsänderung, die Sie durch direktes Bearbeiten der Konfiguration über die Befehlszeilenschnittstelle (CLI) des Betriebssystems vornehmen können, kann auch von einem Commit-Skript als dauerhafte oder vorübergehende Änderung generiert werden. Dazu gehören Werte, die auf einer bestimmten Hierarchieebene oder in Konfigurationsgruppen angegeben sind. Wie bei der direkten CLI-Konfiguration überschreiben die im Ziel angegebenen Werte die von einer Konfigurationsgruppe geerbten Werte. Das Ziel ist die Anweisung, auf die Sie eine Konfigurationsgruppe anwenden, indem Sie die apply-groups Anweisung einschließen.

Wenn Sie persistente oder vorübergehende Änderungen als zu einer Konfigurationsgruppe gehörend definieren, werden die Konfigurationsgruppen in der Reihenfolge angewendet, die Sie in den apply-groups Anweisungen angeben, die Sie auf jeder Hierarchieebene außer der obersten Ebene einschließen können. Sie können die Vererbung einer Konfigurationsgruppe auch deaktivieren, indem Sie die apply-groups-except Anweisung auf einer beliebigen Hierarchieebene außer der obersten Ebene einfügen.

VORSICHT:

Jedes Commit-Skript überprüft die Ansicht nach der Vererbung der Konfiguration. Wenn eine Kandidatenkonfiguration eine Konfigurationsgruppe enthält, seien Sie vorsichtig, wenn Sie ein Commit-Skript verwenden, um die zugehörige Zielkonfiguration zu ändern, da dies die beabsichtigte Vererbung von der Konfigurationsgruppe ändern könnte.

Seien Sie auch vorsichtig, wenn Sie ein Commit-Skript verwenden, um eine Konfigurationsgruppe zu ändern, da die Konfigurationsgruppe möglicherweise von einer Anwendung generiert wird, die bei jedem Commit-Vorgang einen load replace Vorgang für die Gruppe ausführt.

Weitere Informationen zu Konfigurationsgruppen finden Sie im CLI-Benutzerhandbuch .

Tag-Elemente und Vorlagen zum Generieren von Änderungen

Um persistente oder vorübergehende Änderungen in Commit-Skripten zu generieren, können SLAX- und XSLT-Skripte die Vorlage und Python-Skripte die jcs:emit-change jcs.emit_change Methode verwenden. Die jcs:emit-change Vorlage und jcs.emit_change die Methode enthalten <change> implizit XML-Elemente <transient-change> . SLAX- und XSLT-Skripte können auch Änderungen generieren, indem sie die <change> Elemente und <transient-change> direkt in das Commit-Skript einfügen. Wenn Sie die jcs:emit-change Vorlage in SLAX- und XSLT-Skripten verwenden, können Sie den hierarchischen Kontext der Änderung einmal statt mehrmals festlegen. In Python-Skripts erfordert die Methode, dass die Konfigurationsdaten für die angeforderte Änderung den vollständigen Konfigurationspfad enthalten, der alle Ebenen der Konfigurationshierarchie darstellt, die jcs.emit_change als XML-Zeichenfolge formatiert sind.

Die <change> and-Elemente <transient-change> ähneln dem Vorgang, der <load-configuration> durch das Junos XML-Verwaltungsprotokoll definiert ist. Der mögliche Inhalt der <change> <transient-change> und-Elemente ist identisch mit dem Inhalt des Tag-Elements, das <configuration> im Junos XML-Protokollvorgang <load-configuration>verwendet wird. Ausführliche Informationen zu diesem <load-configuration> Element finden Sie im Entwicklerhandbuch für das Junos XML Management Protocol .