Solución de errores de Ansible al configurar dispositivos Junos
Solucionar los errores que surgen cuando se utiliza el módulo de juniper.device.config Ansible para configurar dispositivos que ejecutan Junos OS o dispositivos que ejecutan Junos OS Evolved.
En las siguientes secciones se describen los errores que puede encontrar al utilizar el módulo de juniper.device.config Ansible para administrar la configuración en dispositivos que ejecutan Junos OS o dispositivos que ejecutan Junos OS Evolved. En estas secciones también se presentan las posibles causas y soluciones de cada error.
Solución de problemas de errores de tiempo de espera de configuración
Problema
Descripción
El juniper.device.config módulo genera un TimeoutExpiredError mensaje de error y no puede actualizar la configuración del dispositivo.
ncclient.operations.errors.TimeoutExpiredError: ncclient timed out while waiting for an rpc reply
Causa
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
Descripción
El juniper.device.config módulo genera un mensaje de error que indica que no se puede bloquear la base de datos de configuración. Por ejemplo:
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: None, message: configuration database modified)"}
o bien
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: lock-configuration, message: permission denied)"}
Causa
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 ha modificado o tiene un bloqueo exclusivo en la configuración, espere hasta que se confirmen los cambios o se libere el bloqueo, y vuelva a ejecutar el manual de estrategias. Si la causa es que el usuario no tiene permisos para configurar el dispositivo, ejecute la estrategia con un usuario que tenga los permisos necesarios o, si corresponde, configure el dispositivo de Junos para otorgar al usuario actual los permisos necesarios para realizar los cambios.
Solucionar errores de carga de configuración
Problema
Descripción
El juniper.device.config módulo genera un mensaje de ConfigLoadError error que indica que no se puede modificar la configuración porque se deniega el permiso.
FAILED! => {"changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: scripts, message: error: permission denied)"}
Causa
El módulo de Ansible genera este mensaje de error cuando el usuario que ejecuta el módulo tiene permiso para modificar la configuración, pero no tiene permiso para modificar la sección solicitada de la configuración.
Solución
Para resolver este problema, 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 problemas de errores de confirmación
Problema
Descripción
El juniper.device.config módulo genera un CommitError mensaje de error que indica que se produjo un error en la operación de confirmación debido a un error de bloqueo de configuración.
FAILED! => {"changed": false, "msg": "Unable to commit configuration: CommitError(edit_path: None, bad_element: None, message: error: remote lock-configuration failed on re0\n\nnote: consider using 'commit synchronize force' to\nterminate remote edit sessions and force the commit)"}
Causa
Puede producirse un error de bloqueo de configuración por los motivos descritos en Solución de errores de bloqueo de configuración. Sin embargo, es posible que se genere un mensaje de error de bloqueo de configuración como parte de un CommitError archivo en lugar de un LockErrorarchivo . Esta situación puede producirse cuando una tarea solicita una comprobación de confirmación y una operación de confirmación, y el dispositivo inicia la operación de confirmación antes de que la operación de comprobación de confirmación libere el bloqueo de configuración.
Solución
Para permitir el 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, establezca el parámetro del check_commit_wait módulo en un valor adecuado y vuelva a ejecutar el manual. El check_commit_wait valor es el número de segundos que se deben esperar entre las operaciones de confirmación, comprobación y confirmación.
La siguiente tarea de ejemplo espera cinco segundos entre las operaciones de comprobación y confirmación de confirmación:
- name: Load configuration. Wait 5 seconds between check and commit
juniper.device.config:
load: merge
format: text
src: "build_conf/{{ inventory_hostname }}/junos.conf"
check_commit_wait: 5
comment: "updated using Ansible"