Ansible ignore l'erreur

Ansible Ignore L Erreur



Lors de la configuration de la tâche sur un autre périphérique hôte, les erreurs Ansible sont courantes. Ils représentent des états système uniques et éventuellement significatifs. Malgré cela, il peut y avoir des erreurs que nous voulons éviter afin que les tâches s'exécutent également et affichent la sortie si elles sont exécutées avec succès. Dans cet article, nous parlerons des erreurs Ansible et de la façon de les ignorer. Nous démontrons spécifiquement une technique pour supprimer et ignorer les échecs avec Ansible.

Contrairement à la correction des erreurs, éviter les échecs implique de poursuivre les tâches tant que l'activité dans le playbook Ansible n'est pas affectée. L'outil ansible émet un message d'avertissement lorsqu'il ne peut pas terminer une tâche ou un playbook lors du débogage d'une tâche. Les causes sont multiples, mais c'est à nous de les identifier et de trouver une solution. Malheureusement, toutes les erreurs ne peuvent pas être corrigées. Vous pouvez choisir de commencer à ignorer les erreurs si vous ne le souhaitez pas ou si vous ne parvenez pas à résoudre le problème.







La majorité des gestionnaires contrôlant Ansible utilisent cette stratégie tout en se connectant aux hôtes cibles dans des scénarios réels. Par défaut, Ansible arrête les activités sur un appareil cible et poursuit les activités sur certains autres serveurs chaque fois qu'il renvoie un résultat différent de zéro à partir d'une instruction ou une erreur d'un package. Cependant, il existe certaines situations où vous pourriez vouloir agir différemment. Un résultat renvoyé différent de zéro indique parfois une progression. Souvent, vous souhaiterez peut-être que le traitement s'arrête sur un serveur afin qu'il s'arrête sur tous les hôtes.



Façons d'ignorer les erreurs dans Ansible

Dans Ansible, différentes manières sont utilisées pour effectuer les tâches du playbook s'il indique l'échec de la tâche. Voici les différentes manières qui aideront à exécuter la tâche même si Ansible affiche des erreurs :



1. Utilisation de la commande Ignore_Errors=True





Même si la tâche continue d'échouer, le playbook continue de s'exécuter si vous spécifiez la commande ignore_errors=true au bas de l'activité. Bien qu'il se soucie de l'achèvement ou des échecs de la tâche, il exécute toujours l'activité suivante. Si d'une manière ou d'une autre l'activité échoue, elle passe à la suivante. Si l'activité réussit, elle termine ensuite un processus.

2. Utiliser le mode de vérification dans Ansible



Utilisez les variables spéciales booléennes, le mode de vérification Ansible, qui est défini sur True une fois qu'Ansible est dans la méthode de vérification pour contourner une tâche ou ignorer les échecs d'une tâche chaque fois que la version de la méthode de vérification d'Ansible est utilisée.

3. Utilisation de la commande Failed=When dans Ansible Playbook

Dans Ansible, nous pouvons également utiliser le conditionnel failed_when pour spécifier tout 'échec' implicite pour chaque activité. Comme pour toutes les instructions conditionnelles Ansible, les listes de nombreux critères failed_when sont combinées avec un implicite. Ainsi, la tâche n'échoue que si toutes les conditions sont satisfaites.

Prérequis pour ignorer les erreurs dans Ansible

L'outil de configuration Ansible doit respecter les critères nécessaires pour inclure l'exemple concret :

  • Un serveur principal Ansible ou nous pouvons dire qu'un serveur de contrôle est nécessaire pour que nous puissions configurer les commandes sur l'appareil cible.
  • Nous devons disposer des hôtes locaux afin de pouvoir contacter chacun d'eux pour utiliser les différentes manières d'ignorer les erreurs dans le logiciel Ansible. Nous utilisons l'hôte local dans ce cas comme serveur distant cible pendant la durée de l'activité.
  • Nous écrivons les playbooks, exécutons les commandes Ansible ignore error et utilisons le périphérique ansible-controller pour suivre les résultats sur les hôtes distants.

Pour aider l'apprenant à saisir le principe de l'utilisation de l'erreur d'ignorance dans un playbook Ansible, implémentons l'exemple suivant :

Exemple : Utilisation de la commande Ignore_Errors=True

Il s'agit de l'exemple le plus simple qui utilise Ansible pour la mise en œuvre où nous incluons plusieurs tâches dans le playbook et exécutons les tâches à l'aide de la commande ignore error. Pour ce faire, nous écrivons d'abord le code suivant dans le terminal Ansible :

[ racine @ maître ansible ] # nano ignore_errors.yml

Après la création et le lancement du playbook ignore_errors.yml, nous commençons maintenant à entrer les commandes dans le playbook. Tout d'abord, nous utilisons l'option 'hosts', en passant les hôtes fournis en tant que 'localhost'. Nous saisissons la valeur 'false' dans l'argument 'collecte des faits' afin de ne pas pouvoir obtenir d'informations supplémentaires sur l'hôte local lors de l'exécution du playbook.

Après cela, nous commençons à répertorier chaque tâche que nous souhaitons accomplir sous l'option 'tâches'. Dans la première tâche, nous affichons le document qui n'existe pas dans le répertoire Ansible. Tout d'abord, nous passons le titre de la tâche que nous voulons implémenter. Ensuite, nous utilisons l'option de commande et stockons le document texte inexistant et utilisons 'ls' afin que nous puissions exécuter la commande dans la première tâche. Après la première tâche, nous utilisons la commande ignore_errors=true afin que si la tâche au-dessus de l'instruction ignore échoue, elle ignore la tâche et passe à la tâche suivante et l'exécute.

Nous listons une autre tâche qui est utilisée. Si la première tâche échoue, l'outil Ansible doit exécuter la tâche suivante. Ensuite, nous utilisons le paramètre de débogage pour exécuter la tâche dans le playbook.

- hôtes : localhost
rassemble_faits : FAUX
Tâches:
- nom : Liste un inexistant déposer
commande: ls inexistant.txt
ignore_errors : vrai

- nom: continuer tâche après échec
déboguer:
msg : 'Continuer la tâche après l'échec'

Maintenant, nous listons suffisamment de tâches à exécuter et vérifions la commande ignore error. Maintenant, nous terminons le playbook et retournons au terminal principal. Après cela, nous exécutons le playbook. Pour cela, nous utilisons l'instruction suivante :

[ racine @ maître ansible ] # ansible-playbook ignore_errors.yml

Après avoir exécuté la commande susmentionnée, nous obtenons la sortie suivante. Comme vous le voyez, la première tâche qui répertorie un fichier inexistant affiche un échec. Mais la deuxième tâche est exécutée avec succès car nous avons ignoré la première tâche en utilisant ignore_error=true dans le playbook.

Conclusion

Nous avons appris ce que signifie l'erreur d'ignorance dans Ansible. Nous avons discuté de son fonctionnement dans le playbook Ansible. Nous avons également discuté des différentes manières d'ignorer l'erreur dans Ansible lors de l'exécution des tâches. Nous avons implémenté un exemple afin que chaque concept soit clair pour l'utilisateur.