Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utilice el juniper.device.config módulo Ansible para administrar la configuración de Junos OS

Puede utilizar el juniper.device.config módulo de Ansible para administrar la configuración en dispositivos que ejecutan Junos OS y dispositivos que ejecutan Junos OS Evolved.

Juniper Networks proporciona módulos de Ansible que le permiten configurar dispositivos Junos. En la Tabla 1 se describen los módulos disponibles. Si ya está utilizando un conjunto determinado de módulos de la juniper.device colección, use el módulo para ese conjunto.

Tabla 1: Módulos para gestionar la configuración

Colección

Conjunto de módulos

Nombre del módulo

juniper.device

juniper.device

juniper.device.config

junipernetworks.junos

juniper.device.junos_config

En las siguientes secciones se describe cómo usar el juniper.device.config módulo para modificar y confirmar la configuración en dispositivos Junos. Para obtener más información acerca del juniper.device.junos_config módulo, consulte Uso del módulo de Ansible de juniper.device.junos_config para configurar dispositivos Junos.

Descripción general del módulo

El juniper.device.config módulo le permite realizar las siguientes operaciones en dispositivos Junos:

  • Cargar datos de configuración

  • Confirmar la configuración

  • Revertir la configuración

  • Cargue la configuración de rescate

El proceso básico para realizar cambios de configuración consiste en bloquear la configuración, cargar los cambios de configuración, confirmar la configuración para activarla y, luego, desbloquear la configuración. La cuenta de usuario que se usa para realizar cambios de configuración debe tener permisos para cambiar las partes relevantes de la configuración en cada dispositivo. Para modificar la configuración, la lista de argumentos del módulo debe incluir uno de los siguientes parámetros:

  • load: cargue nuevos datos de configuración.

  • rollback: revertir a la configuración de rescate o a una configuración previamente confirmada.

De forma predeterminada, el juniper.device.config módulo realiza cambios en la base de datos de configuración candidata mediante configure exclusive el modo, que bloquea y desbloquea automáticamente la configuración global candidata. También puede especificar un modo de configuración diferente. Por ejemplo, puede realizar cambios en una copia privada de la configuración candidata o en la base de datos de configuración efímera. Para obtener más información sobre cómo especificar el modo de configuración, consulte Cómo especificar el modo de configuración.

Al cargar nuevos datos de configuración, además de especificar el modo de configuración, también puede especificar la operación de carga y el origen y formato de los cambios.

El juniper.device.config módulo también le permite cargar y confirmar la configuración de rescate o revertir la configuración a una configuración previamente confirmada. Para cargar la configuración de rescate o una configuración previamente confirmada, debe incluir el argumento module rollback . Para obtener más información, consulte las secciones siguientes:

Después de modificar la configuración, debe confirmar la configuración para que sea la configuración activa en el dispositivo. De forma predeterminada, el juniper.device.config módulo confirma los cambios en la configuración. Para modificar este comportamiento o proporcionar opciones de confirmación adicionales, consulte Cómo confirmar la configuración.

De forma predeterminada, cuando el juniper.device.config módulo incluye los load argumentos o rollback , la respuesta del módulo devuelve automáticamente los cambios de configuración en formato diff o patch. El módulo devuelve las diferencias en los diff campos y diff_lines . Para evitar que el módulo calcule y devuelva las diferencias, establezca el argumento del diff módulo en false.

Cómo especificar el modo de configuración

Puede especificar el modo de configuración que se utilizará al modificar la configuración del dispositivo. Para especificar el modo de configuración en la tarea, incluya el parámetro del config_mode módulo. Los modos de configuración admitidos incluyen:

  • batch

  • dynamic

  • ephemeral

  • exclusive

  • private

De forma predeterminada, el juniper.device.config módulo realiza cambios en la base de datos de configuración del candidato mediante configure exclusive el modo. Configurar modo exclusivo bloquea la configuración global candidata (también conocida como base de datos de configuración compartida) durante el tiempo que el módulo requiera para realizar los cambios de configuración solicitados. El bloqueo de la base de datos impide que otros usuarios modifiquen o confirmen cambios en la base de datos al mismo tiempo.

En los ejemplos siguientes se muestra cómo configurar una copia privada de la configuración candidata y cómo configurar la base de datos efímera.

