From 21b843694eda77a6740227d064ba07d9e13deb2d Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Sat, 13 Mar 2021 22:11:41 +0100 Subject: [PATCH] amelioration atelier --- bad.sh | 8 ++++++++ fail_when.yml | 19 +++++++++++++++++++ gestion_erreurs.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 bad.sh create mode 100644 fail_when.yml create mode 100644 gestion_erreurs.md diff --git a/bad.sh b/bad.sh new file mode 100644 index 0000000..a21a8d3 --- /dev/null +++ b/bad.sh @@ -0,0 +1,8 @@ +#! /bin/bash + + +# whatever you do i will return != 0 + +echo Hello world + +exit 42 \ No newline at end of file diff --git a/fail_when.yml b/fail_when.yml new file mode 100644 index 0000000..2b78e73 --- /dev/null +++ b/fail_when.yml @@ -0,0 +1,19 @@ +--- +- hosts: test + user: root + gather_facts: false + 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 diff --git a/gestion_erreurs.md b/gestion_erreurs.md new file mode 100644 index 0000000..3c9949c --- /dev/null +++ b/gestion_erreurs.md @@ -0,0 +1,46 @@ +## 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 + +#### Implémenter un mécanisme de gestion d'exception + + +