Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exemple : modifier la configuration à l’aide de scripts Python Op

Les scripts Op vous permettent d’apporter des modifications contrôlées à la configuration de Junos OS. Les scripts Op sont avantageux, car ils peuvent collecter des informations opérationnelles sur un équipement et mettre à jour la configuration en fonction de ces informations. Les utilisateurs expérimentés qui connaissent Junos OS peuvent écrire des scripts opérationnels qui demandent des informations de configuration pertinentes et modifient la configuration en conséquence. Ainsi, les utilisateurs qui ont moins d’expérience avec Junos OS peuvent modifier la configuration en toute sécurité à l’aide du script. Cet exemple illustre comment apporter des modifications à la configuration de Junos OS à l’aide d’un script d’exploitation Python qui exploite les API PyEZ Junos.

Exigences

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

  • Routeur MX Series exécutant Junos OS Version 16.1R3 ou version ultérieure incluant le package d’extensions Python.

Script de présentation et d’exploitation

Les scripts Python op peuvent apporter des modifications à la configuration de Junos OS à l’aide de l’utilitaire Junos PyEZjnpr.junos.utils.config.Config. L’utilitaire Junos PyEZ Config fournit des méthodes d’instance pour verrouiller la configuration, charger les données de configuration et spécifier comment les intégrer à la configuration, valider la configuration et déverrouiller la configuration. Pour plus d’informations sur l’utilisation de Junos PyEZ pour configurer les équipements Junos, reportez-vous à la rubrique Utilisation de Junos PyEZ pour configurer les équipements Junos. Le script Python op de cet exemple montre comment mettre à jour la configuration pour désactiver une interface sur l’équipement local.

Le script Python op importe les éléments suivants :

  • Device classe : gère la connexion à l’équipement Junos

  • Config classe : exécute des commandes de mode de configuration sur l’équipement cible

  • jnpr.junos.exception module : contient les exceptions rencontrées lors de la gestion des équipements Junos

  • jcs module : permet au script d’exécuter les fonctions d’extension prises en charge

Dans cet exemple, la usage variable est initialisée avec une description générale de la fonction du script. Une fois le script exécuté, le script affiche la description de l’utilisation sur l’interface de ligne de commande afin que l’utilisateur puisse vérifier l’objectif de ce script.

Le script appelle la jcs.get_input() fonction d’extension, qui invite l’utilisateur à saisir le nom de l’interface à désactiver et enregistre le nom de l’interface dans la interface variable. La config_xml variable est une chaîne XML qui définit les changements de configuration.

Le script ne fournit pas de paramètre d’hôte lors de la création de l’instance Device , ce qui permet à la open() méthode d’établir une connexion avec l’équipement local. Cet exemple crée l’instance à l’aide Config d’un gestionnaire mode='exclusive' de contexte afin d’obtenir un verrouillage exclusif de la configuration lors de sa modification. Dans ce mode, le gestionnaire de contexte gère automatiquement le verrouillage et le déverrouillage de la configuration du candidat. Les Config méthodes d’utilité chargent les modifications de configuration dans la configuration du candidat en tant qu’opération load merge et valident la configuration. La dev.close() méthode ferme la connexion.

Python Script

Configuration

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 config-change.py et copiez-le dans le répertoire /var/db/scripts/op/ de l’équipement.

    Note:

    Les scripts Python non signés doivent appartenir à un utilisateur racine ou racine dans 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. En mode configuration, incluez l’instruction file config-change.py au niveau de la [edit system scripts op] hiérarchie.

  3. Activez l’exécution de scripts Python non signés sur l’équipement.

    Note:

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

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

  5. Avant d’exécuter le script, exécutez la commande du show interfaces interface-name mode opérationnel et enregistrez l’état actuel de l’interface qui sera désactivée par le script.

  6. Exécutez le script d’exploitation en exécutant la commande du op config-change.py mode opérationnel.

Vérification

Vérification de la validation

But

Vérifiez que la validation a réussi.

Action

Vous devez inclure du code dans votre script qui détecte tous les avertissements ou erreurs associés à la modification et à la validation de la configuration. Vous pouvez ainsi déterminer plus facilement si la validation a réussi. En l’absence de messages d’avertissement ou d’erreur, vous pouvez vérifier la réussite de la validation de plusieurs manières.

  • Vérifiez que le journal de validation a réussi.

  • Vérifiez que l’opération de validation a été enregistrée dans le fichier de messages syslog. Dans ce cas, un message s’affiche SNMP_TRAP_LINK_DOWN également pour l’interface désactivée. Selon vos paramètres de configuration pour les options de trace, ce message peut ou non apparaître dans votre fichier journal.

Vérification des modifications de configuration

But

Vérifiez que les modifications correctes sont intégrées à la configuration.

Action

  • Affichez la configuration et vérifiez que les modifications sont visibles pour l’interface spécifiée.

  • Par exemple, vous pouvez également émettre la commande du show interfaces interface-name mode opérationnel pour vérifier que l’interface a été désactivée. Dans ce cas, le résultat capturé avant la désactivation de l’interface indique que l’interface est Enabled.

    Le résultat capturé après avoir exécuté le script pour désactiver l’interface indique que l’interface est maintenant Administratively down.