Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Paramètres et variables globaux dans les scripts d’automatisation de Junos OS

Junos OS fournit automatiquement une entrée aux scripts d’automatisation lorsqu’ils sont exécutés. Le script peut faire référence à cette entrée, qui inclut des informations spécifiques à l’appareil sur l’environnement d’exécution du script, telles que le nom d’hôte de l’appareil, le type de script et l’utilisateur exécutant le script. Ces informations sont utiles pour créer des scripts qui répondent à une variété de scénarios complexes.

Les scripts SLAX et XSLT qui importent le fichier junos.xsl peuvent référencer ces informations à l’aide de la $junos-context variable globale, qui est un ensemble de nœuds. Le fichier d’importation junos.xsl déclare également plusieurs paramètres globaux prédéfinis qui permettent aux scripts de référencer plus facilement un sous-ensemble de ces informations. Les scripts Python peuvent référencer ces informations via le junos.Junos_Context dictionnaire, qui doit être importé dans le script.

Pour utiliser les paramètres prédéfinis ou la variable globale dans les scripts SLAX et XSLT, vous devez importer le fichier junos.xsl en incluant la balise dans la <xsl:import> déclaration de feuille de style d’un script XSLT ou en incluant l’instruction import dans un script SLAX et en spécifiant l’emplacement du fichier junos.xsl , comme indiqué dans l’exemple de code suivant :

Syntaxe XSLT

Syntaxe SLAX

Python

Pour référencer les informations dans des scripts Python, importez le Junos_Context dictionnaire.

L’entrée de script est décrite en détail dans les sections suivantes :

Paramètres globaux disponibles dans les scripts SLAX et XSLT

Plusieurs paramètres globaux prédéfinis peuvent être utilisés dans les scripts d’automatisation SLAX et XSLT qui importent le fichier junos.xsl . Les paramètres fournissent des informations sur l’environnement Junos OS. Le Tableau 1 décrit les arguments intégrés.

Tableau 1 : paramètres prédéfinis disponibles dans les scripts SLAX et XSLT

Nom

Description

Exemple

$hostname

Nom d’hôte de l’équipement local

Tokyo

$localtime

Heure locale d’exécution du script

Fri Dec 10 11:42:21 2010

$localtime-ISO

Heure locale, au format ISO, au moment de l’exécution du script

2010-12-10 11:42:21 PST

$product

Modèle de l’appareil local

M10i

$script

Nom de fichier du script en cours d’exécution

test.slax

$user

Nom local de l’utilisateur exécutant le script

racine

Les paramètres globaux prédéfinis sont déclarés dans le fichier junos.xsl . Vous n’avez pas besoin de déclarer ces paramètres dans un script pour les utiliser. Accédez à la valeur des paramètres globaux d’un script en préfixant le nom du paramètre par le signe dollar ($), comme illustré dans l’exemple suivant :

Syntaxe SLAX :

Syntaxe XSLT :

Variable globale disponible dans les scripts d’automatisation

Les scripts de validation, d’événement et d’opération peuvent accéder à des informations d’environnement spécifiques qui leur sont fournies lors de l’exécution. Pour accéder à ces informations, les scripts Python doivent importer et référencer le junos.Junos_Context dictionnaire, et les scripts SLAX et XSLT qui importent le fichier junos.xsl peuvent référencer la $junos-context variable globale. et Junos_Context contiennent des informations identiques, $junos-context mais dans un format adapté au langage de script respectif.

La $junos-context variable est un ensemble de noeuds qui contient le <junos-context> noeud et la hiérarchie suivante, qui est commune et imbriquée dans l’arborescence source de tous les scripts :

De plus, des informations spécifiques au script sont disponibles en fonction du type de script exécuté. Pour les scripts op, l’élément <op-context> est également inclus dans l’arborescence source fournie à un script op :

Pour les scripts de commit, l’élément <commit-context> est également inclus dans l’arborescence source fournie à un script de commit :

Le Tableau 2 identifie chaque noeud de l’ensemble $junos-context de noeuds variables, fournit une brève description du noeud et donne des exemples de valeurs pour tous les éléments qui ne sont pas entrés dans un script en tant que balise vide.

Tableau 2 : Contexte $junos variable globale disponible pour les scripts SLAX et XSLT

Noeud parent

Noeud

Description

Exemple de contenu

