SUR CETTE PAGE
Exemple : Générer un message d’avertissement personnalisé
Les scripts de validation de Junos OS peuvent générer des messages d’avertissement personnalisés lors d’une opération de validation pour vous alerter lorsque la configuration n’est pas conforme aux règles de configuration personnalisées. Le processus de validation n’est pas affecté par les avertissements. Cet exemple crée un script de validation qui génère un message d’avertissement personnalisé lorsqu’une instruction spécifique n’est pas incluse dans la configuration de l’appareil.
Exigences
Junos OS version 16.1R3 ou version ultérieure lors de l’utilisation d’un script Python.
Vue d’ensemble et script de validation
À l’aide d’un script de validation, écrivez un message d’avertissement personnalisé qui s’affiche lorsque l’instruction n’est source-route
pas incluse au niveau de la [edit chassis]
hiérarchie.
Le script est affiché en XSLT, SAX et Python.
Syntaxe XSLT
<?xml version="1.0" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:junos="http://xml.juniper.net/junos/*/junos" xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> <xsl:import href="../import/junos.xsl"/> <xsl:template match="configuration"> <xsl:if test="not(chassis/source-route)"> <xnm:warning> <xsl:call-template name="jcs:edit-path"> <xsl:with-param name="dot" select="chassis"/> </xsl:call-template> <message>IP source-route processing is not enabled.</message> </xnm:warning> </xsl:if> </xsl:template> </xsl:stylesheet>
Syntaxe SLAX
version 1.2; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; match configuration { if (not(chassis/source-route)) { <xnm:warning> { call jcs:edit-path($dot = chassis); <message> "IP source-route processing is not enabled."; } } }
Syntaxe Python
from junos import Junos_Configuration import jcs def main(): root = Junos_Configuration if not(root.xpath("./chassis/source-route")): jcs.emit_warning("IP source-route processing is not enabled.") if __name__ == '__main__': main()
Configuration
Procédure
Procédure étape par étape
Téléchargez, activez et testez le script. Pour vérifier qu’un script de commit génère correctement un message d’avertissement, assurez-vous que la configuration candidate contient la condition qui déclenche l’avertissement. Pour cet exemple, assurez-vous que l’instruction n’est source-route
pas incluse au niveau de la [edit chassis]
hiérarchie.
Pour tester l’exemple de cette rubrique, procédez comme suit :
Copiez le script dans un fichier texte, nommez le fichier source-route.xsl, source-route.slax ou source-route.py selon le cas, puis copiez-le dans le répertoire /var/db/scripts/commit/ de l’équipement.
Note:Les scripts Python non signés doivent appartenir à l’utilisateur 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 sur le fichier.En mode configuration, configurez l’instruction
file
et le nom de fichier du script au niveau de la[edit system scripts commit]
hiérarchie.[edit] user@host# set system scripts commit file source-route.xsl
Si le script est écrit en Python, activez l’exécution de scripts Python non signés.
[edit] user@host# set system scripts language python
Note:Configurez l’instruction
language python3
pour qu’elle utilise Python 3 pour exécuter des scripts Python, ou configurez l’instructionlanguage python
pour qu’elle utilise Python 2.7 pour exécuter des scripts Python. Pour plus d’informations, reportez-vous à la section langue.Si l’instruction
source-route
est incluse au niveau de la[edit chassis]
hiérarchie, exécutez ladelete chassis source-route
commande configuration mode.[edit] user@host# delete chassis source-route
Vérification
Vérification de l’exécution d’un script
But
Vérifiez le message d’avertissement généré par le script de validation.
Action
Exécutez la commit check
commande or commit
et examinez la sortie. Le script de validation génère un message d’avertissement lorsque l’instruction n’est source-route
pas incluse au [edit chassis]
niveau hiérarchique de la configuration. L’avertissement n’affecte pas le processus de validation.
[edit] user@host# commit check [edit chassis] warning: IP source-route processing is not enabled. configuration check succeeds
[edit] user@host# commit [edit chassis] warning: IP source-route processing is not enabled. commit complete
Pour afficher la version au format XML du message d’avertissement, exécutez la commit check | display xml
commande.
[edit] user@host# commit check | display xml <rpc-reply xmlns:junos="http://xml.juniper.net/junos/10.0R1/junos"> <commit-results> <routing-engine junos:style="normal"> <name>re0</name> <xnm:warning> <edit-path> [edit chassis] </edit-path> <message> IP source-route processing is not enabled. </message> </xnm:warning> <commit-check-success/> </routing-engine> </commit-results> </rpc-reply>
Pour afficher une trace détaillée du traitement du script de validation, exécutez la commit check | display detail
commande.
[edit] user@host# commit check | display detail 2009-06-15 14:40:29 PDT: reading commit script configuration 2009-06-15 14:40:29 PDT: testing commit script configuration 2009-06-15 14:40:29 PDT: opening commit script '/var/db/scripts/commit/source-route-warning.xsl' 2009-06-15 14:40:29 PDT: reading commit script 'source-route-warning.xsl' 2009-06-15 14:40:29 PDT: running commit script 'source-route-warning.xsl' 2009-06-15 14:40:29 PDT: processing commit script 'source-route-warning.xsl' [edit chassis] warning: IP source-route processing is not enabled. 2009-06-15 14:40:29 PDT: no errors from source-route-warning.xsl 2009-06-15 14:40:29 PDT: saving commit script changes 2009-06-15 14:40:29 PDT: summary: changes 0, transients 0 (allowed), syslog 0 2009-06-15 14:40:29 PDT: no commit script changes 2009-06-15 14:40:29 PDT: exporting juniper.conf 2009-06-15 14:40:29 PDT: expanding groups 2009-06-15 14:40:29 PDT: finished expanding groups 2009-06-15 14:40:29 PDT: setup foreign files 2009-06-15 14:40:29 PDT: propagating foreign files 2009-06-15 14:40:30 PDT: complete foreign files 2009-06-15 14:40:30 PDT: daemons checking new configuration configuration check succeeds