Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Créer une syntaxe de configuration personnalisée avec les macros de script de validation

Les macros de script de validation vous permettent de créer une syntaxe de configuration personnalisée et de l’étendre à des instructions de configuration Junos OS standard. Votre syntaxe personnalisée sert d’entrée à un script de validation. Le script de validation est la syntaxe de configuration junos OS standard, comme illustré en figure 1. Les instructions Junos OS standard sont ajoutées à la configuration pour entraîner les modifications opérationnelles prévues.

Figure 1 : entrées et sorties Macro Input and Output macro

Les macros utilisent des éléments de modification persistants ou transitoires pour étendre votre syntaxe personnalisée en instructions de configuration Junos OS standard. Si vous utilisez des modifications persistantes, la syntaxe personnalisée et la syntaxe Junos OS standard apparaissent dans la configuration du candidat. Si vous utilisez des modifications transitoires, la syntaxe personnalisée apparaît dans la configuration du candidat et la syntaxe Junos OS standard est copiée dans la configuration de paiement uniquement.

Cette section aborde les sujets suivants :

Création d’une syntaxe personnalisée

Les macros fonctionnent en localisant apply-macro les déclarations dans la configuration du candidat et en utilisant les valeurs spécifiées dans l’instruction apply-macro comme paramètres à un ensemble d’instructions définies dans un script de validation. En effet, votre syntaxe de configuration personnalisée sert un double objectif. La syntaxe vous permet de simplifier vos tâches de configuration et fournit au script les données nécessaires à la création d’une configuration complexe.

Pour entrer une syntaxe personnalisée, vous incluez l’instruction apply-macro à n’importe quel niveau hiérarchique et spécifiez toutes les données que vous souhaitez dans l’instruction apply-macro , par exemple :

Vous pouvez inclure l’instruction apply-macro à n’importe quel niveau de la hiérarchie de configuration. En ce sens, l’énoncé apply-macro est similaire à l’énoncé apply-groups . Chaque apply-macro instruction doit être nommée de manière unique, par rapport aux autres apply-macro déclarations du même niveau hiérarchique.

Une apply-macro instruction peut contenir un ensemble de paramètres avec des valeurs facultatives. Le script de validation correspondant peut faire référence au nom de la macro, à ses paramètres ou aux valeurs des paramètres. Lorsque le script inspecte la configuration et trouve les données, il effectue les actions spécifiées par la modification persistante ou transitoire correspondante.

Par exemple, compte tenu de la strophe de configuration suivante, vous pouvez écrire des instructions de script pour générer une configuration standard basée sur le nom du paramètre :

L’instruction de programmation suivante <xsl:for-each> trouve les apply-macro déclarations au niveau de la [edit protocols mpls] hiérarchie qui contiennent un paramètre nommé color:

L’instruction suivante crée une variable nommée color et attribue à la variable la valeur du color paramètre, qui est dans ce cas blue:

L’instruction suivante ajoute l’instruction admin-groups à la configuration et attribue la valeur de la color variable au nom du groupe :

Les instructions de configuration qui en résultent sont les suivantes :

<>étélément

Dans le rendu XML de la syntaxe personnalisée dans une apply-macro instruction, les paramètres et leurs valeurs sont contenus dans <name> et <value> des éléments, respectivement. Les <name> éléments sont <value> des enfants frères et soeurs de l’élément <data> . Par exemple, l’instruction apply-macro blue-type-lsp contient six paramètres, comme suit :

Les paramètres et les valeurs sont rendus dans les éléments de balise XML Junos comme suit :

Lorsque vous écrivez des macros de script de validation, vous pouvez extraire et manipuler les paramètres contenus dans les instructions en apply-macro vous référant au <data>, <name>et aux <value> éléments.

Dans l’exemple suivant, l’expression XPath de l’attribut select extrait le texte contenu dans l’élément <value> qui est un enfant d’un <data> élément qui contient également un <name> élément enfant avec le texte color. La déclaration de variable attribue le texte de l’élément <value> à une variable nommée color.

L’équivalent SLAX est :

L’équivalent Python, qui suppose qu’il element a sélectionné un apply-macro élément, est :

Extension de la syntaxe personnalisée

