Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Usar Ansible para recuperar o comparar configuraciones de Junos OS

RESUMEN Utilice los módulos Ansible de Juniper Networks para recuperar o comparar configuraciones en dispositivos Junos.

Juniper Networks proporciona módulos de Ansible que le permiten administrar la configuración en dispositivos Junos. En la tabla 1 se describen los módulos disponibles, que permiten recuperar o comparar configuraciones de Junos OS.

Tabla 1: Módulos para recuperar o comparar configuraciones

Conjunto de contenido

Nombre del módulo

juniper.device colección

config

Juniper.junos rol

juniper_junos_config

Nota:

A partir Juniper.junos de la versión 2.0.0, el juniper_junos_config módulo combina y reemplaza la funcionalidad de los junos_commitmódulos, junos_get_config, junos_install_configy junos_rollback .

Puede utilizar los módulos para solicitar la configuración completa o partes seleccionadas de la configuración tanto para la configuración nativa de Junos OS como para los datos de configuración correspondientes a modelos de datos YANG de terceros que se hayan agregado al dispositivo. Para recuperar la configuración de un dispositivo Junos, ejecute el config módulo o juniper_junos_config con el retrieve parámetro. La respuesta del módulo incluye la configuración en formato de texto en las config claves y config_lines , a menos que la return_output opción esté establecida en false. También puede comparar la configuración activa con una configuración previamente confirmada.

En las siguientes secciones se explica cómo utilizar los módulos para recuperar o comparar configuraciones de Junos OS.

Cómo especificar la base de datos de origen para los datos de configuración

Cuando utilice el config módulo o juniper_junos_config para recuperar la configuración, debe incluir el retrieve parámetro en la lista de argumentos del módulo y especificar la base de datos de configuración de la que recuperar los datos. Puede recuperar datos de la base de datos de configuración confirmada o de la base de datos de configuración candidata estableciendo retrieve en 'committed' o 'candidate', respectivamente.

Base de datos de configuración confirmada

El siguiente manual recupera la configuración confirmada completa en formato de texto para cada dispositivo del grupo de inventario:

Base de datos de configuración candidata

En el siguiente manual se recupera la configuración candidata completa en formato de texto para cada dispositivo del grupo de inventario. El módulo devuelve un error si la base de datos está bloqueada o modificada.

Cómo especificar el ámbito de los datos de configuración que se van a devolver

Además de recuperar la configuración completa de Junos OS, puede utilizar los config módulos y juniper_junos_config para recuperar partes específicas de la configuración incluyendo el parámetro del filter módulo. El filter valor del parámetro es una cadena que contiene el filtro de subárbol que selecciona las instrucciones de configuración que se van a devolver. El filtro de subárbol devuelve los datos de configuración que coinciden con los criterios de selección. Cuando se solicitan varias jerarquías, el valor de filter debe representar todos los niveles de la jerarquía de configuración desde la raíz (representada por el <configuration> elemento) hasta cada elemento que se va a mostrar.

En el siguiente manual se recupera e imprime la configuración en los niveles jerárquico [edit interfaces] y [edit protocols] en la base de datos de configuración confirmada para cada dispositivo:

El siguiente manual recupera e imprime la configuración de la interfaz ge-1/0/1:

El siguiente manual recupera e imprime la configuración confirmada en el nivel de [edit system services] jerarquía:

Cómo especificar el formato de los datos de configuración que se devolverán

Cuando se utiliza el config módulo o juniper_junos_config para recuperar la configuración, el módulo invoca la operación de protocolo <get-configuration> XML de Junos, que puede devolver datos de configuración de Junos OS como texto con formato, elementos XML de Junos, comandos de Junos OS set o notación de objetos JavaScript (JSON). De forma predeterminada, el módulo devuelve datos de configuración como texto con formato, que utiliza nuevas líneas, tabulaciones y otros espacios en blanco, llaves y corchetes para indicar las relaciones jerárquicas entre las instrucciones.

Para especificar el formato en el que se devolverán los datos de configuración, establezca el format parámetro igual al formato deseado. Para solicitar explícitamente el formato de texto o para solicitar elementos XML de Junos, comandos de Junos OS set o formato JSON, establezca el format valor en 'text', 'xml', 'set'o 'json', respectivamente. Las config claves y config_lines contienen la configuración en el formato solicitado. Si solicita el formato Junos XML o JSON, la config_parsed clave contiene la configuración equivalente en formato JSON.

