From c9c74e93cd8f25a01395f72e398c8ad1779f1e30 Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Tue, 1 Nov 2022 18:22:07 +0100 Subject: [PATCH] solution ignore_errors --- Readme.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ fail_when.yml | 4 +--- ignore_errors.yml | 18 ++++++++++++++++++ 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 Readme.md create mode 100644 ignore_errors.yml diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..22cb5f3 --- /dev/null +++ b/Readme.md @@ -0,0 +1,44 @@ +## Gestion des erreurs + +**Tâche**: exploiter, comprendre la réussite / échec d'un module + +**Condition**: très souvent ;) + +**Norme**: module debug, clause failed_when, register ... + +**Ressources** + * https://docs.ansible.com/ansible/latest/playbooks_error_handling.html + * support slide 51 + +### Ignorer les erreurs + +Écrivez un playbook permettant: + + - de déployer le script bad.sh + - de l'exécuter + - d'afficher le message "fin d'exécution du playbook" + +Faites en sorte que les erreurs d'exécution du playbook soient ignorées. + +#### utiliser le module debug + +Utilisez le module debug pour afficher la valeur de la variable *ansible_distribution* des cibles. + +#### failed_when: définir soi-même les conditions de réussite / échec d'un module + +Écrivez un playbook permettant: + + - de déployer le script random.sh + - de l'exécuter + - d'afficher le message "fin d'exécution du playbook" + +la tâche d'exécution doit échouer uniquement si le script renvoie la valeur 2. + +#### register: Exploiter le résultat de l'exécution d'un module + +Complétez le playbook précédemment mis au point afin qu'il: + + - exécute une tâche de votre choix uniquement si le script a renvoyée la valeur 1 + + +Solutions: voir branche "solution" \ No newline at end of file diff --git a/fail_when.yml b/fail_when.yml index 2b78e73..0482353 100644 --- a/fail_when.yml +++ b/fail_when.yml @@ -1,7 +1,5 @@ --- -- hosts: test - user: root - gather_facts: false +- hosts: cibles tasks: - name: send script copy: diff --git a/ignore_errors.yml b/ignore_errors.yml new file mode 100644 index 0000000..0f1d385 --- /dev/null +++ b/ignore_errors.yml @@ -0,0 +1,18 @@ + +--- +- hosts: cibles + tasks: + - name: send script + copy: + src: random.sh + dest: /tmp//random.sh + mode: 0750 + + - name: execute script + command: /tmp//random.sh + register: result + failed_when: 2|string in result.stdout + + - name: display result + debug: + var: result \ No newline at end of file