Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Globale Parameter und Variablen in Junos OS-Automatisierungsskripten

Junos OS liefert automatisch Eingaben für Automatisierungsskripts, wenn diese ausgeführt werden. Das Skript kann auf diese Eingabe verweisen, die gerätespezifische Informationen über die Skriptausführungsumgebung enthält, z. B. den Gerätehostnamen, den Skripttyp und den Benutzer, der das Skript ausführt. Diese Informationen sind nützlich für die Erstellung von Skripts, die auf eine Vielzahl komplexer Szenarien reagieren.

SLAX- und XSLT-Skripte, die die Datei junos.xsl importieren, können diese Informationen mithilfe der $junos-context globalen Variablen referenzieren, bei der es sich um einen Knotensatz handelt. Die Importdatei junos.xsl deklariert außerdem mehrere vordefinierte globale Parameter, die es den Skripten ermöglichen, einfacher auf eine Teilmenge dieser Informationen zu verweisen. Python-Skripte können über das Wörterbuch, das junos.Junos_Context in das Skript importiert werden muss, auf diese Informationen verweisen.

Um die vordefinierten Parameter oder die globale Variable in SLAX- und XSLT-Skripten verwenden zu können, müssen Sie die Datei junos.xsl importieren, indem Sie das <xsl:import> Tag in die Stylesheet-Deklaration eines XSLT-Skripts einfügen oder indem Sie die import Anweisung in ein SLAX-Skript einfügen und den Speicherort der Datei junos.xsl angeben, wie im folgenden Beispielcode gezeigt:

XSLT-Syntax

SLAX-Syntax

Python

Um auf die Informationen in Python-Skripten zu verweisen, importieren Sie das Junos_Context Wörterbuch.

Die Skripteingabe wird in den folgenden Abschnitten ausführlich beschrieben:

Globale Parameter in SLAX- und XSLT-Skripten verfügbar

Mehrere vordefinierte globale Parameter stehen für die Verwendung in SLAX- und XSLT-Automatisierungsskripten zur Verfügung, die die Datei junos.xsl importieren. Die Parameter geben Auskunft über die Junos OS-Umgebung. In Tabelle 1 werden die integrierten Argumente beschrieben.

Tabelle 1: Vordefinierte Parameter in SLAX- und XSLT-Skripten

Name

Beschreibung

Beispiel

$hostname

Hostname des lokalen Geräts

Tokio

$localtime

Ortszeit, zu der das Skript ausgeführt wird

Fri Dec 10 11:42:21 2010

$localtime-ISO

Ortszeit im ISO-Format, wenn das Skript ausgeführt wird

2010-12-10 11:42:21 PST

$product

Modell des lokalen Geräts

M10i

$script

Dateiname des ausführenden Skripts

test.slax

$user

Lokaler Name des Benutzers, der das Skript ausführt

wurzel

Die vordefinierten globalen Parameter sind in der Datei junos.xsl deklariert. Sie müssen diese Parameter nicht in einem Skript deklarieren, um sie verwenden zu können. Greifen Sie auf den Wert der globalen Parameter in einem Skript zu, indem Sie dem Parameternamen das Dollarzeichen ($) voranstellen, wie im folgenden Beispiel gezeigt:

SLAX-Syntax:

XSLT-Syntax:

Globale Variable, die in Automatisierungsskripten verfügbar ist

Commit-, Ereignis- und Op-Skripte können auf bestimmte Umgebungsinformationen zugreifen, die dem Skript bei der Ausführung zur Verfügung gestellt werden. Um auf diese Informationen zugreifen zu können, müssen Python-Skripte das junos.Junos_Context Wörterbuch importieren und darauf verweisen, und SLAX- und XSLT-Skripte, die die Datei junos.xsl importieren, können auf die $junos-context globale Variable verweisen. $junos-context und Junos_Context enthalten identische Informationen, jedoch in einem Format, das für die jeweilige Skriptsprache geeignet ist.

Bei der $junos-context Variablen handelt es sich um eine Knotenmenge, die den <junos-context> Knoten und die folgende Hierarchie enthält, die in der Quellstruktur aller Skripts enthalten und in diese eingebettet ist:

Darüber hinaus sind je nach Art des ausgeführten Skripts skriptspezifische Informationen verfügbar. Bei op-Skripten ist das <op-context> Element auch in der Quellstruktur enthalten, die für ein op-Skript bereitgestellt wird:

Bei Commit-Skripten ist das <commit-context> Element auch in der Quellstruktur enthalten, die für ein Commit-Skript bereitgestellt wird:

Tabelle 2 identifiziert jeden Knoten des $junos-context variablen Knotensatzes, enthält eine kurze Beschreibung des Knotens und enthält Beispiele für Werte für alle Elemente, die nicht als leeres Tag in ein Skript eingegeben werden.

Tabelle 2: Globaler Variablen-$junos-Kontext, der für SLAX- und XSLT-Skripte verfügbar ist

Übergeordneter Knoten

Knoten

Beschreibung

Beispielinhalte

<junos-context>

<Gehäuse>

