Solucionar errores de autenticación de Ansible al administrar dispositivos Junos
En las siguientes secciones se describen los errores de autenticación que puede encontrar al usar Ansible para administrar dispositivos Junos. Estas secciones también presentan posibles causas y soluciones para cada error.
Solucionar problemas de ConnectAuthError
Problema
Descripción
Durante la ejecución de un juniper.device
módulo, el nodo de control de Ansible genera un ConnectAuthError
error de autenticación. Por ejemplo:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
Causa
Es posible que el dispositivo Junos no pueda autenticar al usuario por los siguientes motivos:
-
El usuario no tiene una cuenta en el dispositivo Junos.
-
El usuario tiene una cuenta con una contraseña basada en texto configurada en el dispositivo Junos, pero se proporciona la contraseña incorrecta o ninguna contraseña para el usuario al ejecutar el módulo.
-
El usuario tiene una cuenta en el dispositivo Junos con claves SSH configuradas, pero no se puede acceder a las claves SSH ni en el dispositivo ni en el nodo de control.
Solución
Asegúrese de que el usuario que ejecuta los módulos tenga una cuenta de inicio de sesión de Junos OS en todos los dispositivos Junos de destino y de que haya configurado un par de claves pública/privada SSH o una contraseña basada en texto para la cuenta. Si las claves SSH están configuradas, compruebe que el usuario puede acceder a ellas. Para obtener más información, consulte Autenticar usuarios que ejecutan módulos de Ansible en dispositivos Junos.
Solucionar problemas de errores de conn_type de atributos
Problema
Descripción
Durante la ejecución de un juniper.device
módulo en un dispositivo Junos, el nodo de control de Ansible genera el siguiente error:
AttributeError: 'JuniperJunosModule' object has no attribute 'conn_type'
Causa
Mientras que los módulos más antiguos y obsoletos Juniper.junos
admitían el uso de un provider
diccionario para definir parámetros de conexión y autenticación, los módulos no admiten el juniper.device
uso de un provider
diccionario y generan el error mencionado anteriormente si se hace referencia a uno.
Solución
Si proporciona parámetros de conexión y autenticación en la reproducción del manual para los juniper.device
módulos, los parámetros deben definirse en la ubicación adecuada para la conexión de Ansible. Para las conexiones persistentes (connection: juniper.device.pyez
), defina los parámetros de la vars:
sección. Para las conexiones locales (connection: local
), defina los parámetros en la vars:
sección o como argumentos de módulo de nivel superior. Por ejemplo:
--- - name: Get device facts hosts: dc1 connection: juniper.device.pyez gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes vars: passwd: "{{ DEVICE_PASSWORD }}" tasks: - name: Get device facts juniper.device.facts: savedir: "{{ playbook_dir }}"
--- - name: Get device facts hosts: dc1 connection: local gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes tasks: - name: Get device facts juniper.device.facts: passwd: "{{ DEVICE_PASSWORD }}" savedir: "{{ playbook_dir }}"