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 une configuration

RÉSUMÉ Vous pouvez créer des applications Junos PyEZ qui récupèrent les données de configuration à partir de la base de données de configuration spécifiée sur un équipement Junos.

Les applications Junos PyEZ peuvent exécuter des appels de procédure à distance (RPC) à la demande sur les équipements Junos. Après avoir créé une instance de la Device classe, une application peut exécuter des RPC en tant que propriété de l’instance Device . Les applications Junos PyEZ peuvent utiliser le get_config() RPC pour demander la configuration complète ou des parties sélectionnées de la configuration, tant pour la configuration Junos OS native que pour les données de configuration correspondant aux modèles de données YANG standard (IETF, OpenConfig) ou personnalisés qui ont été ajoutés au périphérique.

Note:

Le RPC Junos PyEZ get_config appelle l’opération du protocole <get-configuration> XML Junos. Pour plus d’informations sur l’opération <get-configuration> et ses options, consultez <get-configuration>.

Cette rubrique explique comment récupérer la configuration à l’aide du RPC Junos PyEZ get_config() . Pour plus d’informations sur l’utilisation des tables et des vues pour récupérer des données de configuration, reportez-vous aux sections Définition des tables de configuration Junos PyEZ et Utiliser les tables de configuration Junos PyEZ pour récupérer les données de configuration.

Récupérer la configuration candidate complète

Pour récupérer la configuration candidate complète à partir d’un équipement Junos, exécutez le get_config() RPC. Le format de sortie par défaut est XML. Par exemple :

Spécifier la base de données source pour les données de configuration

Lorsqu’une application Junos PyEZ utilise le RPC pour récupérer des get_config() informations de configuration à partir d’un périphérique Junos, le serveur renvoie par défaut les données de la base de données de configuration candidate. Une application Junos PyEZ peut également récupérer des données de configuration à partir de la base de données de configuration validée ou de la base de données de configuration éphémère.

Base de données de configuration candidate

Pour récupérer des données à partir de la base de données de configuration candidate, exécutez le get_config() RPC et incluez éventuellement des arguments supplémentaires.

Base de données de configuration validée

Pour récupérer des données à partir de la base de données de configuration validée, incluez l’argument options with 'database':'committed' dans l’appel get_config() RPC.

Base de données de configuration éphémère

Junos PyEZ prend en charge les opérations sur la base de données de configuration éphémère sur les équipements qui prennent en charge cette base de données. Lorsque vous récupérez des données de configuration à partir de la base de données de configuration partagée, par défaut, les résultats n’incluent pas les données de la base de données de configuration éphémère.

Note:

La base de données éphémère est une base de données de configuration alternative qui fournit une interface de programmation rapide pour effectuer des mises à jour de configuration sur les équipements Junos. La base de données de configuration éphémère est une fonctionnalité avancée qui, si elle est mal utilisée, peut avoir un impact négatif sérieux sur le fonctionnement de l’appareil. Pour plus d’informations, reportez-vous à la section Présentation de la base de données de configuration éphémère.

Pour récupérer des données à partir de l’instance par défaut de la base de données de configuration éphémère, ouvrez d’abord l’instance éphémère par défaut, puis demandez les données. Pour ouvrir l’instance par défaut, utilisez un gestionnaire de contexte pour créer l’instance Config et incluez l’argument mode='ephemeral' . Par exemple :

Pour récupérer des données à partir d’une instance spécifique de la base de données de configuration éphémère, ouvrez d’abord l’instance éphémère, puis demandez les données. Pour ouvrir une instance définie par l’utilisateur de la base de données de configuration éphémère, utilisez un gestionnaire de contexte pour créer l’instance Config , inclure l’argument mode='ephemeral' et définir l’argument ephemeral_instance sur le nom de l’instance éphémère.

Spécifiez l’étendue des données de configuration à renvoyer

Outre la récupération de la configuration complète de Junos OS, une application Junos PyEZ peut récupérer des parties spécifiques de la configuration en appelant le get_config() RPC avec l’argument filter_xml . Le filter_xml paramètre prend une chaîne contenant le filtre de sous-arborescence qui sélectionne les instructions de configuration à renvoyer. Le filtre de sous-arborescence renvoie les données de configuration qui correspondent aux critères de sélection.

Pour demander plusieurs hiérarchies, la filter_xml chaîne doit inclure l’élément <configuration> racine. Dans le cas contraire, la valeur de filter_xml doit représenter tous les niveaux de la hiérarchie de configuration, en commençant juste en dessous de l’élément racine <configuration> jusqu’à la hiérarchie à afficher. Pour sélectionner une sous-arborescence, incluez la balise vide pour ce niveau hiérarchique. Pour renvoyer un objet spécifique, incluez un nœud de correspondance de contenu qui définit l’élément et la valeur à faire correspondre.

L’application Junos PyEZ suivante récupère et imprime la configuration aux niveaux et [edit interfaces] [edit protocols] hiérarchie dans la configuration candidate :

L’exemple suivant récupère et imprime la configuration au niveau de la hiérarchie à l’aide [edit system services] de valeurs différentes mais équivalentes pour l’argument filter_xml :

L’exemple suivant récupère l’élément <name> pour chaque <interface> élément de la <interfaces> hiérarchie dans la configuration candidate post-héritage :

L’exemple suivant récupère la sous-arborescence de l’interface ge-1/0/1 :

Spécifiez le format des données de configuration à renvoyer

Le RPC Junos PyEZ get_config() appelle l’opération de protocole <get-configuration> Junos XML, qui peut renvoyer des données de configuration Junos OS sous forme d’éléments XML Junos, d’instructions de configuration CLI, de commandes Junos OS set ou de notation d’objet JavaScript (JSON). Par défaut, le RPC renvoie les get_config() données de configuration au format XML.

Pour spécifier le format dans lequel renvoyer les données de configuration, l’application Junos PyEZ inclut le options dictionnaire with 'format':'format' dans la liste des get_config() arguments. Pour demander des instructions de configuration CLI, des commandes Junos OS set ou le format JSON, définissez la format valeur sur text, setou json, respectivement.

Comme dans les sessions de protocoles XML NETCONF et Junos, Junos PyEZ renvoie les données de configuration au format attendu, dans l’élément XML approprié pour ce format. La réponse RPC inclut les données de configuration aux formats XML, texte ou set de commande dans <configuration>les éléments , <configuration-text>et , respectivement <configuration-set> .

Note:

En fonction de la version de Python et du format de la sortie, vous devrez peut-être modifier l’instruction print pour afficher une sortie plus lisible par l’homme.

Récupération des données de configuration pour les modèles de données YANG standard ou personnalisés

Vous pouvez charger des modules YANG standardisés ou personnalisés sur des équipements Junos pour ajouter des modèles de données qui ne sont pas pris en charge en mode natif par Junos OS, mais qui peuvent l’être par la traduction. Vous configurez des modèles de données non natifs dans la configuration candidate à l’aide de la syntaxe définie pour ces modèles. Lorsque vous validez la configuration, les scripts de traduction du modèle de données traduisent ces données et valident la configuration Junos OS correspondante en tant que modification temporaire de la configuration d’extraction.

Les configurations candidate et active contiennent les données de configuration des modèles de données YANG non natifs dans la syntaxe définie par ces modèles. Les applications Junos PyEZ peuvent récupérer les données de configuration pour les modèles de données YANG standard et personnalisés, en plus de récupérer la configuration Junos OS native en incluant les arguments appropriés dans le get_config() RPC. Par défaut, les données de configuration non natives ne sont pas incluses dans la get_config() réponse RPC.

Pour récupérer les données de configuration définies par un modèle de données YANG non natif en plus de récupérer la configuration de Junos OS, exécutez le get_config() RPC avec l’argument model et incluez l’argument namespace le cas échéant. L’argument model prend l’une des valeurs suivantes :

  • custom: récupère les données de configuration définies par les modèles de données YANG personnalisés. Vous devez inclure l’argument lors de la namespace récupération des données pour les modèles de données YANG personnalisés.

  • ietf: récupère les données de configuration définies par les modèles de données IETF YANG.

  • openconfig: récupère les données de configuration définies par les modèles de données YANG OpenConfig.

  • True—Récupérez toutes les données de configuration, y compris la configuration complète de Junos OS et les données de n’importe quel modèle de données YANG.

