Set-OPS-Public/roles/serveur_redis/tasks/main.yml
Daniel Allaire 050b8b267e serveur_redis : la sonde qui manquait, et la panne qu elle voit
Redis est le premier des treize roles serveur_* sans supervision declaree.

Une seule sonde, parce qu il n y a qu une cause d action : le cache ne sert
plus. Elle s atteint par deux chemins — il ne repond pas, ou il repond et n a
rien a dire. Le second est le couteux : borne a maxmemory avec allkeys-lru, un
Redis plein n echoue JAMAIS, il evicte. Les sessions disparaissent, les gens
sont deconnectes au hasard, et le service reste vert. La panne se presente
comme un defaut d application.

Le compteur d evictions est cumulatif : la sonde en fait un DEBIT, sinon une
seule mauvaise journee laisserait le voyant rouge pour toujours.

Pas d occupation memoire ni de taux de succes ici — ce sont des series, elles
appartiennent a Prometheus. Icinga repond a une seule question.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-14 09:20:10 -04:00

56 lines
1.6 KiB
YAML

---
- name: Exiger le mot de passe Redis (Vault)
ansible.builtin.assert:
that:
- serveur_redis_password | length > 0
fail_msg: "serveur_redis_password est requis (Redis est expose sur le reseau interne)."
- name: Installer Redis
ansible.builtin.apt:
name: "{{ serveur_redis_paquets }}"
state: present
update_cache: true
cache_valid_time: 3600
- name: Deployer la surcharge de configuration Set-OPS
ansible.builtin.template:
src: setops.conf.j2
dest: "{{ serveur_redis_config }}"
owner: redis
group: redis
mode: "0640"
no_log: true
notify: Redemarrer redis
- name: Inclure la surcharge depuis redis.conf
ansible.builtin.lineinfile:
path: "{{ serveur_redis_config_principal }}"
line: "include {{ serveur_redis_config }}"
insertafter: EOF
state: present
notify: Redemarrer redis
- name: Activer et demarrer Redis
when: not ansible_check_mode
ansible.builtin.systemd:
name: "{{ serveur_redis_service }}"
enabled: true
state: started
# LE ROLE QUI POSSEDE LA VERITE DEPOSE SA PROPRE SONDE. `client_sante` la fait tourner et
# pousse le resultat ; il n'a pas a savoir ce qu'elle mesure, ni ou vit le mot de passe.
- name: Assurer le repertoire des sondes de supervision
ansible.builtin.file:
path: /usr/local/lib/setops/sondes
state: directory
owner: root
group: root
mode: "0755"
- name: Deposer la sonde « cache »
ansible.builtin.template:
src: sonde-cache.sh.j2
dest: /usr/local/lib/setops/sondes/cache.sh
owner: root
group: root
mode: "0750"