From 584ebe42e5fed27112591902b4884741d6308e1b Mon Sep 17 00:00:00 2001 From: "pulsar89.5" Date: Fri, 21 Apr 2023 16:32:34 +0200 Subject: [PATCH] [EVO] Ajouter les scripts de notifications --- README.md | 7 +++++++ defaults/main.yml | 6 ++++++ tasks/main.yml | 22 +++++++++++++++++++++- templates/keepalived.j2 | 13 +++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c2eea88..9e03b68 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,13 @@ Passer en unicast en utilisant cette liste d'IP. *Valeur par défaut: aucune* +### keepalived_notify + +Dictionnaire comportant des booléens permettant d'activer les scripts en fonction de l'état.
+Les scripts sont déployés dans `/srv/keepalived/notify_{master,backup,fault,stop}.sh`. + +*Valeur par défaut: `false` (pour chaque état)* + ### 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..454a47e 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -13,6 +13,12 @@ keepalived_ipv6: "" keepalived_peers: [] +keepalived_notify: + - master: false + - backup: false + - fault: false + - 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..0ce4433 100644 --- a/templates/keepalived.j2 +++ b/templates/keepalived.j2 @@ -58,6 +58,19 @@ vrrp_instance VIP_{{ keepalived_uid }} { } {% endif %} +{% if keepalived_notify_master | length > 0 %} + notify_master {{ keepalived_notify_master.dst }} +{% endif %} +{% if keepalived_notify_backup | length > 0 %} + notify_master {{ keepalived_notify_backup.dst }} +{% endif %} +{% if keepalived_notify_fault | length > 0 %} + notify_master {{ keepalived_notify_fault.dst }} +{% endif %} +{% if keepalived_notify_stop | length > 0 %} + notify_master {{ keepalived_notify_stop.dst }} +{% endif %} + {% if keepalived_track_scripts | length > 0 %} track_script { {% for script in keepalived_track_scripts %}