Résoudre les erreurs Ansible lors de la configuration des appareils Junos
Résolvez les erreurs qui surviennent lorsque vous utilisez le module Ansible pour configurer des juniper.device.config équipements exécutant Junos OS ou des équipements exécutant Junos OS Evolved.
Les sections suivantes décrivent les erreurs que vous pouvez rencontrer lors de l’utilisation du juniper.device.config module Ansible pour gérer la configuration sur les équipements exécutant Junos OS ou les équipements exécutant Junos OS Evolved. Ces sections présentent également les causes potentielles et les solutions de chaque erreur.
Résoudre les erreurs de délai d’expiration de la configuration
Problème
Descriptif
Le juniper.device.config 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
Le délai d’expiration par défaut 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.
La 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
Descriptif
Le juniper.device.config 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 n’a pas encore validé les modifications.
-
L’utilisateur exécutant le module Ansible n’a pas les autorisations nécessaires pour configurer l’appareil.
La solution
La LockError chaîne du message indique généralement la cause racine du problème. Si un autre utilisateur a modifié la configuration ou a un verrou exclusif sur la configuration, 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 n’a pas les autorisations nécessaires pour configurer l’équipement, exécutez le playbook avec un utilisateur disposant des autorisations nécessaires ou, le cas échéant, configurez l’équipement Junos pour donner à l’utilisateur actuel les autorisations nécessaires pour apporter les modifications.
Résoudre les erreurs de charge de configuration
Problème
Descriptif
Le juniper.device.config module génère un message d’erreur ConfigLoadError 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 exécutant le module est autorisé à modifier la configuration mais n’est pas autorisé à modifier la section demandée de la configuration.
La 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 le périphérique Junos pour donner à l’utilisateur actuel les autorisations nécessaires pour apporter les modifications.
Résolution des problèmes liés aux erreurs de commit
Problème
Descriptif
Le juniper.device.config 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 Dépanner les erreurs de verrouillage de configuration. Toutefois, un message d’échec de verrouillage de configuration peut être généré dans le cadre d’un CommitError LockErrorfichier . 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.
La 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 est le 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"