El siguiente manual recupera la configuración confirmada completa para cada dispositivo del grupo de inventario en formato XML:

Cómo recuperar datos de configuración para modelos de datos YANG de terceros

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. Los modelos de datos no nativos se configuran en la configuración candidata mediante la sintaxis definida para dichos modelos. Al confirmar la configuración, los scripts 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 retirada.

Las configuraciones candidatas y activas contienen los datos de configuración de los modelos de datos de YANG no nativos en la sintaxis definida por esos modelos. Puede utilizar el config módulo o juniper_junos_config para recuperar datos de configuración para modelos de datos YANG estándar (IETF, OpenConfig) y personalizados, además de recuperar la configuración nativa de Junos OS incluyendo los argumentos de módulo adecuados. De forma predeterminada, los datos de configuración para modelos de datos YANG de terceros no se incluyen en la respuesta del módulo.

Para recuperar datos de configuración definidos por un modelo de datos de YANG no nativo, además de recuperar la configuración de Junos OS, ejecute el módulo con el model parámetro e incluya el namespace parámetro cuando corresponda. El model argumento toma uno de los siguientes valores:

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

  • ietf: recupera datos de configuración definidos por los modelos de datos de YANG de IETF.

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

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

Si especifica el ietf valor o openconfig para el model argumento, el módulo utiliza automáticamente el espacio de nombres adecuado. Si recupera datos para un modelo de datos YANG personalizado mediante model: "custom", 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 argumento para devolver un subárbol XML específico, Junos OS solo devuelve la jerarquía coincidente del modelo de datos no nativo. 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 opción no se admite cuando se utiliza model: "True".

Cuando utilice el config módulo o juniper_junos_config para recuperar datos de configuración no nativos, sólo puede especificar el formato de los datos devueltos si también incluye el filter parámetro. Si omite el filter parámetro, debe especificar format: "xml".

El siguiente manual recupera la jerarquía de configuración de OpenConfig interfaces de la configuración confirmada. Si omite el filter argumento, RPC devuelve las configuraciones completas de Junos OS y OpenConfig.

La siguiente tarea recupera la l2vpn jerarquía de configuración de la configuración confirmada para un modelo de datos de YANG personalizado con el espacio de nombres especificado:

La siguiente tarea recupera la configuración confirmada completa de Junos OS, así como los datos de configuración de otros modelos de datos de YANG que se agregaron al dispositivo:

Cómo especificar opciones que no tienen un argumento de módulo equivalente

Cuando se utiliza el config módulo o juniper_junos_config para recuperar la configuración, el módulo invoca la operación del protocolo <get-configuration> XML de Junos. Los módulos admiten argumentos explícitos para muchos de los <get-configuration> atributos, por ejemplo, el format atributo. Los módulos también admiten el options argumento, que permite incluir cualquier atributo adicional <get-configuration> que no tenga un argumento de módulo equivalente. El options argumento toma un diccionario de pares clave/valor de cualquier atributo admitido por la <get-configuration> operación.

Para obtener la lista completa de atributos admitidos por la operación del protocolo <get-configuration> XML de Junos, consulte https://www.juniper.net/documentation/en_US/junos/topics/reference/tag-summary/junos-xml-protocol-get-configuration.html.

Por ejemplo, los módulos recuperan datos de la configuración previa a la herencia, en la que las <groups>etiquetas , <apply-groups><apply-groups-except>, y <interface-range> son elementos independientes en la salida de la configuración. Para recuperar datos de la configuración posterior a la herencia, que muestra instrucciones heredadas de grupos y rangos definidos por el usuario como elementos secundarios de las instrucciones heredadas, puede incluir el options argumento con inherit: "inherit".

En el siguiente manual se recuperan los datos de configuración en el nivel de jerarquía de la configuración confirmada posterior a la [edit system services] herencia. En este caso, si la configuración también contiene instrucciones configuradas en el nivel de jerarquía, dichas instrucciones se heredarán [edit system services] en la configuración posterior a la [edit groups global system services] herencia y se devolverán en los datos de configuración recuperados.

Cómo guardar datos de configuración en un archivo

Cuando utilice el config módulo o juniper_junos_config para recuperar la configuración, puede guardar los datos de configuración devueltos en un archivo en el nodo de control de Ansible local incluyendo el parámetro o dest_dir el módulo o dest . La dest_dir opción solo especifica un directorio, y la opción puede especificar tanto una ruta como un nombre de dest archivo. Si ya existe un archivo de salida con el nombre de destino, el módulo sobrescribe el archivo.