Ejemplo: config_mode: "privado"

En el siguiente manual, se utiliza private el modo de configuración para modificar una copia privada de la configuración candidata:

Configurar la base de datos efímera

Puede usar el juniper.device.config módulo para actualizar la base de datos de configuración efímera en dispositivos que admitan esta base de datos. La base de datos efímera es una base de datos de configuración alternativa que ofrece una interfaz programática rápida para realizar actualizaciones de configuración en dispositivos Junos.

Para abrir y configurar la instancia predeterminada de la base de datos de configuración efímera, incluya el config_mode: ephemeral argumento. Por ejemplo:

Para abrir y configurar una instancia existente definida por el usuario de la base de datos de configuración efímera, incluya el config_mode: ephemeral argumento y establezca el ephemeral_instance argumento en el nombre de la instancia.

Cómo especificar la acción de carga

El juniper.device.config módulo admite la carga de cambios de configuración mediante muchas de las mismas operaciones de carga admitidas en la CLI de Junos OS. La operación de carga se especifica estableciendo el argumento del load módulo en el valor de la operación de carga correspondiente. La Tabla 2 resume los valores de argumento para las diferentes operaciones de carga.

Tabla 2: Parámetros para especificar la operación de carga

Operación de carga

load Argumento

Descripción

load merge

load: merge

Combine la configuración cargada con la configuración existente.

load override

load: override

Reemplace toda la configuración con la configuración cargada. Todos los procesos del sistema analizan la configuración.

load patch

load: patch

Cargue los datos de configuración desde un archivo de parche.

load replace

load: replace

Combine la configuración cargada con la configuración existente, pero reemplace las instrucciones de la configuración existente por instrucciones de la configuración cargada que especifiquen la replace: etiqueta. Si la instrucción no está en la configuración existente, se agrega la instrucción en la configuración cargada.

load set

load: set

Cargue los datos de configuración que están en set formato. Los datos de configuración se cargan línea por línea y pueden contener comandos de modo de configuración como set, , deletey deactivate.

load update

load: update

Cargue una configuración completa y compárela con la configuración existente. Reemplace solo las partes de la configuración candidata que hayan cambiado. Durante la operación de confirmación, solo los procesos del sistema afectados analizan la nueva configuración.

Cómo especificar el formato de los datos de configuración que se van a cargar

El juniper.device.config módulo le permite configurar dispositivos Junos mediante uno de los formatos estándar compatibles. Puede proporcionar los datos de configuración como cadenas o archivos. Los archivos pueden contener datos de configuración o plantillas Jinja2. Cuando se proporcionan datos de configuración en una cadena, archivo o plantilla Jinja2, los formatos admitidos para los datos incluyen texto, elementos XML de Junos, comandos de Junos OS set y JSON.

El juniper.device.config módulo intenta detectar automáticamente el formato de los datos de configuración que se proporcionan como cadenas dentro del lines argumento. Sin embargo, puede especificar explícitamente el formato de las cadenas incluyendo el format argumento. Cuando proporcione datos de configuración en un archivo o plantilla Jinja2, debe especificar el formato de los datos. Agregue la extensión adecuada al archivo o incluya el format argumento.

En la tabla 3 se resumen los formatos admitidos para los datos de configuración y el valor correspondiente para la extensión de archivo y format el parámetro. Si incluye el format argumento, anula tanto el formato de detección automática para cadenas como el formato indicado por una extensión de archivo.

Tabla 3: Especificación del formato para los datos de configuración

Formato de datos de configuración

Extensión de archivo

format Parámetro

Instrucciones de configuración de la CLI (texto)

.conf

text

Notación de objetos JavaScript (JSON)

.json

json

set Comandos de Junos OS

.set

set

Elementos XML de Junos

.xml

xml

Nota:

Cuando establezca el argumento del load módulo en override o update, no puede utilizar el formato de comando de Junos OS set .

Cómo cargar los datos de configuración como cadenas

El juniper.device.config módulo le permite cargar datos de configuración desde una lista de cadenas. Para cargar datos de configuración como cadenas, incluya el argumento adecuado load y el lines argumento. El lines argumento toma una lista de cadenas que contienen los datos de configuración que se van a cargar.

