Les handlers
Les handlers sont des taches speciales declenchees uniquement par une notification (notify). Ils s'executent une seule fois a la fin du play, meme s'ils sont notifies plusieurs fois.
---
- name: Configurer Nginx
hosts: webservers
become: yes
tasks:
- name: Installer Nginx
apt:
name: nginx
state: present
- name: Copier la configuration Nginx
copy:
src: files/nginx.conf
dest: /etc/nginx/nginx.conf
notify: Redemarrer Nginx
- name: Copier le vhost
template:
src: templates/vhost.conf.j2
dest: /etc/nginx/sites-available/default
notify: Redemarrer Nginx
handlers:
- name: Redemarrer Nginx
service:
name: nginx
state: restarted
Playbook multi-plays
---
# Play 1 : Configurer les serveurs web
- name: Configurer les serveurs web
hosts: webservers
become: yes
tasks:
- name: Installer Nginx
apt:
name: nginx
state: present
# Play 2 : Configurer les serveurs de base de donnees
- name: Configurer les serveurs de base de donnees
hosts: dbservers
become: yes
tasks:
- name: Installer MySQL
apt:
name: mysql-server
state: present
Verifier la syntaxe
# Verifier la syntaxe du playbook
ansible-playbook site.yml --syntax-check
# Lister les taches
ansible-playbook site.yml --list-tasks
# Lister les hotes cibles
ansible-playbook site.yml --list-hosts
Important : Les handlers s'executent dans l'ordre ou ils sont definis, pas dans l'ordre des notifications.