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 **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 * 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: Écrivez un playbook permettant:
@@ -20,16 +20,17 @@
Faites en sorte que les erreurs d'exécution du playbook soient ignorées. 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. Utilisez le module debug pour afficher la valeur de la variable *ansible_distribution* des cibles.
```bash ```bash
ansible cibles -u formation -o -m debug -a "var=ansible_distribution" 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: É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. 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: 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
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: 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 ignore_errors: true
- name: display result - name: display result
debug: 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"