El módulo intenta detectar automáticamente el formato de los lines datos de configuración. Sin embargo, puede especificar explícitamente el formato incluyendo el format argumento. Para obtener información acerca de cómo especificar el formato, vea Cómo especificar el formato de los datos de configuración que se van a cargar. Si incluye el format argumento, anula el formato detectado automáticamente.

El siguiente manual configura y confirma dos scripts de op. En este caso, el load argumento tiene el valor 'set' porque los datos de configuración utilizan lines el formato de instrucción de Junos OS set .

En el siguiente manual, se configuran las mismas instrucciones con lines los datos de configuración en formato de texto. En este caso, el ejemplo utiliza load: "merge".

Cómo cargar datos de configuración desde un archivo local o remoto

El juniper.device.config módulo le permite cargar datos de configuración desde un archivo. El archivo puede residir en una de las siguientes ubicaciones:

  • Nodo de control de Ansible

  • Dispositivo del cliente

  • URL FTP o HTTP a la que se puede acceder desde el dispositivo del cliente

Cuando cargue datos de configuración desde un archivo, debe indicar la ubicación del archivo y el formato de los datos de configuración en el archivo. Los formatos de datos de configuración admitidos incluyen texto, elementos XML de Junos, comandos de Junos OS set y JSON. Para obtener información acerca de cómo cargar archivos que contienen plantillas Jinja2, consulte Cómo cargar datos de configuración utilizando una plantilla Jinja2.

Para especificar el formato, incluya el parámetro del format módulo o agregue la extensión adecuada al archivo de datos de configuración. Si especifica el format parámetro, anula el formato indicado por la extensión de archivo. Para obtener información acerca de cómo especificar el formato, vea Cómo especificar el formato de los datos de configuración que se van a cargar. Cuando los datos de configuración utilizan el formato XML de Junos, debe incluir los datos en la etiqueta de nivel <configuration> superior.

Nota:

No es necesario incluir los datos de configuración formateados como texto, comandos de Junos OS set o JSON en <configuration-text>, <configuration-set>o <configuration-json> etiquetas como se requiere al configurar el dispositivo directamente en una sesión de NETCONF.

En la tabla 4 se describen los parámetros de módulo que puede incluir para especificar la ubicación del archivo.

Tabla 4: Especificación de la ubicación del archivo de configuración

Parámetro del módulo

Descripción

src

  • Ruta absoluta o relativa a un archivo en el nodo de control de Ansible. El directorio predeterminado es el directorio del libro de estrategias.

url

  • Ruta absoluta o relativa a un archivo en el dispositivo cliente. El directorio predeterminado en el dispositivo cliente es el directorio de trabajo actual, que por defecto es el directorio de inicio del usuario.

  • FTP URL

  • HTTP URL

Para cargar datos de configuración desde un archivo local en el nodo de control de Ansible, establezca el src argumento en la ruta absoluta o relativa del archivo que contiene los datos de configuración. Por ejemplo:

Para cargar datos de configuración desde un archivo en el dispositivo Junos o desde una URL FTP o HTTP, use el url parámetro. Especifique la ruta o la URL del archivo que se va a cargar. Por ejemplo:

El valor de url puede ser una ruta de archivo local absoluta o relativa, una ubicación FTP o una URL HTTP.

  • La ruta de un archivo local en el dispositivo de destino tiene una de las siguientes formas:

    • /path/filename: archivo en un sistema de archivos montado, ya sea en el disco flash local o en el disco duro.

    • respuesta:filename o a:path/filename—Archivo en la unidad local. La ruta predeterminada es / (el directorio de nivel raíz). Los medios extraíbles pueden estar en formato MS-DOS o UNIX (UFS).

  • La ruta de un archivo en un servidor FTP tiene la siguiente forma:

  • La ruta de un archivo en un servidor HTTP tiene la siguiente forma:

En cada caso, el valor predeterminado de la path variable es el directorio de inicio del usuario. Para especificar una ruta absoluta, la aplicación inicia la ruta con los caracteres %2F; por ejemplo, ftp://username:password@hostname/%2Fpath/filename.

Cómo cargar datos de configuración usando una plantilla Jinja2

