Résoudre les erreurs d’authentification Ansible lors de la gestion des équipements Junos
Les sections suivantes décrivent les erreurs d’authentification que vous pouvez rencontrer lors de l’utilisation d’Ansible pour gérer des équipements Junos. Ces sections présentent également les causes potentielles et les solutions pour chaque erreur.
Résoudre les problèmes liés à ConnectAuthError
Problème
Description
Lors de l’exécution d’un juniper.device module, le nœud de contrôle Ansible génère une ConnectAuthError erreur d’échec d’authentification. Par exemple:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
Cause
L’équipement Junos peut ne pas réussir à authentifier l’utilisateur pour les raisons suivantes :
-
L’utilisateur ne dispose pas d’un compte sur l’équipement Junos.
-
L’utilisateur dispose d’un compte avec un mot de passe texte configuré sur l’équipement Junos, mais un mot de passe erroné ou aucun mot de passe n’est fourni pour l’utilisateur lors de l’exécution du module.
-
L’utilisateur dispose d’un compte sur l’équipement Junos avec des clés SSH configurées, mais les clés SSH sont inaccessibles sur l’équipement ou le nœud de contrôle.
Solution
Assurez-vous que l’utilisateur exécutant les modules dispose d’un compte de connexion Junos OS sur tous les équipements Junos cibles et qu’une paire de clés publique/privée SSH ou un mot de passe texte est configuré pour le compte. Si des clés SSH sont configurées, vérifiez que l’utilisateur peut y accéder. Pour plus d’informations, reportez-vous à la section Authentifier les utilisateurs exécutant des modules Ansible sur des équipements Junos.
Résoudre les erreurs d’attribut conn_type
Problème
Description
Lors de l’exécution d’un juniper.device module sur un équipement Junos, le nœud de contrôle Ansible génère l’erreur suivante :
AttributeError: 'JuniperJunosModule' object has no attribute 'conn_type'
Cause
Alors que les modules obsolètes Juniper.junos plus anciens prenaient en charge l’utilisation d’un provider dictionnaire pour définir les paramètres de connexion et d’authentification, les modules ne prennent pas en charge l’utilisation juniper.device d’un provider dictionnaire et génèrent l’erreur susmentionnée si l’un d’entre eux est référencé.
Solution
Si vous fournissez des paramètres de connexion et d’authentification dans le playbook pour les juniper.device modules, les paramètres doivent être définis à l’emplacement approprié pour la connexion Ansible. Pour les connexions persistantes (connection: juniper.device.pyez), définissez les paramètres de la vars: section. Pour les connexions locales (connection: local), définissez les paramètres soit sous la vars: section, soit en tant qu’arguments de module de niveau supérieur. Par exemple:
---
- 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 }}"