Résoudre les erreurs Ansible lors de la configuration des équipements Junos
Les sections suivantes décrivent les erreurs susceptibles de se produire lors de l’utilisation du juniper.device.config
module pour configurer des équipements Junos. Ces sections présentent également les causes potentielles et les solutions pour chaque erreur.
Résoudre les erreurs de délai d’expiration de la configuration
Problème
Description
Le module génère un TimeoutExpiredError
message d’erreur et ne parvient pas à mettre à jour la configuration de l’appareil.
ncclient.operations.errors.TimeoutExpiredError: ncclient timed out while waiting for an rpc reply
Cause
Par défaut, le délai d’expiration d’un RPC NETCONF est de 30 secondes. Les modifications de configuration importantes peuvent dépasser cette valeur, ce qui entraîne l’expiration de l’opération avant que la configuration puisse être téléchargée et validée.
Solution
Pour prendre en charge les modifications de configuration qui peuvent nécessiter un temps de validation plus long que l’intervalle de délai d’expiration RPC par défaut, définissez l’argument du timeout
module sur une valeur appropriée et réexécutez le playbook.
Résoudre les erreurs de verrouillage de configuration
Problème
Description
Le module génère un message d’erreur indiquant que la base de données de configuration ne peut pas être verrouillée. Par exemple:
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: None, message: configuration database modified)"}
ou
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: lock-configuration, message: permission denied)"}
Cause
Une erreur de verrouillage de configuration peut se produire pour les raisons suivantes :
-
Un autre utilisateur dispose d’un verrou exclusif sur la configuration.
-
Un autre utilisateur a apporté des modifications à la base de données de configuration, mais ne les a pas encore validées.
-
L’utilisateur qui exécute le module Ansible n’est pas autorisé à configurer l’appareil.
Solution
La LockError
chaîne de message indique généralement la cause racine du problème. Si un autre utilisateur a modifié la configuration ou dispose d’un verrou exclusif sur celle-ci, attendez que les modifications soient validées ou que le verrou soit libéré, puis exécutez à nouveau le playbook. Si la cause est que l’utilisateur ne dispose pas des autorisations nécessaires pour configurer le périphérique, exécutez le playbook avec un utilisateur disposant des autorisations nécessaires ou, le cas échéant, configurez le périphérique Junos pour donner à l’utilisateur actuel les autorisations nécessaires pour effectuer les modifications.
Dépannage des erreurs de chargement de configuration
Problème
Description
Le module génère un ConfigLoadError
message d’erreur indiquant que la configuration ne peut pas être modifiée car l’autorisation est refusée.
FAILED! => {"changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: scripts, message: error: permission denied)"}
Cause
Le module Ansible génère ce message d’erreur lorsque l’utilisateur qui exécute le module est autorisé à modifier la configuration, mais pas la permission de modifier la section demandée de la configuration.
Solution
Pour résoudre ce problème, exécutez le playbook avec un utilisateur disposant des autorisations nécessaires ou, le cas échéant, configurez l’équipement Junos de manière à ce qu’il accorde à l’utilisateur actuel les autorisations nécessaires pour effectuer les modifications.
Résoudre les erreurs de validation
Problème
Description
Le module génère un CommitError
message d’erreur indiquant que l’opération de validation a échoué en raison d’une erreur de verrouillage de configuration.
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)"}
Cause
Une erreur de verrouillage de configuration peut se produire pour les raisons décrites dans Résoudre les erreurs de verrouillage de configuration. Toutefois, un message d’échec du verrou de configuration peut être généré dans le cadre d’un fichier au lieu d’un CommitError
LockError
fichier . Cette situation peut se produire lorsqu’une tâche demande une vérification de validation et une opération de validation, et que l’appareil lance l’opération de validation avant que l’opération de vérification de validation ne libère le verrou de configuration.
Solution
Pour laisser suffisamment de temps à l’appareil pour terminer l’opération de vérification de validation et libérer le verrou de configuration avant de lancer l’opération de validation, définissez le paramètre du check_commit_wait
module sur une valeur appropriée et réexécutez le playbook. La check_commit_wait
valeur correspond au nombre de secondes à attendre entre la vérification de validation et les opérations de validation.
L’exemple de tâche suivant attend cinq secondes entre la vérification de validation et les opérations de validation :
- 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"