Solucionar errores de Ansible al configurar dispositivos Junos
En las siguientes secciones se describen los errores que puede encontrar al utilizar el módulo para configurar dispositivos juniper.device.config
Junos. Estas secciones también presentan posibles causas y soluciones para cada error.
Solucionar errores de tiempo de espera de configuración
Problema
Descripción
El módulo genera un mensaje de TimeoutExpiredError
error y no actualiza 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 superior al intervalo de tiempo de espera RPC predeterminado, establezca el argumento del timeout
módulo en un valor adecuado y vuelva a ejecutar el manual.
Solucionar errores de bloqueo de configuración
Problema
Descripción
El 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
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: lock-configuration, message: permission denied)"}
Causa
Puede producirse un error de bloqueo de configuración 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 ha confirmado.
-
El usuario que ejecuta el módulo de Ansible no tiene permisos para configurar el dispositivo.
Solución
La LockError
cadena de mensaje 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. Si la causa 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.
Solucionar errores de carga de configuración
Problema
Descripción
El módulo genera un mensaje de ConfigLoadError
error que indica que la configuración no se puede modificar porque se ha denegado 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.
Solucionar problemas de confirmación de errores
Problema
Descripción
El módulo genera un mensaje de CommitError
error que indica que la operación de confirmación falló 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
LockError
archivo . 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 que el dispositivo tenga tiempo suficiente para completar la operación de comprobación de confirmación y liberar 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 esperan entre las operaciones de comprobación de confirmación y confirmación.
La siguiente tarea de ejemplo espera cinco segundos entre las operaciones de comprobación de confirmación y 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"