Gibt an, ob das Skript auf einer Komponente einer Routingmatrix, der Root System Domain (RSD) oder einer Protected System Domain (PSD) ausgeführt wird

scc, lcc (TX-Matrix)psd, rsd (JCS)andere

<Hostname>

Hostname des lokalen Geräts

Tokio

<Ortszeit>

Ortszeit, zu der das Skript ausgeführt wird

Fri Dec 10 11:42:21 2010

<localtime-iso>

Ortszeit im ISO-Format, wenn das Skript ausgeführt wird

2010-12-10 11:42:21 PST

<pid>

cscript-Prozess-ID

5257

<Produkt>

Modell des lokalen Geräts

M10i

<Re-Master/>

Leeres Element enthalten, wenn das Skript auf der primären Routing-Engine ausgeführt wird

 

<Name der Routing-Engine>

Routing-Engine, auf der das Skript ausgeführt wird

re0

<script-type>

Typ des ausgeführten Skripts

Op

<tty>

TTY der Sitzung des Benutzers

/dev/ttyp1

<junos-context> <user-context>

<Klassenname>

Anmeldeklasse des Benutzers, der das Skript ausführt

Superuser

<Login-Name>

Anmeldename des Benutzers, der das Skript ausführt. Für den AAA-Zugriff ist dies der Benutzername von RADIUS/TACACS.

jsmith

<uid>

Benutzer-ID-Nummer des Benutzers, der das Skript ausführt, wie in der Gerätekonfiguration definiert

2999

<Benutzer>

Lokaler Name des Benutzers, der das Skript ausführt. Junos OS verwendet den lokalen Namen für die Authentifizierung. Sie kann sich von der für die login-name AAA-Authentifizierung verwendeten unterscheiden.

wurzel

<junos-context> <op-context>

(Nur Op-Skripte)

<via-URL>

Leeres Element, das enthalten ist, wenn das Remote-Op-Skript mit dem op url Befehl

 

<junos-context> <commit-context>

(nur Commit-Skripte)

<commit-boot/>

Leeres Element, das enthalten ist, wenn der Commit beim Booten auftritt

 

<Commit-Check/>

Leeres Element, das beim Ausführen von a commit check enthalten ist

 

<Commit-Kommentar>

Benutzerkommentar zum Commit

Verpflichten Sie sich, das Weiterleitungsproblem zu beheben

<commit-confirm/>

Leeres Element, das beim Ausführen von a commit confirmed enthalten ist

 

<Commit-Sync/>

Leeres Element, das beim Ausführen von a commit synchronize enthalten ist

 

<Datenbankpfad/>

Element, das den Speicherort der Konfiguration des Kandidaten vor der Vererbung der Sitzung angibt. Bei normalen Konfigurationssitzungen ist der Wert des Elements der Speicherort der normalen Kandidatendatenbank. Bei privaten Konfigurationssitzungen ist der Wert des Elements der Speicherort der privaten Kandidatendatenbank. Wenn das <get-configuration> database-path Attribut auf diesen Wert festgelegt ist, ruft das Commit-Skript die entsprechende Konfiguration des Kandidaten vor der Vererbung ab.

 

Bei der $junos-context Variablen handelt es sich um eine Knotenmenge. Daher können Sie in einem Skript auf die untergeordneten Elemente zugreifen, indem Sie den richtigen XPath-Ausdruck einfügen. Das folgende SLAX-Commit-Skript schreibt eine Meldung in die Systemprotokolldatei, wenn der Commit während des ersten Bootvorgangs ausgeführt wird. Der Nachricht wird ein Einrichtungswert von daemon und ein Schweregradwert von zugewiesen.info Weitere Informationen finden Sie unter syslog().

Python-Skripte müssen das Junos_Context Wörterbuch aus dem junos Modul importieren, um auf die Umgebungsinformationen zugreifen zu können, die den Skripten zur Verfügung gestellt werden. Die Namen der Schlüssel im Junos_Context Wörterbuch sind identisch mit den Namen der Knoten, die $junos-context in Tabelle 2 aufgeführt sind. Knoten mit untergeordneten Elementen, die unter dem junos-context Knoten verschachtelt sind, z. B user-context. , op-contextund commit-context Elementen in Junos_Contextzugeordnet sind, wobei der Schlüssel der Knotenname und der Wert ein Wörterbuch der untergeordneten Elemente des Knotens ist. Zum Beispiel:

In der folgenden Beispielausgabe wird das Junos_Context Wörterbuch für ein lokal ausgeführtes op-Skript angezeigt. Beachten Sie, dass die op-Skripteingabe den op-context Schlüssel enthält, der in diesem Szenario leer ist.

In der folgenden Beispielausgabe wird das Junos_Context Wörterbuch für ein Commitskript angezeigt, das während eines commit check Vorgangs ausgeführt wurde. Beachten Sie, dass die Eingabe des Commit-Skripts den commit-context Schlüssel enthält.

Um auf einzelne Werte im Wörterbuch zuzugreifen, geben Sie den Schlüsselnamen an. Zum Beispiel: