Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Uso de Junos PyEZ para recuperar una configuración

Las aplicaciones Junos PyEZ pueden ejecutar llamadas de procedimiento remoto (RPC) a pedido en dispositivos Junos. Después de crear una instancia de la Device clase, una aplicación puede ejecutar RPC como una propiedad de la Device instancia. Las aplicaciones Junos PyEZ pueden usar el get_config() RPC para solicitar la configuración completa o las partes seleccionadas de la configuración tanto para la configuración nativa de Junos OS como para los datos de configuración correspondientes al estándar (IETF, OpenConfig) o a los modelos de datos de YANG personalizados que se agregaron al dispositivo.

Nota:

Junos PyEZ get_config RPC invoca la operación del protocolo <get-configuration> XML de Junos. Para obtener más información acerca de la <get-configuration> operación y sus opciones, consulte <get-configuration>.

En este tema, se explica cómo recuperar la configuración mediante la RPC Junos PyEZ get_config() . Para obtener información acerca del uso de tablas y vistas para recuperar datos de configuración, consulte Definir tablas de configuración de Junos PyEZ y Usar tablas de configuración de Junos PyEZ para recuperar datos de configuración.

Recuperar la configuración completa del candidato

Para recuperar la configuración completa del candidato desde un dispositivo Junos, ejecute la get_config() RPC. El formato de salida predeterminado es XML. Por ejemplo:

Especifique la base de datos de origen para los datos de configuración

Cuando una aplicación Junos PyEZ utiliza la get_config() RPC para recuperar información de configuración de un dispositivo Junos, de forma predeterminada, el servidor devuelve datos de la base de datos de configuración candidata. Una aplicación Junos PyEZ también puede recuperar datos de configuración de la base de datos de configuración confirmada o de la base de datos de configuración efímera.

Base de datos de configuración de candidatos

Para recuperar datos de la base de datos de configuración candidata, ejecute la get_config() RPC e incluya opcionalmente cualquier argumento adicional.

Base de datos de configuración confirmada

Para recuperar datos de la base de datos de configuración confirmada, incluya el options argumento con 'database':'committed' en la get_config() llamada RPC.

Base de datos de configuración efímera

Junos PyEZ admite operaciones en la base de datos de configuración efímera en dispositivos compatibles con esta base de datos. Cuando se recuperan datos de configuración de la base de datos de configuración compartida, de forma predeterminada, los resultados no incluyen datos de la base de datos de configuración efímera.

Nota:

La base de datos efímera es una base de datos de configuración alternativa que proporciona una interfaz programática rápida para realizar actualizaciones de configuración en dispositivos Junos. La base de datos de configuración efímera es una función avanzada que, si se usa incorrectamente, puede tener un impacto negativo grave en el funcionamiento del dispositivo. Para obtener más información, consulte Descripción de la base de datos de configuración efímera.

Para recuperar datos de la instancia predeterminada de la base de datos de configuración efímera, primero abra la instancia efímera predeterminada y, luego, solicite los datos. Para abrir la instancia predeterminada, use un administrador de contexto para crear la Config instancia e incluya el mode='ephemeral' argumento. Por ejemplo:

Para recuperar datos de una instancia específica de la base de datos de configuración efímera, primero abra la instancia efímera y, luego, solicite los datos. Para abrir una instancia definida por el usuario de la base de datos de configuración efímera, use un administrador de contexto para crear la Config instancia, incluya el mode='ephemeral' argumento y establezca el ephemeral_instance argumento en el nombre de la instancia efímera.

Especifique el alcance de los datos de configuración que se deben devolver

Además de recuperar la configuración completa de Junos OS, una aplicación Junos PyEZ puede recuperar partes específicas de la configuración invocando la get_config() RPC con el filter_xml argumento. El filter_xml parámetro toma una cadena que contiene el filtro de subárbol que selecciona las instrucciones de configuración que se devuelven. El filtro de subárbol devuelve los datos de configuración que coincidan con los criterios de selección.

Para solicitar varias jerarquías, la filter_xml cadena debe incluir el <configuration> elemento raíz. De lo contrario, el valor de filter_xml debe representar todos los niveles de la jerarquía de configuración comenzando justo debajo del elemento raíz <configuration> hasta la jerarquía para mostrar. Para seleccionar un subárbol, incluya la etiqueta vacía para ese nivel de jerarquía. Para devolver un objeto específico, incluya un nodo de coincidencia de contenido que defina el elemento y el valor que desea que coincidan.

La siguiente aplicación Junos PyEZ recupera e imprime la configuración en los [edit interfaces] niveles de jerarquía y [edit protocols] en la configuración candidata:

En el ejemplo siguiente, se recupera e imprime la configuración en el [edit system services] nivel jerárquico mediante valores diferentes pero equivalentes para el filter_xml argumento:

En el ejemplo siguiente se recupera el <name> elemento para cada <interface> elemento bajo la <interfaces> jerarquía en la configuración candidata posterior a la herencia:

En el ejemplo siguiente se recupera el subárbol para la interfaz ge-1/0/1:

Especifique el formato de los datos de configuración que se deben devolver

Junos PyEZ get_config() RPC invoca la operación del protocolo <get-configuration> XML junos, que puede devolver datos de configuración de Junos OS como elementos XML de Junos, instrucciones de configuración de CLI, comandos Junos OS set o notación de objetos JavaScript (JSON). De forma predeterminada, la RPC devuelve los get_config() datos de configuración como XML.

Para especificar el formato en el que devolver los datos de configuración, la aplicación Junos PyEZ incluye el options diccionario con 'format':'format' en la lista de get_config() argumentos. Para solicitar instrucciones de configuración de CLI, comandos de Junos OS set o formato JSON, establezca el format valor en text, seto json, respectivamente.

Al igual que en las sesiones de protocolos NETCONF y Junos XML, Junos PyEZ devuelve los datos de configuración en el formato esperado incluido en el elemento XML adecuado para ese formato. La respuesta RPC encierra los datos de configuración en formatos XML, de texto o set de comando en <configuration>, <configuration-text>y <configuration-set> en elementos, respectivamente.

Nota:

Dependiendo de la versión de Python y del formato de la salida, es posible que deba modificar la instrucción print para mostrar una salida más legible para el ser humano.

Recuperar datos de configuración para modelos de datos YANG estándar o personalizados

Puede cargar módulos YANG estandarizados o personalizados en dispositivos Junos para agregar modelos de datos que no son compatibles de forma nativa con Junos OS, pero que pueden ser compatibles con la traducción. Configure modelos de datos no operativos en la configuración candidata mediante la sintaxis definida para esos modelos. Cuando se confirma la configuración, las secuencias de comandos de traducción del modelo de datos traducen esos datos y confirman la configuración correspondiente de Junos OS como un cambio transitorio en la configuración de pago.

El candidato y las configuraciones activas contienen los datos de configuración para los modelos de datos yang no operativos en la sintaxis definida por esos modelos. Las aplicaciones Junos PyEZ pueden recuperar datos de configuración para modelos de datos YANG estándar y personalizados, además de recuperar la configuración nativa de Junos OS mediante la inclusión de los argumentos adecuados en la get_config() RPC. De forma predeterminada, los datos de configuración no operativos no se incluyen en la get_config() respuesta RPC.

Para recuperar datos de configuración definidos por un modelo de datos YANG no operativo, además de recuperar la configuración de Junos OS, ejecute la get_config() RPC con el model argumento e incluya el namespace argumento cuando corresponda. El model argumento toma uno de los siguientes valores:

  • custom— Recuperar datos de configuración definidos por modelos de datos YANG personalizados. Debe incluir el namespace argumento al recuperar datos para modelos de datos DE YANG personalizados.

  • ietf— Recupere los datos de configuración definidos por los modelos de datos IETF YANG.

  • openconfig: recupere los datos de configuración definidos por los modelos de datos de OpenConfig YANG.

  • True— Recupere todos los datos de configuración, incluida la configuración completa de Junos OS y los datos de cualquier modelo de datos YANG.

