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
7 changed files with 80 additions and 90 deletions

36
Readme.md Normal file
View File

@@ -0,0 +1,36 @@
# Gestion des erreurs
**Tâche**: exploiter, comprendre la réussite / échec d'un module
**Condition**: très souvent ;)
**Norme**: module debug, clause failed_when, register ...
**Ressources**
* https://docs.ansible.com/ansible/latest/playbooks_error_handling.html
* support slide 51
## Ignorer les erreurs
Exécutez le playbook "ignore_errors.yml"
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
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
Adapter le playbook _fail_when.yml_ pour que 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
Complétez le playbook _fail_when.yml_ 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_

View File

@@ -1,38 +0,0 @@
---
- name: install apache via ansible playbook
hosts: test
user: ansible
become: true
tasks:
- name: install apache
yum:
name: httpd
state: latest
- name: conf httpd
template:
src: vhost.conf
dest: /etc/httpd/conf.d/vhost.conf
mode: 0640
owner: root
group: apache
- name: activate apache
service:
name: httpd
enabled: yes
state: restarted
- name: open firewall port
firewalld:
service: http
permanent: yes
immediate: yes
state: enabled
ignore_errors: yes
- name: create documentroot
file:
name: /var/www/html/orsys.fr
state: directory
- name: create index file
copy:
src: index.html
dest: /var/www/html/orsys.fr/index.html
mode: 0644

View File

@@ -1,7 +1,5 @@
--- ---
- hosts: test - hosts: cibles
user: root
gather_facts: false
tasks: tasks:
- name: send script - name: send script
copy: copy:
@@ -10,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

@@ -1,46 +0,0 @@
## Gestion des erreurs
**Tâche**: exploiter, comprendre la réussite / échec d'un module
**Condition**: très souvent ;)
**Norme**: module debug, clause failed_when, register ...
**Ressources**
* https://docs.ansible.com/ansible/latest/playbooks_error_handling.html
* support slide 51
### 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"
Faites en sorte que les erreurs d'exécution du playbook soient ignorées.
#### 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
Écrivez un playbook permettant:
- de déployer le script random.sh
- 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.
#### 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
#### Implémenter un mécanisme de gestion d'exception

18
ignore_errors.yml Normal file
View File

@@ -0,0 +1,18 @@
---
- hosts: cibles
tasks:
- name: send script
copy:
src: bad.sh
dest: /tmp//bad.sh
mode: 0750
- name: execute script
command: /tmp//bad.sh
register: result
- name: display result
debug:
var: result

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"