El juniper.device.config módulo le permite representar datos de configuración desde un archivo de plantilla Jinja2 en el nodo de control de Ansible y cargar y confirmar la configuración en un dispositivo Junos. Jinja es un motor de plantillas para Python que le permite generar documentos a partir de plantillas predefinidas. Las plantillas, que son archivos de texto en el idioma deseado, brindan flexibilidad mediante el uso de expresiones y variables. Puede crear datos de configuración de Junos OS mediante plantillas Jinja2 en uno de los formatos de configuración compatibles, lo que incluye texto ASCII, elementos XML de Junos, comandos de Junos OS set y JSON. El módulo de Ansible utiliza la plantilla Jinja2 y un diccionario de variables suministrado para representar los datos de configuración.

Para cargar y confirmar datos de configuración mediante una plantilla Jinja2, incluya los template parámetros and vars en la lista de argumentos del módulo.

  • template—Ruta del archivo de plantilla Jinja2

  • vars—Diccionario de claves y valores necesarios para renderizar la plantilla Jinja2

También debe incluir el format parámetro cuando la extensión de archivo de la plantilla no indique el formato de los datos. Para obtener información acerca de cómo especificar el formato, vea Cómo especificar el formato de los datos de configuración que se van a cargar.

Por ejemplo, el archivo interfaces-mpls.j2 contiene la siguiente plantilla Jinja2:

Para usar el juniper.device.config módulo para cargar la plantilla Jinja2, establezca el template argumento en la ruta del archivo de plantilla. Defina las variables requeridas por la plantilla en el vars diccionario.

En el siguiente manual, se utiliza la plantilla Jinja2 y el vars diccionario para representar los datos de configuración. El format parámetro indica el formato de los datos de configuración en el archivo de plantilla. El manual carga y confirma la configuración en el host de destino.

El módulo genera los siguientes datos de configuración. El módulo carga los datos en la configuración candidata en el dispositivo y los confirma.

Cómo cargar la configuración de rescate

Una configuración de rescate permite definir una configuración de trabajo conocida o una configuración con un estado conocido que puede restaurar en cualquier momento. Utilice la configuración de rescate cuando necesite revertir a una configuración conocida o como último recurso si la configuración del dispositivo y los archivos de configuración de copia de seguridad se dañan sin posibilidad de reparación. Cuando se crea una configuración de rescate, el dispositivo guarda la última configuración confirmada como configuración de rescate.

El juniper.device.config módulo le permite revertir a una configuración de rescate existente en dispositivos Junos. Para cargar y confirmar la configuración de rescate en un dispositivo, incluya el argumento del rollback: rescue módulo. Por ejemplo:

Cómo revertir la configuración

Los dispositivos Junos almacenan una copia de la configuración confirmada más reciente y hasta 49 configuraciones anteriores, según la plataforma. Puede revertir a cualquiera de las configuraciones almacenadas. Esta característica es útil cuando los cambios de configuración generan resultados no deseados y desea revertir a una configuración de trabajo conocida. La reversión de la configuración es similar al proceso para realizar cambios de configuración en el dispositivo. Sin embargo, en lugar de cargar los datos de configuración, se realiza una reversión, que sustituye toda la configuración candidata por una configuración previamente confirmada.

El juniper.device.config módulo le permite revertir a una configuración previamente confirmada en dispositivos Junos. Para revertir la configuración y confirmarla, incluya el argumento del rollback módulo y especifique el ID de la configuración de reversión. Los valores de ID válidos son 0 (cero, para la configuración confirmada más reciente) y uno menos que el número de configuraciones anteriores almacenadas (el máximo es 49).

En el siguiente manual, se solicita primero el ID de reversión de la configuración que se va a restaurar. La primera tarea revierte la configuración a la versión solicitada y la confirma. La segunda tarea imprime las diferencias de configuración en la salida estándar.

Cómo confirmar la configuración

De forma predeterminada, cuando se usa el juniper.device.config módulo para modificar la configuración, el módulo realiza automáticamente una comprobación de confirmación y confirma los cambios. Para evitar que el módulo realice una comprobación de confirmación o confirme los cambios, establezca el check argumento or commit en false, respectivamente.

También puede personalizar la operación de confirmación con muchas de las mismas opciones que están disponibles en la CLI de Junos OS. En la tabla 5 se describen los argumentos del módulo que se pueden usar para especificar distintas opciones de confirmación.

