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 un módulo de Ansible que le permite administrar la configuración en dispositivos Junos. En la Tabla 1 se describe el módulo disponible, que puede utilizar para recuperar o comparar configuraciones de dispositivos Junos.

Tabla 1: Módulo para recuperar o comparar configuraciones

Conjunto de contenido

Nombre del módulo

juniper.device colección

config

Puede utilizar el juniper.device.config módulo 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 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 secciones siguientes se explica cómo utilizar el módulo para recuperar o comparar configuraciones.

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

Cuando utilice el juniper.device.config módulo para recuperar la configuración, debe incluir el retrieve parámetro en la lista de argumentos del módulo. El retrieve parámetro especifica la base de datos de configuración de la que se recuperarán los datos. Puede establecer retrieve los siguientes valores para devolver datos de configuración de la base de datos correspondiente:

  • retrieve: 'candidate': recupera datos de la configuración candidata.

  • retrieve: 'committed': recupera datos de la configuración confirmada.

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 recuperar partes específicas de la configuración incluyendo el config 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. Si solicita 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 juniper.device.config módulo 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 en diferentes formatos. De forma predeterminada, el módulo devuelve los datos de configuración como texto con formato. El formato de texto 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 devolver los datos de configuración, establezca el config parámetro del format módulo igual al formato deseado. Los valores aceptables incluyen:

  • 'json'—Notación de objetos JavaScript (JSON)

  • 'set'—Comandos de Junos OS set

  • 'text'—Texto con formato (predeterminado)

  • 'xml'—Elementos XML de Junos

En la salida del manual, 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 módulo para recuperar datos de juniper.device.config configuración para modelos de datos YANG estándar (IETF, OpenConfig) y personalizados, además de recuperar la configuración nativa de Junos OS. 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 el model argumento especifica ietf o openconfig, el módulo utiliza automáticamente el espacio de nombres adecuado. Si especifica model: "custom" recuperar datos para un modelo de datos YANG personalizado, 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 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 juniper.device.config módulo para recuperar la configuración, el módulo invoca la operación del protocolo <get-configuration> XML de Junos. El módulo admite argumentos explícitos para muchos de los <get-configuration> atributos, por ejemplo, el format atributo. El módulo también admite el options argumento, lo 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 <get-configuration>.

Por ejemplo, el config módulo recupera 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 juniper.device.config módulo 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 dest_dir o 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.

El siguiente manual recupera la configuración confirmada de todos los dispositivos del grupo de inventario. El playbook guarda cada configuración del dispositivo en un archivo independiente del directorio configs del directorio playbook 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. El manual 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. Puede ser necesario hacer esto si el dispositivo devuelve una cantidad significativa de datos de configuración.

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

El juniper.device.config módulo le permite comparar la configuración activa con una configuración previamente confirmada o 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.

El módulo devuelve las diff claves y diff_lines . Las claves 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.

  • 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 identificador de reversión de una configuración confirmada anteriormente. A continuación, el manual compara la configuración confirmada con la configuración de reversión especificada, guarda la comparación en un archivo con nombre único y también imprime la respuesta a la salida estándar.