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 **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 * https://docs.ansible.com/ansible/latest/playbooks_error_handling.html
* support slide 51 * support slide 51
### Ignorer les erreurs ## Ignorer les erreurs
Écrivez un playbook permettant: Exécutez le playbook "ignore_errors.yml"
- 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. 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. 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 ## register: Exploiter le résultat de l'exécution d'un module
- 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. 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 - 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 mode: 0750
- name: execute script - name: execute script
command: /tmp//random.sh command: /tmp/random.sh
register: result register: result
failed_when: 2|string in result.stdout
- name: display result - name: display result
debug: debug:

View File

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

View File

@@ -2,4 +2,4 @@
# return a random number between 0 and 2 # 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"