Tabla 5: Opciones de confirmación

Argumento del módulo

Descripción

Valor predeterminado para load y rollback operaciones

check: boolean

Realice una comprobación de confirmación o confirme una operación de confirmación confirmada anterior.

true

check_commit_wait: seconds

Espere el número de segundos especificado entre la comprobación de confirmación y la operación de confirmación.

comment: "string"

Registre un comentario para esa operación de confirmación en el archivo de registro del sistema y en el historial de confirmación del dispositivo.

commit: boolean

Confirme los cambios de configuración o confirme una operación de confirmación confirmada anteriormente.

true

commit_empty_changes: boolean

Confirme la configuración incluso si la configuración candidata no tiene cambios.

false

commit_force_sync: boolean

Sincronice y confirme la configuración en todos los motores de enrutamiento, incluso si el otro motor de enrutamiento tiene sesiones de configuración abiertas o cambios de configuración no confirmados.

false

commit_sync: boolean

Sincronice y confirme la configuración en todos los motores de enrutamiento.

false

confirmed: minutes

Requerir que una operación de confirmación se confirme dentro de un período de tiempo especificado después de la confirmación inicial. Si no confirma la confirmación en el tiempo especificado, revierta a la configuración confirmada anteriormente.

Confirme la confirmación mediante la commit: true opción o la check: true opción.

timeout: seconds

Espere a que finalice la operación con el valor especificado como tiempo de espera.

30 segundos

Confirmar comentario

Cuando confirme la configuración, puede incluir un breve comentario para describir el propósito de los cambios confirmados. Para registrar un comentario que describa los cambios, incluya el comment: "comment string" argumento con la cadena de mensaje.

Comprobación de confirmación

De forma predeterminada, el juniper.device.config módulo ejecuta una comprobación de confirmación y una operación de confirmación. El check_commit_wait argumento define el número de segundos que se deben esperar entre las operaciones de confirmación, comprobación y confirmación. Incluya este argumento cuando necesite proporcionar tiempo suficiente para que el dispositivo complete la operación de comprobación de confirmación y libere el bloqueo de configuración antes de iniciar la operación de confirmación. Si el dispositivo inicia la operación de confirmación antes de que la operación de comprobación de confirmación libere su bloqueo en la configuración, se producirá un error en la operación de confirmación y el módulo emitirá un CommitErrorarchivo .

Confirmar cambios vacíos

De forma predeterminada, si la configuración candidata y la configuración confirmada no tienen diferencias, el módulo no confirma los cambios. Para forzar una operación de confirmación incluso cuando no hay diferencias, incluya el commit_empty_changes: true argumento.

Confirmar Sincronizar

Si el dispositivo tiene motores de enrutamiento duales, puede sincronizar y confirmar la configuración en ambos motores de enrutamiento si incluye el commit_sync: true argumento. Para forzar que la commit synchronize operación se realice correctamente, incluso si el otro motor de enrutamiento tiene sesiones de configuración abiertas o cambios de configuración no confirmados, use el commit_force_sync: true argumento. Cuando se incluye esta commit_force_sync: true opción, el dispositivo finaliza cualquier sesión de configuración en el otro motor de enrutamiento antes de sincronizar y confirmar la configuración.

Confirmar confirmación

Para requerir que una operación de confirmación se confirme dentro de un período de tiempo especificado después de la confirmación inicial, incluya el confirmed: minutes argumento. Si no confirma la confirmación dentro del límite de tiempo establecido, la configuración se revierte automáticamente a la configuración confirmada anteriormente. El intervalo permitido es de 1 a 65.535 minutos. La operación de confirmación confirmada es útil para comprobar que un cambio de configuración funciona correctamente y no impide el acceso de administración al dispositivo. Si el cambio impide el acceso o provoca otros errores, la reversión automática a la configuración anterior habilita el acceso al dispositivo una vez finalizada la fecha límite de reversión. Para confirmar la operación de confirmación, invoque el módulo con el juniper.device.config check: true argumento or commit: true .

