Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8404ab46cd | |||
| b895e08049 | |||
| 98149b2754 | |||
| 6bc58187c9 | |||
| e464c238d5 | |||
| 45f12dc83a | |||
| c9c74e93cd | |||
| de6dbc2b8c | |||
| 13288032b3 |
@@ -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,11 +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.
|
||||||
|
|
||||||
#### 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.
|
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:
|
Écrivez un playbook permettant:
|
||||||
|
|
||||||
@@ -34,13 +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.
|
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
|
||||||
|
|
||||||
#### Implémenter un mécanisme de gestion d'exception
|
|
||||||
|
|
||||||
|
## 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*
|
||||||
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
|
- hosts: cibles
|
||||||
user: root
|
|
||||||
gather_facts: false
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: send script
|
- name: send script
|
||||||
copy:
|
copy:
|
||||||
@@ -10,9 +8,9 @@
|
|||||||
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
|
failed_when: result.rc==2
|
||||||
|
|
||||||
- name: display result
|
- name: display result
|
||||||
debug:
|
debug:
|
||||||
|
|||||||
19
ignore_errors.yml
Normal file
19
ignore_errors.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
---
|
||||||
|
- 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
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
|
||||||
|
- name: display result
|
||||||
|
debug:
|
||||||
|
var: result
|
||||||
@@ -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
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