mise au point solution

This commit is contained in:
2022-11-01 18:33:29 +01:00
parent 45f12dc83a
commit e464c238d5
3 changed files with 42 additions and 11 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,7 +10,7 @@
* https://docs.ansible.com/ansible/latest/playbooks_error_handling.html
* support slide 51
### Ignorer les erreurs
## Ignorer les erreurs
Écrivez un playbook permettant:
@@ -20,16 +20,17 @@
Faites en sorte que les erreurs d'exécution du playbook soient ignorées.
Voir failed_when.yml
Voir le script *ignore_errors.yml*
#### utiliser le module debug
## utiliser le module debug
Utilisez le module debug pour afficher la valeur de la variable *ansible_distribution* des cibles.
```bash
ansible cibles -u formation -o -m debug -a "var=ansible_distribution"
```
#### 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:
@@ -39,11 +40,17 @@ ansible cibles -u formation -o -m debug -a "var=ansible_distribution"
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
Voir le script *failed_when.yml*
## 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"
## gestion des exceptions: exécuter une tâche si une tâche échoue
reprendre l'atelier "Ignorer les erreurs" précédent. Faire en sorte que le message "fin d'exécution du playbook" s'affiche même en cas d'erreur, mais sans ignore_errors
Voir le script *try_catch.yml*

View File

@@ -4,14 +4,15 @@
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
ignore_errors: true
- name: display result
debug:

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"