Para especificar el directorio en el nodo de control local de Ansible donde se guardan las configuraciones recuperadas, incluya el dest_dir argumento y defina la ruta al directorio de destino. La configuración de cada dispositivo se almacena en un archivo independiente denominado hostname.config.

En el siguiente manual se recupera la configuración confirmada de todos los dispositivos del grupo de inventario y se guarda cada configuración de dispositivo en un archivo independiente del directorio configs del directorio del manual del nodo de control de Ansible:

Para especificar la ruta de acceso y el nombre de archivo de los archivos de salida, incluya el dest argumento y defina la ruta de acceso absoluta o relativa del archivo. Si incluye el dest argumento, pero omite el directorio, los archivos se guardan en el directorio del manual. Si recupera la configuración para varios dispositivos, el dest argumento debe incluir una variable como {{ inventory_hostname }} para diferenciar el nombre de archivo de cada dispositivo. Si no diferencia los nombres de archivo, el archivo de configuración de cada dispositivo sobrescribirá el archivo de configuración de los demás dispositivos.

En el siguiente manual se recupera la [edit system services] jerarquía de la base de datos de configuración confirmada en todos los dispositivos del grupo de inventario y se guarda cada configuración de dispositivo en un archivo independiente del directorio del manual del nodo de control de Ansible. Cada archivo se identifica de forma única por el nombre de host del dispositivo.

Si está guardando los datos de configuración en archivos y no desea duplicar los datos de configuración en la respuesta del módulo, puede incluirlos return_output: false opcionalmente en la lista de argumentos del módulo. Si se establece return_output en false , el módulo omite las configclaves , config_linesy config_parsed en su respuesta. Esto puede ser necesario si los dispositivos devuelven una cantidad significativa de datos de configuración.

Cómo comparar la configuración activa con una configuración anterior

Los config módulos y juniper_junos_config le permiten comparar la configuración activa con una configuración previamente confirmada o con una configuración de reversión. Para comparar la configuración activa con una configuración anterior, incluya los siguientes argumentos de módulo:

De forma predeterminada, cuando se incluye el rollback: id argumento, el módulo revierte la configuración, realiza una comprobación de confirmación y confirma los cambios. Debe incluir el commit: false argumento para comparar solo las configuraciones y evitar que el módulo cargue y confirme la configuración de reversión. Incluir el check: false argumento evita la operación de comprobación de confirmación innecesaria.

Los módulos devuelven las diff claves y diff_lines , que contienen las diferencias de configuración entre la configuración activa y la anterior en formato diff o patch.

  • diff— diccionario que contiene una sola clave denominada prepared y su valor, que es una sola cadena multilínea que contiene las diferencias.

    Nota:

    A partirJuniper.junos de la versión 2.2.0, la diff clave devuelve un diccionario en lugar de una cadena.

  • diff_lines—Lista de cadenas de una sola línea que contienen las diferencias.

Para guardar las diferencias en un archivo del nodo de control local de Ansible, incluya el diffs_file argumento y defina la ruta absoluta o relativa del archivo de salida. Si incluye el diffs_file argumento pero omite el directorio, los archivos se guardan en el directorio del manual. Si compara las configuraciones en varios dispositivos, el diffs_file argumento debe incluir una variable como {{ inventory_hostname }} para diferenciar el nombre de archivo de cada dispositivo. Si no diferencia los nombres de archivo, el archivo de salida de cada dispositivo sobrescribirá el archivo de salida de los demás dispositivos.

En el siguiente manual se solicita el ID de reversión de una configuración confirmada anteriormente, se compara la configuración confirmada con la configuración de reversión especificada, se guarda la comparación en un archivo con nombre único y también se imprime la respuesta en el resultado estándar:

Tabla de historial de cambios

La compatibilidad con las funciones viene determinada por la plataforma y la versión que esté utilizando. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.

Lanzamiento
Descripción
2.2.0
A partir Juniper.junos de la versión 2.2.0, la diff clave devuelve un diccionario en lugar de una cadena.
2.0.0
A partir Juniper.junos de la versión 2.0.0, el juniper_junos_config módulo combina y reemplaza la funcionalidad de los junos_commitmódulos, junos_get_config, junos_install_configy junos_rollback .