Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exemple : création d’une syntaxe de configuration personnalisée avec des macros de script de validation

Une configuration Junos OS peut contenir des apply-macro instructions avec une syntaxe de configuration personnalisée. En soi, la déclaration n’a apply-macro aucun impact opérationnel sur l’appareil. Les macros de script de commit traitent la syntaxe de configuration personnalisée et l’étendent aux instructions de configuration standard de Junos OS, qui sont ensuite ajoutées en tant que modification persistante ou transitoire. Cet exemple montre comment utiliser des macros de script de commit pour inspecter apply-macro des instructions et générer des instructions de configuration Junos OS.

Exigences

Cet exemple utilise les composants matériels et logiciels suivants :

  • Appareil exécutant Junos OS.

  • Junos OS version 16.1R3 ou ultérieure lors de l’utilisation d’un script Python.

Présentation et script de validation

Le tableau 1 présente une macro contenant une syntaxe personnalisée et l’extension correspondante de la syntaxe CLI (interface de ligne de commande) Junos OS.

Tableau 1 : exemple d’extension de la macro et de la CLI Junos OS

Syntaxe de macro personnalisée

Syntaxe de l’interface de ligne de commande Junos OS étendue

protocols {
    mpls {
        apply-macro blue-type-lsp {
            10.1.1.1;
            10.2.2.2;
            10.3.3.3;
            10.4.4.4;
            color blue;
            group-value 0;
        }
    }
}
protocols {
    mpls {
        admin-groups {
            blue 0;
        }
        label-switched-path blue-lsp-10.1.1.1 {
            to 10.1.1.1;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.2.2.2 {
            to 10.2.2.2;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.3.3.3 {
            to 10.3.3.3;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.4.4.4 {
            to 10.4.4.4;
            admin-group include-any blue;
        }
    }
}

Dans cet exemple, le processus de gestion Junos OS (mgd) inspecte la configuration à la recherche apply-macro d’instructions. Pour chaque apply-macro instruction dont le paramètre est inclus au niveau de la hiérarchie, le color script génère une modification transitoire à l’aide des données fournies dans l’instruction pour développer la [edit protocols mpls] macro dans un groupe d’administration apply-macro Junos OS standard pour les LSP.

Pour que cet exemple fonctionne, une apply-macro instruction doit être incluse au niveau de la [edit protocols mpls] hiérarchie avec un ensemble d’adresses, un et un group-value colorparamètre. Le script de validation convertit chaque adresse en configuration LSP et le script convertit le color paramètre en groupe d’administration.

Voici les instructions de script de commit qui développent la macro dans le tableau 1 et une explication ligne par ligne du script :

Syntaxe XSLT

Les lignes 1 à 8 (et les lignes 43 et 44) sont le modèle standard que vous incluez dans chaque script de commit XSLT. Par souci de concision, les lignes 1 à 8 sont omises ici.

La ligne 9 affecte le niveau hiérarchique [edit protocols mpls] à une variable appelée mpls.

La ligne 10 sélectionne chaque apply-macro instruction au niveau hiérarchique [edit protocols mpls] qui contient le color paramètre. L’exemple de configuration du tableau 1 ne contient qu’une apply-macro seule instruction. Par conséquent, cette <xsl:for-each> instruction de programmation ne prend effet qu’une seule fois.

La ligne 11 affecte la color valeur du paramètre, dans ce cas blue, à une variable appelée color.

La ligne 12 affecte la group-value valeur du paramètre, dans ce cas 0, à une variable appelée group-value.

Les lignes 13 à 15 génèrent un changement transitoire au niveau de la [edit protocols mpls] hiérarchie.

Les lignes 16 à 23 ajoutent l’instruction admin-groups à la configuration et affectent la valeur de la variable au nom du groupe et la valeur de la variable à la color group-value valeur du groupe.

Les instructions de configuration résultantes sont les suivantes :

La ligne 24 sélectionne le nom de chaque paramètre auquel aucune valeur n’est affectée, qui dans ce cas sont les quatre adresses IP. Cette <xsl:for-each> instruction de programmation utilise la récursivité via la macro et sélectionne chaque adresse IP à tour de rôle. Les color paramètres et ont chacun une valeur affectée (blue et group-value 0, respectivement), de sorte que cette ligne ne s’applique pas à eux.

La ligne 25 ajoute l’instruction label-switched-path dans la configuration.

Les lignes 26 à 28 attribuent un label-switched-path nom qui concatène la valeur de la variable, le texte --lsp, et l’adresse IP actuelle actuellement sélectionnée par la color ligne 24 (représentée par le " " .).

La ligne 29 ajoute l’instruction à la configuration et définit sa valeur sur l’adresse to IP actuellement sélectionnée par la ligne 24.

Les lignes 30 à 34 ajoutent l’instruction admin-group include-any à la configuration et définissent sa valeur sur la valeur de la color variable.

Les instructions de configuration résultantes (pour un passage) sont les suivantes :

Les lignes 35 à 42 sont des balises de fermeture.

Syntaxe SLAX

Le script SLAX équivalent est :

Syntaxe Python

La syntaxe Python suivante produit les mêmes modifications de configuration :

Pour plus d’informations sur cet exemple, consultez Exemple : configurer des groupes d’administration pour les prestataires de services linguistiques.

Configuration

Procédure

Procédure étape par étape

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

  1. Copiez le script dans un fichier texte, nommez-le fichier lsp-admin.xsl, lsp-admin.slax ou lsp-admin.py selon le cas, puis copiez-le dans le répertoire /var/db/scripts/commit sur l’appareil.

    Note:

    Les scripts Python non signés doivent appartenir à un root ou à un utilisateur de la classe de connexion Junos OS super-user , et seul le propriétaire du fichier peut disposer d’une autorisation d’écriture pour le fichier.

  2. Si le script est écrit en Python, activez l’exécution de scripts Python non signés.

    Note:

    Configurez l’instruction pour utiliser Python 3 pour exécuter des scripts Python ou configurez l’instruction language python3 pour utiliser Python 2.7 pour exécuter des language python scripts Python. Pour plus d’informations, voir langue.

  3. Sélectionnez les strophes de configuration de test suivantes, puis appuyez sur Ctrl+c pour les copier dans le Presse-papiers. Si vous utilisez la version SLAX ou Python du script, mettez à jour le nom de fichier au niveau de la [edit system scripts commit file] hiérarchie.

  4. En mode configuration, exécutez la load merge terminal commande pour fusionner les strophes dans la configuration de votre appareil.

    1. À l’invite, collez le contenu du presse-papiers à l’aide de la souris et de l’icône Coller.

    2. Appuyez sur Entrée.

    3. Appuyez sur Ctrl+d.

  5. Validez la configuration.

Vérification

Vérification de l’exécution des scripts

But

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

Action

Pour afficher les instructions de configuration créées par le script, exécutez la show protocols mpls | display commit-scripts commande.