En el manual siguiente, la primera tarea modifica la configuración, espera 10 segundos entre la comprobación de confirmación y la operación de confirmación, y requiere que la operación de confirmación se confirme en un plazo de 5 minutos. También registra un comentario para la confirmación. La segunda tarea emite una commit check operación para confirmar la confirmación. En un escenario real, puede realizar tareas de validación después de la confirmación inicial y solo ejecutar la confirmación de confirmación si las tareas pasan ciertos criterios de validación.

Cómo ignorar las advertencias al configurar dispositivos

El juniper.device.config módulo le permite modificar y confirmar la configuración en dispositivos Junos. En algunos casos, la respuesta RPC puede contener <rpc-error> elementos con un nivel de gravedad de advertencia o superior que hacen que el módulo genere una RpcError excepción. Una RpcError excepción puede provocar un error en la operación de carga o confirmación.

En algunos casos, puede ser necesario o conveniente suprimir las RpcError excepciones que se generan en respuesta a las advertencias para las operaciones de carga y confirmación. Puede indicar al módulo que suprima RpcError las juniper.device.config excepciones que se generan para las advertencias incluyendo el ignore_warning parámetro en la lista de argumentos del módulo. El ignore_warning argumento toma un booleano, una cadena o una lista de cadenas.

Para indicar al módulo que ignore todas las advertencias para las operaciones de carga y confirmación realizadas por el módulo, incluya el ignore_warning: true argumento. En el ejemplo siguiente se omiten todas las advertencias de las operaciones de carga y confirmación.

Si incluye ignore_warning: true y todos los <rpc-error> elementos tienen un nivel de gravedad de advertencia, la aplicación omite todas las advertencias y no genera una RpcError excepción. Sin embargo, cualquier <rpc-error> elemento con niveles de gravedad más altos seguirá generando excepciones.

Para indicar al módulo que ignore advertencias específicas, establezca el ignore_warning argumento en una cadena o una lista de cadenas que contengan las advertencias que se deben ignorar. En el siguiente ejemplo, se ignoran dos advertencias específicas:

El módulo suprime las RpcError excepciones si todos los elementos tienen un nivel de <rpc-error> gravedad de advertencia y cada advertencia de la respuesta coincide con una o varias de las cadenas especificadas.

Ejemplo: Usar Ansible para configurar dispositivos Junos

El juniper.device.config módulo le permite administrar la configuración en dispositivos Junos. En este ejemplo, se utiliza el módulo para realizar cambios de config configuración en un dispositivo Junos mediante NETCONF mediante SSH.

Requisitos

En este ejemplo, se utilizan los siguientes componentes de hardware y software:

  • Servidor de administración de configuración que ejecuta Ansible 2.17 o posterior con la juniper.device colección instalada

  • Dispositivo Junos con NETCONF habilitado y una cuenta de usuario configurada con los permisos adecuados

  • Par de claves pública/privada SSH configurado para el usuario adecuado en el controlador de Ansible y el dispositivo de Junos

  • Archivo de inventario de Ansible existente con los hosts necesarios definidos

Descripción general

En este ejemplo, se presenta un manual de estrategia de Ansible que utiliza el juniper.device.config módulo para habilitar una nueva secuencia de comandos operativa en la configuración de los dispositivos Junos de destino. El archivo de datos de configuración, junos-config.conf, contiene los datos de configuración pertinentes formateados como texto.

El manual incluye la Check NETCONF connectivity tarea, que utiliza el ansible.builtin.wait_for módulo Ansible para intentar establecer una sesión de NETCONF con el dispositivo de destino mediante el puerto predeterminado de NETCONF (830). Si el nodo de control no puede establecer una sesión NETCONF con un dispositivo de destino durante la ejecución del manual, omite las tareas restantes de la reproducción para ese dispositivo.

El manual utiliza el juniper.device.file_copy módulo para copiar la nueva secuencia de comandos operativa desde el nodo de control de Ansible al dispositivo de Junos. Los argumentos del módulo especifican el directorio y el nombre de archivo de la secuencia de comandos en el dispositivo local y el directorio de destino en el dispositivo remoto.

La tarea para configurar el dispositivo ejecuta el módulo, juniper.device.config siempre y cuando la comprobación de NETCONF se haya realizado correctamente. El load: "merge" argumento carga los datos de configuración nuevos en la configuración candidata mediante una load merge operación. De forma predeterminada, el módulo confirma los config datos de configuración en un dispositivo para load y rollback las operaciones. Los argumentos del módulo incluyen el comment argumento, que registra un comentario de confirmación en el archivo de registro del sistema del dispositivo y en el historial de confirmaciones.

