diff --git a/README.md b/README.md
index c2eea88..7e7133d 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,19 @@ Passer en unicast en utilisant cette liste d'IP.
*Valeur par défaut: aucune*
+### keepalived_scripts_path
+
+Emplacement où les scripts de keepalived seront déployés.
+
+*Valeur par défaut: aucune*
+
+### keepalived_notify_{master,backup,fault,stop}
+
+Booléen permettant d'activer ou non le script en fonction de l'état de keepalived.
+Les scripts sont déployés dans `/notify_{master,backup,fault,stop}.sh`.
+
+*Valeur par défaut: `false`*
+
### keepalived_track_scripts
Liste de script dont le code retour doit être à zéro pour que le membre conserve ou puisse prendre l'IP de failover.
diff --git a/defaults/main.yml b/defaults/main.yml
index 6b2b021..926a192 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -13,6 +13,13 @@ keepalived_ipv6: ""
keepalived_peers: []
+keepalived_scripts_path: /srv/keepalived
+
+keepalived_notify_master: false
+keepalived_notify_backup: false
+keepalived_notify_fault: false
+keepalived_notify_stop: false
+
keepalived_track_scripts: []
# Exemple:
# - name: check_haproxy_8080
diff --git a/tasks/main.yml b/tasks/main.yml
index d0a1d7a..ae0e25c 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,7 +1,7 @@
---
# tasks file for keepalived
-- name: Installer keepalived
+- name: Installer le paquet
ansible.builtin.apt:
name: keepalived
become: true
@@ -15,3 +15,23 @@
dest: /etc/keepalived/keepalived.conf
become: true
notify: Redémarrer keepalived.service
+
+- name: Créer le dossier de déploiement des scripts
+ ansible.builtin.file:
+ path: /srv/keepalived
+ owner: root
+ group: root
+ mode: u=rwX,g=rX,o=
+ state: directory
+ become: true
+
+- name: Déployer les scripts
+ ansible.builtin.copy:
+ src: keepalived/notify_{{ state }}.sh
+ dest: /srv/keepalived/
+ mode: u=r,g=r,o=
+ loop: "{{ keepalived_notify }}"
+ loop_control:
+ index_var: state
+ become: true
+ notify: Redémarrer keepalived.service
diff --git a/templates/keepalived.j2 b/templates/keepalived.j2
index e739cf9..a71eb24 100644
--- a/templates/keepalived.j2
+++ b/templates/keepalived.j2
@@ -58,6 +58,19 @@ vrrp_instance VIP_{{ keepalived_uid }} {
}
{% endif %}
+{% if keepalived_notify_master %}
+ notify_master {{ keepalived_scripts_path }}/notify_master.sh
+{% endif %}
+{% if keepalived_notify_backup %}
+ notify_backup {{ keepalived_scripts_path }}/notify_backup.sh
+{% endif %}
+{% if keepalived_notify_fault %}
+ notify_fault {{ keepalived_scripts_path }}/notify_fault.sh
+{% endif %}
+{% if keepalived_notify_stop %}
+ notify_stop {{ keepalived_scripts_path }}/notify_stop.sh
+{% endif %}
+
{% if keepalived_track_scripts | length > 0 %}
track_script {
{% for script in keepalived_track_scripts %}