Compare commits

..

8 Commits

Author SHA1 Message Date
3008f508f0 instructions premande 2023-02-23 07:39:05 +01:00
7ec4def659 random.sh now returns random code 2022-11-16 16:29:41 +01:00
7212f19f4e random.sh now returns random code 2022-11-16 16:27:23 +01:00
1881a3dba6 reformat et rajout try catch 2022-11-01 18:34:45 +01:00
83cc78eace readme 2021-03-16 21:23:28 +01:00
2cf86c1f2c solution 2021-03-16 21:20:33 +01:00
4f376d4005 solution 2021-03-16 21:19:53 +01:00
b9aeb888f9 mise au point 2021-03-16 21:17:06 +01:00
5 changed files with 41 additions and 27 deletions

View File

@@ -1,4 +1,4 @@
## Gestion des erreurs
# Gestion des erreurs
**Tâche**: exploiter, comprendre la réussite / échec d'un module
@@ -10,35 +10,27 @@
* https://docs.ansible.com/ansible/latest/playbooks_error_handling.html
* support slide 51
### Ignorer les erreurs
## 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"
Exécutez le playbook "ignore_errors.yml"
Faites en sorte que les erreurs d'exécution du playbook soient ignorées.
Faire en sorte que la 3ème tâche du playbook s'exécuter malgré l'erreur (volontaire) de la tâche n° 2
#### utiliser le module debug
## 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
## failed_when: définir soi-même les conditions de réussite / échec d'un module
Écrivez un playbook permettant:
Adapter le playbook _fail_when.yml_ pour que la tâche d'exécution doit échouer uniquement si le script renvoie la valeur 2.
- de déployer le script random.sh
- de l'exécuter
- d'afficher le message "fin d'exécution du playbook"
## register: Exploiter le résultat de l'exécution d'un module
la tâche d'exécution doit échouer uniquement si le script renvoie la valeur 2.
Complétez le playbook _fail_when.yml_ afin qu'il:
#### 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
## gestion des exceptions: exécuter une tâche si une tâche échoue
Étudiez et exécuter le playbook _try_catch.yml_
Solutions: voir branche "solution"

View File

@@ -8,9 +8,8 @@
mode: 0750
- name: execute script
command: /tmp//random.sh
command: /tmp/random.sh
register: result
failed_when: 2|string in result.stdout
- name: display result
debug:

View File

@@ -4,14 +4,14 @@
tasks:
- name: send script
copy:
src: random.sh
dest: /tmp//random.sh
src: bad.sh
dest: /tmp//bad.sh
mode: 0750
- name: execute script
command: /tmp//random.sh
command: /tmp//bad.sh
register: result
failed_when: 2|string in result.stdout
- name: display result
debug:

View File

@@ -2,4 +2,4 @@
# return a random number between 0 and 2
echo $(( $RANDOM % 3 ))
exit $(( $RANDOM % 3 ))

23
try_catch.yml Normal file
View File

@@ -0,0 +1,23 @@
---
- hosts: cibles
tasks:
- name: send and execute script
block:
- name: send script
copy:
src: bad.sh
dest: /tmp//bad.sh
mode: 0750
- name: execute script
command: /tmp//bad.sh
register: result
always:
- name: display result whatever happened previously
debug:
var: result
rescue:
- name: display only if one of task in block failed
debug:
msg: "Something bad happened"