Configuración

Cree el archivo de datos de configuración

Procedimiento paso a paso

Para crear el archivo de datos de configuración que utiliza el módulo:

  1. Cree un nuevo archivo con la extensión adecuada en función del formato de los datos de configuración, que en este ejemplo es texto.

  2. Incluya los cambios de configuración deseados en el archivo.

Crear el manual de estrategias de Ansible

Procedimiento paso a paso

Para crear un manual de estrategias que utilice el módulo para realizar cambios de config configuración en un dispositivo Junos:

  1. Incluya el texto reutilizable del libro de estrategias, que ejecuta los módulos localmente.

  2. (Opcional) Cree una tarea para comprobar la conectividad de NETCONF.

  3. Cree una tarea para copiar la nueva secuencia de comandos operativa en el dispositivo.

  4. Cree la tarea para cargar la configuración en el dispositivo y confirmarla.

  5. (Opcional) Cree una tarea para imprimir la respuesta, que incluye los cambios de configuración en formato diff .

Resultados

En el nodo de control de Ansible, revise el manual de estrategias completado. Si el manual no muestra el código deseado, repita las instrucciones de este ejemplo para corregirlo.

Ejecute el manual

Para ejecutar el manual de estrategias:

  • Emita el ansible-playbook comando en el nodo de control y proporcione la ruta del libro de estrategias y las opciones deseadas.

Verificación

Verificar la configuración

Propósito

Compruebe que la configuración se actualizó correctamente en el dispositivo de Junos.

Acción

Revise la salida del manual de estrategias de Ansible para ver si la tarea de configuración se realizó correctamente o no. También puede iniciar sesión en el dispositivo Junos y ver la configuración, el historial de confirmaciones y los archivos de registro para verificar la configuración y confirmar, por ejemplo:

Solución de errores del libro de estrategias

Solución de problemas de errores de tiempo de espera

Problema

El manual genera un mensaje de TimeoutExpiredError error y no se puede actualizar la configuración del dispositivo.

El tiempo predeterminado para que se agote el tiempo de espera de una RPC de NETCONF es de 30 segundos. Los cambios de configuración grandes pueden superar este valor, lo que hace que se agote el tiempo de espera de la operación antes de que se pueda cargar y confirmar la configuración.

Solución

Para adaptarse a los cambios de configuración que pueden requerir un tiempo de confirmación mayor que el intervalo de tiempo de espera de RPC predeterminado, establezca el argumento del timeout módulo en un valor adecuado y vuelva a ejecutar el manual.

Solución de errores de bloqueo de configuración

Problema

El manual genera un mensaje de LockError error que indica que no se puede bloquear la configuración. Por ejemplo:

o bien

Un error de bloqueo de configuración puede producirse por los siguientes motivos:

  • Otro usuario tiene un bloqueo exclusivo en la configuración.

  • Otro usuario realizó cambios en la base de datos de configuración, pero aún no los confirmó.

  • El usuario que ejecuta el módulo de Ansible no tiene permisos para configurar el dispositivo.

Solución

La LockError cadena de mensajes suele indicar la causa raíz del problema. Si otro usuario tiene un bloqueo exclusivo en la configuración o la modificó, espere hasta que se libere el bloqueo o se confirmen los cambios, y vuelva a ejecutar la estrategia. Si la causa del problema es que el usuario no tiene permisos para configurar el dispositivo, ejecute el manual con un usuario que tenga los permisos necesarios o, si corresponde, configure el dispositivo Junos para otorgar al usuario actual los permisos necesarios para realizar los cambios.

Solución de errores de cambio de configuración

Problema

El manual genera un ConfigLoadError mensaje de error que indica que no se puede modificar la configuración porque se deniega el permiso.

Este mensaje de error se genera cuando el usuario que ejecuta el módulo de Ansible tiene permiso para modificar la configuración, pero no tiene permiso para modificar la sección solicitada de la configuración.

Solución

Ejecute el manual con un usuario que tenga los permisos necesarios o, si corresponde, configure el dispositivo Junos para otorgar al usuario actual los permisos necesarios para realizar los cambios.