Dans le script de validation correspondant, vous incluez une ou plusieurs instructions de programmation qui inspectent la configuration de l’instruction apply-macro à un niveau hiérarchique spécifié. Vous pouvez également utiliser l’expression data/name pour sélectionner un paramètre dans l’instruction apply-macro .

Par exemple, l’instruction de programmation XSLT suivante sélectionne chaque apply-macro instruction qui contient le color paramètre et qui apparaît au niveau de la [edit protocols mpls] hiérarchie :

L’équivalent SLAX est :

L’équivalent Python, qui s’étend sur plusieurs lignes pour la lisibilité, est :

Lors de l’extension des macros, une instruction de programmation particulièrement utile dans les scripts XSLT est l’instruction <xsl:value-of> . Cette instruction sélectionne une valeur de paramètre et l’utilise pour créer des valeurs d’option pour les instructions Junos OS. Par exemple, l’instruction suivante concaténe la valeur de la color variable, du texte -lsp-et du nœud de contexte actuel (représenté par " .) pour créer un nom pour un LSP.

SLAX utilise le trait de soulignement (_) pour concaténer des valeurs.

Lorsque le script comprend des instructions pour trouver les données nécessaires, vous pouvez fournir du contenu pour une modification persistante ou transitoire qui utilise les données pour construire une configuration Junos OS standard.

La modification transitoire suivante crée un groupe d’administration et ajoute l’instruction label-switched-path à la configuration. Le chemin de commutation d’étiquettes se voit attribuer un nom qui concatène la valeur de la color variable, du texte -lsp-et de l’adresse IP actuellement sélectionnée, représentée par le point («. »). La modification transitoire ajoute également l’instruction to et attribue l’adresse IP actuellement sélectionnée. Enfin, la modification transitoire ajoute l’instruction admin-group include-any et attribue la valeur de la color variable.

L’équivalent SLAX est :

De même dans Python :

Note:

L’exemple illustré ici est partiel. Pour obtenir un exemple complet, voir Exemple : création d’une syntaxe de configuration personnalisée avec des macros de script de validation.

Une fois la configuration engagée, le script s’exécute, et la configuration complète qui en résulte ressemble à ceci :

L’exemple précédent montre comment vous pouvez utiliser une syntaxe personnalisée simplifiée pour configurer des chemins de commutation d’étiquettes (LSP). Si la conception de votre réseau nécessite un grand nombre de LSP à configurer, l’utilisation d’une macro de script de validation peut gagner du temps, garantir la cohérence et éviter les erreurs de configuration.

Autres méthodes d’utilisation des macros

L’exemple abordé dans Création d’une syntaxe personnalisée montre une macro qui utilise des modifications transitoires pour créer l’impact opérationnel prévu. Vous pouvez également créer un script de validation qui utilise des modifications persistantes pour ajouter les déclarations Junos OS standard à la configuration du candidat et supprimer entièrement votre syntaxe personnalisée. De cette façon, un opérateur réseau qui n’est peut-être pas familier avec votre syntaxe personnalisée peut consulter le fichier de configuration et voir la configuration complète rendue sous la forme d’instructions Junos OS standard. Néanmoins, comme la macro de script de validation reste en vigueur, vous pouvez rapidement et facilement créer une configuration complexe à l’aide de votre syntaxe personnalisée.

Outre le type d’application abordé dans Créer une syntaxe personnalisée, vous pouvez également utiliser des macros pour empêcher un script de validation d’exécuter une tâche. Par exemple, un script de validation de base qui ajoute automatiquement une configuration MPLS aux interfaces peut faire une exception pour les interfaces que vous balisez explicitement comme n’ayant pas besoin de MPLS, en testant la présence d’une apply-macro instruction nommée no-mpls. Pour obtenir un exemple de cette utilisation des macros, voir Exemple : Configuration LDP de contrôle.

Vous pouvez utiliser l’instruction apply-macro comme lieu de stockage de données externes. Le script de validation n’inspecte pas l’instruction apply-macro , de sorte que l’instruction apply-macro n’a pas d’impact opérationnel sur l’équipement, mais les données peuvent être transportées dans le fichier de configuration pour être utilisées par des applications externes.