Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Résoudre les problèmes liés aux scripts de validation

Après avoir activer un script de validation et avoir effectué une commit commande, le script de validation prend effet immédiatement.

Le tableau 1 décrit certains problèmes courants qui peuvent survenir.

Tableau 1 : Dépannage des scripts de validation

Problème

Solution

La sortie de la commit check | display detail commande ne fait pas référence aux scripts de validation attendus.

Assurez-vous d’avoir activé tous les scripts en incluant l’instruction file de chacun au niveau de la [edit system scripts commit] hiérarchie.

La sortie contient le message d’erreur :

error: could not open commit script: 
/var/db/scripts/commit/filename:
No such file or directory

Assurez-vous que le script de validation est présent dans le répertoire /var/db/scripts/commit/ sur votre commutateur, routeur ou équipement de sécurité.

Les messages d’erreur et d’avertissement suivants s’affichent :

error: invalid transient change 
generated by commit script: filename 
 warning: 1 transient change was generated 
without [system scripts commit allow-transients]

L’un de vos scripts de validation contient des instructions pour générer une modification transitoire, mais vous n’avez pas activé les modifications transitoires.

Pour corriger ce problème, prenez l’une des actions suivantes :

  • Incluez l’instruction allow-transients au niveau de la [edit system scripts commit] hiérarchie.

  • Supprimez le code qui génère une modification transitoire du script indiqué.

  • Désactiver le script dans la configuration.

Il n’y a pas d’action attendue.

Par exemple, un message d’avertissement n’apparaît pas même si la configuration contient le problème censé évoquer le message d’avertissement.

  1. Assurez-vous d’avoir activé le script. Les scripts sont ignorés s’ils ne sont pas activés.

    Pour activer un script, incluez l’instruction file filename au niveau de la [edit system scripts commit] hiérarchie.

  1. Assurez-vous d’avoir inclus la plaque de chaudron requise dans votre script. Pour plus d’informations, consultez La plaque de chaudron requise pour les scripts de validation.

  1. Assurez-vous que les expressions XPath (Extensible Markup Language Path) du script contiennent des instructions d’interface de ligne de commande (CLI) Junos OS valides, exprimées en tant qu’éléments de balise de protocole Junos XML.

    Vous pouvez vérifier la hiérarchie XML en vérifiant la référence du développeur de configuration de l’API XML Junos ou en publiant la commande du show configuration | display xml mode opérationnel.

  1. Assurez-vous que les instructions de programmation du script font référence au nœud de contexte approprié.

    Si vous imbriez une instruction dans une autre, l’instruction externe change le nœud de contexte, de sorte que l’instruction interne doit être relative à l’instruction externe.

    Par exemple, l’instruction <xsl:for-each> contient une expression XPath, qui change le nœud de contexte. L’instruction imbriquée <xsl:if> utilise une expression XPath relative à l’expression interfaces/interface[starts-with(name, 't1-')] XPath .

    <xsl:for-each select="interfaces/
         interface[starts-with(name, 't1-')]">
    <xsl:if test="not(description)">

L’opération de validation échoue et un message d’erreur dans le fichier journal du système indique :

Process (pid,cscript) attempted to exceed RLIMIT_DATA

Lors de la validation d’une configuration inspectée par un ou plusieurs scripts de validation, vous devrez peut-être augmenter la quantité de mémoire allouée aux scripts de validation pour prendre en charge le traitement de grandes configurations.

Par défaut, la quantité maximale de mémoire allouée à la partie de segment de données d’un script exécuté est la moitié de la mémoire totale disponible du système, jusqu’à une valeur maximale de 128 Mo. Pour augmenter la mémoire maximale allouée à chaque script de validation exécuté, configurez l’instruction max-datasize size avec une limite de mémoire appropriée en octets au [edit system scripts commit] niveau hiérarchique avant de valider la configuration.