Compare commits

9 Commits

Author SHA1 Message Date
8404ab46cd fail when rs=2 2023-02-19 17:28:36 +01:00
b895e08049 mise au point 2022-11-17 09:37:55 +01:00
98149b2754 random.sh now returns random code 2022-11-16 16:30:52 +01:00
6bc58187c9 random.sh now returns random code 2022-11-16 16:28:06 +01:00
e464c238d5 mise au point solution 2022-11-01 18:33:29 +01:00
45f12dc83a solution debug 2022-11-01 18:24:49 +01:00
c9c74e93cd solution ignore_errors 2022-11-01 18:22:07 +01:00
de6dbc2b8c cleanup 2021-03-16 21:21:05 +01:00
13288032b3 cleanup 2021-03-16 21:20:53 +01:00
6 changed files with 62 additions and 50 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,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*

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,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
View 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

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"