Si vous spécifiez la ietf valeur ou openconfig de l’argument model , Junos PyEZ utilise automatiquement l’espace de noms approprié. Si vous récupérez des données pour un modèle de données YANG personnalisé à l’aide de model='custom', vous devez également inclure l’argument namespace avec l’espace de noms correspondant.

Si vous incluez l’argument model avec la valeur custom, ietfou openconfig et incluez également l’argument filter_xml pour renvoyer une sous-arborescence XML spécifique, Junos OS renvoie uniquement la hiérarchie correspondante à partir du modèle de données non natif. Si la configuration de Junos OS contient une hiérarchie du même nom, par exemple « interfaces », elle n’est pas incluse dans la réponse. L’option filter_xml n’est pas prise en charge lors de l’utilisation de model=True.

Dans l’exemple suivant, le get_config() RPC récupère la hiérarchie de configuration OpenConfig bgp à partir de la configuration candidate sur l’appareil. Si vous omettez l’argument filter_xml , le RPC renvoie les configurations candidates complètes de Junos OS et OpenConfig.

Le RPC suivant récupère la interfaces hiérarchie de configuration à partir de la configuration candidate pour un modèle de données IETF YANG :

Le RPC suivant récupère la l2vpn hiérarchie de configuration à partir de la configuration candidate pour un modèle de données YANG personnalisé avec l’espace de noms donné :

Le RPC suivant récupère la configuration candidate complète de Junos OS, ainsi que les données de configuration des autres modèles de données YANG ajoutés au périphérique :

Spécifier des options RPC supplémentaires

Lorsque vous utilisez le RPC Junos PyEZ get_config() pour récupérer la configuration, il appelle l’opération de protocole <get-configuration> XML Junos. Le RPC prend en charge l’argument options , ce qui vous permet d’inclure un dictionnaire de paires clé/valeur de tous les attributs pris en charge par l’opération <get-configuration> . Pour obtenir la liste complète des attributs pris en charge par l’opération de protocole <get-configuration> XML Junos, reportez-vous à la section <get-configuration>.

Par exemple, le get_config() RPC récupère les données de la configuration pré-héritage, dans laquelle les <groups>balises , <apply-groups>, <apply-groups-except>et <interface-range> sont des éléments distincts dans la sortie de configuration. Pour récupérer des données à partir de la configuration post-héritage, qui affiche les instructions héritées de groupes et de plages définis par l’utilisateur en tant qu’enfants des instructions héritières, vous pouvez inclure l’argument options avec 'inherit':'inherit'.

Par exemple, le code suivant récupère la configuration au niveau de la [edit system services] hiérarchie à partir de la configuration candidate post-héritage. Dans ce cas, si la configuration contient également des instructions configurées au niveau de la [edit groups global system services] hiérarchie, ces instructions sont héritées sous la [edit system services] hiérarchie dans la configuration postérieure à l’héritage et renvoyées dans les données de configuration récupérées.

Comment gérer les espaces de noms dans les données de configuration

Par défaut, le RPC Junos PyEZ get_config() supprime tous les espaces de noms dans les données de configuration renvoyées. Les applications Junos PyEZ peuvent conserver l’espace de noms dans les données de configuration renvoyées, ce qui vous permet de charger à nouveau les données sur un périphérique, par exemple lorsque vous souhaitez modifier rapidement la configuration existante.

Pour conserver les espaces de noms dans les données de configuration, incluez l’argument remove_ns=False dans la liste des get_config() arguments. Par exemple :

Dans la sortie tronquée suivante, l’élément <bgp> conserve l’attribut xmlns qui définit l’espace de noms :

Si l’argument get_config() remove_ns=False est omis, l’espace de noms n’est pas inclus dans la sortie.