Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

Juniper Networks fournit des modules Ansible que vous pouvez utiliser pour gérer les équipements Junos et effectuer des tâches opérationnelles et de configuration sur les équipements. Les modules n’ont pas besoin de Python sur l’équipement géré, car ils utilisent Junos PyEZ et l’API Junos XML sur NETCONF pour s’interfacer avec l’appareil. Par conséquent, lorsque vous utilisez Ansible pour effectuer des opérations sur des équipements Junos, vous devez exécuter les modules Ansible localement sur le nœud de contrôle. Par conséquent, Ansible collecte par défaut les faits à partir du nœud de contrôle Ansible au lieu du nœud géré.

Juniper Networks fournit un module qui vous permet de collecter des informations sur les équipements, y compris la configuration active, à partir des équipements Junos. Le tableau 1 présente les modules disponibles. Le module utilise le système de collecte d’informations Junos PyEZ pour récupérer les informations sur l’équipement. Pour plus d’informations sur le système de collecte de faits Junos PyEZ et la liste complète des clés de dictionnaire renvoyées, consultez jnpr.junos.facts.

Tableau 1 : Module de collecte des faits

Ensemble de contenu

Nom du module

juniper.device collection

facts

Le facts module renvoie les faits sur l’appareil dans le ansible_facts.junos dictionnaire. Le module vous permet également d’enregistrer les données retournées dans un fichier sur le nœud de contrôle Ansible local. Pour spécifier le répertoire dans lequel enregistrer les informations récupérées, incluez l’argument savedir module et définissez le chemin d’accès au répertoire cible. Lorsque vous incluez l’argument savedir , le playbook génère les fichiers suivants pour chaque périphérique, où hostname est la valeur du fait récupéré à partir du périphérique, qui peut être différente du nom d’hôte hostname transmis au module :

  • hostname-facts.json : informations sur l’équipement au format JSON

  • hostname-inventory.xml : inventaire matériel de l’appareil au format XML

Par exemple, le playbook suivant récupère les informations sur chaque périphérique du groupe d’inventaire et enregistre les données de chaque périphérique dans des fichiers distincts dans le répertoire playbook du nœud de contrôle Ansible. Étant donné que le playbook exécute le module localement, Ansible collecte par défaut les facts faits à partir du nœud de contrôle. Le playbook inclut l’argument gather_facts: no pour empêcher Ansible de collecter des faits à partir du nœud de contrôle et utilise à la place le juniper.device.facts module pour récupérer les faits à partir de l’équipement géré. Pour s’authentifier auprès de l’appareil, l’exemple utilise des clés SSH existantes à l’emplacement par défaut et ne fournit donc pas explicitement les informations d’identification du facts module dans le playbook.

Par défaut, le facts module ne renvoie pas la configuration de l’appareil. Pour renvoyer la configuration active d’un périphérique, en plus des faits sur l’appareil, incluez l’option config_format et spécifiez le format dans lequel renvoyer la configuration. Les valeurs de format acceptables sont 'json', 'set', 'text' et 'xml'. Le format demandé doit être pris en charge par la version de Junos OS en cours d’exécution sur le périphérique.

Lorsque vous incluez l’option config_format , le ansible_facts.junos dictionnaire dans la réponse du module inclut la config clé avec la configuration dans le format spécifié dans une seule chaîne multiligne. Toutefois, même si le playbook inclut cette savedir option, les données de configuration ne sont pas écrites dans un fichier.

Pourboire:

Pour utiliser Ansible afin de récupérer des données de configuration à partir d’un équipement Junos et d’enregistrer les données dans un fichier, utilisez le config module au lieu du facts module. Pour plus d’informations, consultez Utiliser Ansible pour récupérer ou comparer des configurations Junos OS.

Dans l’exemple suivant, le playbook effectue les opérations suivantes :

  • Récupère les faits sur l’équipement et la configuration active pour chaque équipement du groupe d’inventaire

  • Enregistre les faits et l’inventaire matériel de chaque appareil dans des fichiers distincts dans le répertoire playbook du nœud de contrôle Ansible

  • Imprime la configuration de chaque périphérique sur la sortie standard