Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utiliser Junos PyEZ pour récupérer des faits à partir d’équipements Junos

Comprendre les faits sur les équipements Junos PyEZ

Junos PyEZ est un microframework pour Python qui vous permet de gérer et d’automatiser les équipements Junos. Junos PyEZ modélise chaque équipement comme une instance de la jnpr.junos.device.Device classe. Après s’être connectées à un équipement Junos, les applications Junos PyEZ peuvent récupérer des faits sur l’équipement. Les faits sur l’équipement sont accessibles en tant qu’attribut facts de l’objet Device . Pour obtenir des informations détaillées sur les clés incluses dans les informations sur l’équipement retourné, consultez jnpr.junos.facts.

L’exemple suivant établit une session NETCONF sur SSH avec l’équipement et imprime les faits sur l’équipement. L’équipement utilise des clés SSH pour authentifier l’utilisateur.

Dans Junos PyEZ version 2.0.0 et versions antérieures, lorsque l’application appelle la Device open() méthode de connexion à un équipement, Junos PyEZ recueille automatiquement les informations sur l’équipement pour les connexions NETCONF-over-SSH et recueille les informations sur l’équipement pour les connexions Telnet et console série lorsque vous l’incluez gather_facts=True explicitement dans la Device liste d’arguments.

À partir de la version 2.1.0 de Junos PyEZ, les informations sur l’équipement sont recueillies à la demande pour tous les types de connexion. Chaque fait est collecté et mis en cache dès la première fois que l’application accède à sa valeur ou à celle d’un fait dépendant. Lorsque vous imprimez ou utilisez des faits sur l’équipement, les faits précédemment consultés sont servis depuis le cache, et les faits qui n’ont pas encore été consultés sont récupérés à partir de l’équipement. Si un fait n’est pas pris en charge sur une plate-forme donnée, ou si l’application rencontre un problème réunissant la valeur d’un fait spécifique, alors la valeur de ce fait est None.

Junos PyEZ met en cache un fait d’équipement lorsqu’il accède pour la première fois au fait ou à un fait dépendant, mais il ne met pas à jour la valeur mise en cache lors de l’accès suivant. Pour actualiser l’information sur l’équipement, appelez la facts_refresh() méthode. La facts_refresh() méthode vide le cache de tous les faits, de sorte que lorsque l’application accède ensuite à un fait, elle le récupère de l’équipement et stocke la valeur actuelle dans le cache.

Pour actualiser un seul fait ou un ensemble de faits, incluez l’argument keys dans la facts_refresh() méthode et spécifiez les clés à effacer du cache. Par exemple :

Note:

À partir de Junos PyEZ version 2.0.0, les exceptions qui surviennent lors de la collecte de faits soulèvent un avertissement au lieu d’une erreur, ce qui permet au script de continuer à s’exécuter.

Par défaut, Junos PyEZ renvoie les informations sur l’équipement sous la forme d’un objet de type dictionnaire. À partir de junos PyEZ version 2.2.1, vous pouvez consulter les faits sur l’équipement dans JavaScript Object Notation (JSON). Pour afficher une représentation JSON des faits, importez le json module et appelez la json.dumps() fonction.

Exemple : récupérer des faits à partir d’un équipement Junos

Avec Junos PyEZ, vous pouvez exécuter rapidement des commandes en mode interactif Python, ou créer des programmes pour effectuer des tâches. L’exemple suivant établit une session NETCONF sur SSH avec un équipement Junos et récupère et imprime des faits pour l’équipement à l’aide d’un programme Python simple et d’un mode interactif Python. Les exemples utilisent des clés SSH existantes pour l’authentification.

Pour créer une application Junos PyEZ qui établit une session NETCONF sur SSH avec un équipement Junos et imprime les faits sur l’équipement :

  1. Dans votre éditeur favori, créez un nouveau fichier avec un nom descriptif qui utilise l’extension de fichier .py .
  2. Importez la Device classe et tous les autres modules ou objets requis pour vos tâches.
  3. Créez l’instance de l’équipement et fournissez le nom d’hôte, tous les paramètres requis pour l’authentification et tous les paramètres facultatifs.
  4. Connectez-vous à l’équipement en appelant la open() méthode.
  5. Imprimez les faits sur l’appareil.
    Pointe:

    Pour actualiser les faits sur un équipement, appelez la facts_refresh() méthode, par exemple, dev.facts_refresh().

  6. Fermez la connexion à l’équipement.
  7. Enregistrez et exécutez le programme.

L’ensemble du programme est présenté ici :

Vous pouvez également effectuer rapidement les mêmes opérations en mode interactif Python.

La vidéo suivante présente une courte session Python qui montre comment utiliser Junos PyEZ pour se connecter et récupérer des faits à partir d’un équipement Junos.

Tableau de l’historique des versions
Libération
Description
2.1.0
À partir de la version 2.1.0 de Junos PyEZ, les informations sur l’équipement sont recueillies à la demande pour tous les types de connexion.
2.0.0
À partir de Junos PyEZ version 2.0.0, les exceptions qui surviennent lors de la collecte de faits soulèvent un avertissement au lieu d’une erreur, ce qui permet au script de continuer à s’exécuter.