Playbooks : les bases 15 min de lecture

Handlers et notifications

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.