Compare commits

...

2 Commits

Author SHA1 Message Date
e464c238d5 mise au point solution 2022-11-01 18:33:29 +01:00
45f12dc83a solution debug 2022-11-01 18:24:49 +01:00
3 changed files with 46 additions and 10 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,11 +20,17 @@
Faites en sorte que les erreurs d'exécution du playbook soient ignorées.
#### utiliser le module debug
Voir le script *ignore_errors.yml*
## 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
```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
Écrivez un playbook permettant:
@@ -34,11 +40,17 @@ Utilisez le module debug pour afficher la valeur de la variable *ansible_distrib
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"