Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utiliser Ansible avec les tables Junos PyEZ pour récupérer des informations opérationnelles à partir d’équipements Junos

RÉSUMÉ Utilisez les tables et vues Junos PyEZ dans vos playbooks Ansible pour récupérer des informations opérationnelles à partir de périphériques Junos.

Vue d’ensemble du module

Les tables opérationnelles (op) Junos PyEZ offrent un moyen simple et efficace d’extraire des informations à partir de sorties de commandes opérationnelles complexes. Juniper Networks fournit un module Ansible qui vous permet d’exploiter les tables d’opération Junos PyEZ à partir des playbooks Ansible. Le tableau 1 présente le module.

Tableau 1 : module de table Junos PyEZ

Ensemble de contenu

Nom du module

juniper.device collection

table

Note:

Le table module ne prend pas en charge l’utilisation des tables et vues de configuration.

Comprendre les tables Junos PyEZ

Junos PyEZ est un microframework pour Python qui vous permet de gérer et d’automatiser les équipements Junos. Junos PyEZ prend en charge l’utilisation de définitions YAML simples, appelées tables et vues, pour récupérer et filtrer la sortie des commandes opérationnelles et les données de configuration des équipements Junos.

Les tables opérationnelles (op) Junos PyEZ extraient des informations à partir de la sortie des commandes opérationnelles ou des RPC. Les modules Junos PyEZ jnpr.junos.op contiennent des définitions prédéfinies de table et de vue pour certains RPC courants. Vous pouvez également créer des tables et des vues personnalisées.

Lorsque vous utilisez Ansible pour gérer des équipements Junos, le module peut utiliser les table tables Junos PyEZ pour récupérer des données à partir d’un appareil. Le module peut référencer les tables et vues opérationnelles prédéfinies incluses dans la distribution Junos PyEZ, ou les tables et vues définies par l’utilisateur qui résident sur le nœud de contrôle Ansible.

Pour obtenir des informations générales sur les tables et les vues Junos PyEZ, reportez-vous aux sections suivantes et à la documentation associée dans le Guide du développeur Junos PyEZ :

Utilisation des modules Ansible de Juniper Networks avec les tables Junos PyEZ

Le juniper.device.table module peut inclure les arguments suivants pour spécifier la table à utiliser :

  • file: nom de fichier du fichier YAML qui définit la table et la vue Junos PyEZ.

  • path—(Facultatif) Chemin d’accès au répertoire contenant le fichier YAML avec les définitions Table et Vue. Le chemin d’accès au fichier par défaut est l’emplacement des tables d’opération Junos PyEZ prédéfinies, qui se trouvent dans le chemin d’installation de Junos PyEZ sous le répertoire jnpr/junos/op .

  • table—(Facultatif) Nom de la table qui sera utilisée pour récupérer les données. Cette option n’est requise que lorsqu’un fichier contient plusieurs définitions de table ou que le fichier contient une seule table dont le nom ne contient pas « Table ».

Par exemple, la tâche suivante récupère les données à l’aide d’une table personnalisée nommée FPCTable, qui est définie dans le fichier fpc.yaml situé dans le répertoire playbook :

La réponse du module inclut la resource clé, qui contient une liste d’éléments retournés par la table. Chaque élément de liste est un dictionnaire contenant les noms de champs définis par la vue et la valeur extraite des données pour chacun des champs correspondants.

Considérez la table et la vue prédéfinies suivantes, ArpTable et ArpView, dans le fichier arp.yml de la distribution Junos PyEZ. ArpTable exécute le <get-arp-table-information> RPC avec l’option <no-resolve/> , qui est équivalente à la show arp no-resolve commande CLI. La vue correspondante extrait l’adresse MAC, l’adresse IP et le nom d’interface de chaque <arp-table-entry> élément de la réponse.

Le playbook Ansible suivant exécute le table module, qui permet ArpTable de récupérer des informations ARP (Address Resolution Protocol) à partir de périphériques Junos. Étant donné qu’il ArpTable est inclus dans la distribution Junos PyEZ et qu’il réside dans le répertoire par défaut pour les tables d’op Junos PyEZ prédéfinies, l’argument path module n’est pas nécessaire pour spécifier l’emplacement du fichier. De plus, étant donné qu’il s’agit de la seule table définie dans le fichier et qu’elle ArpTable inclut « Table » dans son nom, l’argument table n’est pas nécessaire pour spécifier la table.

La sortie du playbook, qui est tronquée par souci de concision, inclut les champs correspondants, tels que définis par ArpView, pour chaque <arp-table-entry> élément renvoyé par l’appareil.

Le playbook Ansible suivant s’appuie sur la table opérationnelle Junos PyEZ prédéfinie, OspfInterfaceTable, pour récupérer des informations sur les interfaces OSPF sur les équipements Junos. Le fichier ospf.yml définit plusieurs tables et vues, de sorte que l’appel de module inclut l’argument permettant de spécifier la table table à utiliser.

Spécifier les arguments RPC

Les tables opérationnelles Junos PyEZ disposent d’une clé facultative args qui définit les options de commande et les arguments par défaut du RPC exécuté par cette table. L’application exécute le RPC avec les options par défaut, sauf si l’utilisateur remplace les options par défaut. Dans les applications Junos PyEZ, vous pouvez remplacer les options par défaut ou passer des options et des arguments supplémentaires au RPC lors de l’appel de la get() méthode.

Le juniper.device.table module vous permet également de remplacer les options par défaut définies dans la table ou de passer des options et des arguments supplémentaires au RPC à l’aide de l’argument kwargs . La kwargs valeur est un dictionnaire d’options et de valeurs de commande, qui doit être pris en charge par le RPC et le périphérique sur lequel le RPC est exécuté.

Par exemple, la table EthPortTable d’opération Junos PyEZ prédéfinie dans le fichier ethport.yml exécute le RPC avec l’option <get-interface-information> de media commande. Par défaut, le RPC renvoie des informations pour toutes les interfaces qui correspondent à l’expression régulière donnée pour le nom d’interface.

Le playbook Ansible suivant permet EthPortTable d’extraire des informations sur les interfaces des équipements Junos. L’argument kwargs includes interface_name: "ge-1/0/0", qui remplace la EthPortTable valeur par défaut de et interface_name demande au module de récupérer les champs demandés uniquement pour l’interface ge-1/0/0.

Pour plus d’informations sur les options et arguments de commande par défaut et fournis par l’utilisateur dans les tables Junos PyEZ, consultez Définition des tables opérationnelles Junos PyEZ et Utiliser les tables et vues opérationnelles Junos PyEZ pour analyser les sorties structurées.