Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3008f508f0 | |||
| 7ec4def659 | |||
| 7212f19f4e | |||
| 1881a3dba6 | |||
| 83cc78eace | |||
| 2cf86c1f2c | |||
| 4f376d4005 | |||
| b9aeb888f9 |
36
Readme.md
Normal file
36
Readme.md
Normal 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_
|
||||
|
||||
38
apache.yml
38
apache.yml
@@ -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
|
||||
@@ -1,7 +1,5 @@
|
||||
---
|
||||
- hosts: test
|
||||
user: root
|
||||
gather_facts: false
|
||||
- hosts: cibles
|
||||
tasks:
|
||||
- name: send script
|
||||
copy:
|
||||
@@ -10,9 +8,8 @@
|
||||
mode: 0750
|
||||
|
||||
- name: execute script
|
||||
command: /tmp//random.sh
|
||||
command: /tmp/random.sh
|
||||
register: result
|
||||
failed_when: 2|string in result.stdout
|
||||
|
||||
- name: display result
|
||||
debug:
|
||||
|
||||
@@ -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
18
ignore_errors.yml
Normal 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
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
# return a random number between 0 and 2
|
||||
|
||||
echo $(( $RANDOM % 3 ))
|
||||
exit $(( $RANDOM % 3 ))
|
||||
23
try_catch.yml
Normal file
23
try_catch.yml
Normal 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"
|
||||
Reference in New Issue
Block a user