Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exemple : Personnaliser la sortie des interfaces show terse Command à l’aide d’un script Op

Cet exemple utilise un script op pour personnaliser la sortie de la show interfaces terse commande. Une explication ligne par ligne du script XSLT est fournie.

Exigences

Cet exemple utilise un équipement exécutant Junos OS.

Présentation et script op

Par défaut, la configuration de la show interfaces terse commande ressemble à ceci :

Dans Junos XML, les champs de sortie sont représentés comme suit :

Syntaxe XSLT

Le script suivant personnalise la sortie de la show interfaces terse commande. Une explication ligne par ligne du script est fournie.

Explication ligne par ligne

Les lignes 1 à 7, les lignes 20 et les lignes 105 et 106 sont la plaque de chaudron que vous incluez dans chaque script op. Pour plus d’informations, consultez la plaque de chaudron requise pour les scripts op.

Les lignes 8 à 17 déclarent une variable appelée arguments, contenant deux arguments au script : interface et protocol. Cette déclaration de variable génère interface et protocol doit apparaître dans l’interface de ligne de commande (CLI) comme arguments disponibles pour le script.

Les lignes 18 et 19 déclarent deux paramètres au script, correspondant aux arguments créés dans les lignes 8 à 17. Les noms des paramètres doivent correspondre exactement aux noms des arguments.

Les lignes 20 à 31 déclarent une variable nommée rpc. La show interfaces terse commande est affectée à la rpc variable. Si vous incluez l’argument interface lors de l’exécution du script, la valeur de l’argument (le nom de l’interface) est transmise au script.

La ligne 32 déclare une variable nommée out et lui applique l’exécution de la rpc variable (show interfaces terse commande).

La ligne 33 spécifie que le niveau de sortie de la show interfaces commande en cours de modification est terse (par opposition à extensive, detailet ainsi de suite).

Les lignes 34 à 39 spécifient que si vous incluez l’argument protocol lorsque vous exécutez le script et si la valeur de protocole que vous spécifiez est inet, inet6ou mplstnp, le intf modèle est appliqué à chaque instance de ce type de protocole dans la sortie.

Les lignes 40 à 47 spécifient que si vous incluez l’argument protocol lors de l’exécution du script et si la valeur de protocole que vous spécifiez est autre que inet, inet6, mplsou tnp, un message d’erreur est généré.

Les lignes 48 à 52 spécifient que si vous n’incluez pas l’argument protocol lors de l’exécution du script, le intf modèle est appliqué à chaque interface logique de la sortie.

Les lignes 53 à 56 ferment les balises.

La ligne 57 ouvre le intf modèle. Ce modèle personnalise la sortie de la show interfaces terse commande.

La ligne 58 déclare une variable appelée status, dont l’objectif est de spécifier comment l’état de l’interface est signalé. Les lignes 59 à 78 contiennent une <xsl:choose> instruction qui remplit la status variable en tenant compte de tous les états possibles. Comme toujours dans XSLT, la première <xsl:when> instruction qui s’évalue comme VRAIE est exécutée, et les autres sont ignorées. Chaque <xsl:when> instruction est expliquée séparément.

Les lignes 60 à 62 spécifient qu’aucune sortie n’est générée si admin-status elle est « up » et oper-status « up ». Dans ce cas, la status variable reste vide.

Les lignes 63 à 65 spécifient que si admin-status elle est « down », la status variable contient le texte offline.

Les lignes 66 à 68 spécifient que si oper-status l’interface admin-status physique est « down », la status variable contient le texte p-offline. (../ sélectionne l’interface physique.)

Les lignes 69 à 71 spécifient que si oper-status elle est « down » et l’interface oper-status physique est « down », la status variable contient le texte p-down. (../ sélectionne l’interface physique.)

Les lignes 72 à 74 spécifient que si oper-status elle est « down », la status variable contient le texte down.

Les lignes 75 à 77 spécifient que si aucun des cas de test n’est vrai, la status variable contient oper-status et admin-status concaténée avec une barre de barre en tant que séparateur.

Les lignes 78 et 79 ferment des balises.

Les lignes 80 à 89 définissent une variable appelée desc. Une <xsl:choose> instruction remplit la variable en sélectionnant la description d’interface la plus spécifique disponible. Si une description d’interface logique est incluse dans la configuration, elle est utilisée pour remplir la desc variable. Si ce n’est pas le cas, la description de l’interface physique est utilisée. Si aucune description d’interface physique n’est incluse dans la configuration, la variable reste vide. Comme toujours dans XSLT, la première <xsl:when> instruction qui s’évalue comme VRAIE est exécutée, et les autres sont ignorées.

Le reste du script spécifie la façon dont la sortie du mode opérationnel est affichée.

Les lignes 90 et 91 spécifient que le nom de l’interface logique est affiché en premier dans la sortie.

Les lignes 92 à 94 testent si la desc variable a un nombre de caractères non nul. Si le nombre de caractères est supérieur à zéro, la description de l’interface est affichée dans l’emplacement standard du admin-status champ. (Dans la sortie standard, le admin-status champ est affiché sur la deuxième ligne.)

La ligne 95 spécifie que l’état de l’interface défini dans la status variable s’affiche ensuite.

Les lignes 96 à 103 spécifient que si vous incluez l’argument lors de l’exécution protocol du script, seules les interfaces avec ce protocole configuré sont affichées. Si vous n’incluez pas l’argument protocol , toutes les interfaces s’affichent.

Les lignes 104 à 106 ferment les balises.

Syntaxe SLAX

La version SLAX du script est la suivante :

Configuration

Procédure

Procédure étape par étape

Pour télécharger, activer et tester le script :

  1. Copiez le script XSLT ou SLAX dans un fichier texte, nommez le fichier interface.xsl ou interface.slax le cas échéant et copiez-le dans le répertoire /var/db/scripts/op/ sur l’équipement.

  2. En mode configuration, incluez l’instruction file au niveau de la [edit system scripts op] hiérarchie et interface.xsl ou interface.slax , le cas échéant.

  3. Émettez la commit and-quit commande pour valider la configuration et revenir en mode opérationnel.

  4. Exécutez le script opérationnel en publiant la commande du op interface mode opérationnel.

Vérification

Vérification de la sortie du script de validation

But

Vérifiez que le script se comporte comme prévu.

Action

Émettez les show interfaces terse commandes et op interface les commandes opérationnelles et comparez les résultats. La show interfaces terse commande affiche la sortie standard. La op interface commande affiche la sortie personnalisée.

Émettez le op interface commandement opérationnel pour différents niveaux hiérarchiques et examinez les résultats. Par exemple :