Si especifica el ietf valor o openconfig para el model argumento, Junos PyEZ utiliza automáticamente el espacio de nombres adecuado. Si recupera datos para un modelo de datos de YANG personalizado mediante el uso model='custom'de , también debe incluir el namespace argumento con el espacio de nombres correspondiente.

Si incluye el model argumento con el valor custom, ietfo openconfig también incluye el filter_xml argumento para devolver un subárbol XML específico, Junos OS solo devuelve la jerarquía coincidente del modelo de datos no secundario. Si la configuración de Junos OS contiene una jerarquía del mismo nombre, por ejemplo "interfaces", no se incluye en la respuesta. La filter_xml opción no se admite cuando se usa model=True.

En el ejemplo siguiente, la get_config() RPC recupera la jerarquía de configuración OpenConfig bgp de la configuración candidata en el dispositivo. Si omite el filter_xml argumento, RPC devuelve las configuraciones completas de candidatos Junos OS y OpenConfig.

El siguiente RPC recupera la interfaces jerarquía de configuración de la configuración candidata para un modelo de datos IETF YANG:

La siguiente RPC recupera la l2vpn jerarquía de configuración de la configuración candidata para un modelo de datos de YANG personalizado con el espacio de nombres dado:

El siguiente RPC recupera la configuración completa del candidato de Junos OS, así como los datos de configuración para otros modelos de datos YANG que se agregaron al dispositivo:

Especifique opciones RPC adicionales

Cuando se usa junos PyEZ get_config() RPC para recuperar la configuración, invoca la operación del protocolo <get-configuration> XML de Junos. La RPC admite el options argumento, lo que le permite incluir un diccionario de pares clave/valor de cualquier atributo compatible con la <get-configuration> operación. Para obtener la lista completa de atributos compatibles con la operación del protocolo <get-configuration> XML de Junos, consulte <get-configuration>.

Por ejemplo, la get_config() RPC recupera datos de la configuración anterior a la herencia, en la cual las <groups>etiquetas , <apply-groups>, <apply-groups-except>y <interface-range> son elementos independientes en el resultado de la configuración. Para recuperar datos de la configuración posterior a la herencia, que muestra instrucciones heredadas de grupos definidos por el usuario y rangos como elementos secundarios de las instrucciones heredadas, puede incluir el options argumento con 'inherit':'inherit'.

Por ejemplo, el código siguiente recupera la configuración en el [edit system services] nivel jerárquico de la configuración candidata posterior a la herencia. En este caso, si la configuración también contiene instrucciones configuradas en el [edit groups global system services] nivel de jerarquía, esas instrucciones se heredarán bajo la [edit system services] jerarquía en la configuración posterior a la herencia y se devuelven en los datos de configuración recuperados.

Cómo manejar los espacios de nombres en los datos de configuración

Junos PyEZ get_config() RPC elimina de forma predeterminada cualquier espacio de nombres en los datos de configuración devueltos. Las aplicaciones Junos PyEZ pueden conservar el espacio de nombres en los datos de configuración devueltos, lo que le permite cargar los datos de nuevo en un dispositivo, como cuando desea modificar rápidamente la configuración existente.

Para conservar espacios de nombres en los datos de configuración, incluya el remove_ns=False argumento en la lista de get_config() argumentos. Por ejemplo:

En el siguiente resultado truncado, el <bgp> elemento conserva el xmlns atributo que define el espacio de nombres:

Si se omite el get_config() remove_ns=False argumento, el espacio de nombres no se incluye en el resultado.