<junos-context>

<châssis>

Spécifie si le script est exécuté sur un composant d’une matrice de routage, le domaine du système racine (RSD) ou un domaine du système protégé (PSD)

scc, lcc (matrice TX)psd, rsd (JCS)autres

<nom d’hôte>

Nom d’hôte de l’équipement local

Tokyo

<heure locale>

Heure locale d’exécution du script

Fri Dec 10 11:42:21 2010

<localtime-iso>

Heure locale, au format ISO, au moment de l’exécution du script

2010-12-10 11:42:21 PST

<pid>

ID de processus cscript

5257

<produit>

Modèle de l’appareil local

M10i

<re-master/>

Élément vide inclus si le script est exécuté sur le moteur de routage principal

 

<nom-moteur-de-routage>

Moteur de routage sur lequel le script est exécuté

re0

<type de script>

Type de script en cours d’exécution

Op

<tty>

TTY de la session de l’utilisateur

/dev/ttyp1

<junos-context> <contexte-utilisateur>

<nom_de-classe>

Classe de connexion de l’utilisateur exécutant le script

super-utilisateur

<nom-de-connexion>

Nom de connexion de l’utilisateur exécutant le script. Pour l’accès AAA , il s’agit du nom d’utilisateur RADIUS/TACACS.

jsmith (en anglais seulement)

<uid>

Numéro d’identification de l’utilisateur exécutant le script, tel que défini dans la configuration de l’appareil

2999

<utilisateur>

Nom local de l’utilisateur exécutant le script. Junos OS utilise le nom local pour l’authentification. Elle peut différer de celle utilisée pour l’authentification login-name AAA.

racine

<junos-context> <op-context>

(Scripts OP uniquement)

<via-URL>

Élément vide inclus si le script d’opération à distance est exécuté à l’aide de la op url commande

 

<junos-context> <commit-context>

(scripts de commit uniquement)

<commit-boot/>

Élément vide inclus lorsque le commit se produit au démarrage

 

<commit check/>

Elément vide inclus lors de l’exécution d’un commit check

 

<commit-comment>

Commentaire de l’utilisateur concernant le commit

Commit pour résoudre le problème de transfert

<commit-confirm/>

Elément vide inclus lors de l’exécution d’un commit confirmed

 

<commit-sync/>

Elément vide inclus lors de l’exécution d’un commit synchronize

 

<chemin-de-la-base/>

Elément spécifiant l’emplacement de la configuration candidate pré-héritage de la session. Pour les sessions de configuration normales, la valeur de l’élément est l’emplacement de la base de données candidate normale. Pour les sessions de configuration privées, la valeur de l’élément est l’emplacement de la base de données candidate privée. Lorsque l’attribut <get-configuration> database-path est défini sur cette valeur, le script de validation récupère la configuration candidate préalable à l’héritage correspondante.

 

La $junos-context variable est un ensemble de nœuds. Par conséquent, vous pouvez accéder aux éléments enfants tout au long d’un script en incluant l’expression XPath appropriée. Le script de validation SLAX suivant écrit un message dans le fichier journal système si la validation est effectuée lors du démarrage initial. Le message se voit attribuer une valeur d’installation de et une valeur de gravité de daemon info. Pour plus d’informations, consultez syslog().

Les scripts Python doivent importer le Junos_Context dictionnaire à partir du junos module pour accéder aux informations d’environnement fournies aux scripts. Les noms des clés dans le Junos_Context dictionnaire sont identiques aux noms des nœuds indiqués dans le $junos-context Tableau 2. Noeuds avec des éléments enfants imbriqués sous le junos-context noeud, tels que user-context, op-contextet commit-context mappés à des éléments dans Junos_Context, où la clé est le nom du noeud et la valeur est un dictionnaire des éléments enfants du noeud. Par exemple:

L’exemple de sortie suivant affiche le dictionnaire d’un Junos_Context script op qui a été exécuté localement. Notez que l’entrée du script op contient la op-context clé qui, dans ce scénario, est vide.

L’exemple de sortie suivant affiche le dictionnaire d’un Junos_Context script de validation qui a été exécuté au cours d’une commit check opération. Notez que l’entrée du script de commit contient la commit-context clé.

Pour accéder à des valeurs individuelles dans le dictionnaire, spécifiez le nom de la clé. Par exemple: