--- - name: Installer Prometheus ansible.builtin.apt: name: "{{ serveur_prometheus_paquets }}" state: present update_cache: true cache_valid_time: 3600 # --- LES CIBLES QUE LES ROLES DECLARENT (2026-09-14) ---------------------------------- # # `serveur_prometheus_cibles_supplementaires` existait depuis longtemps — une liste libre, # documentee, et que PERSONNE ne remplissait. Resultat : Prometheus ne scrutait que les # `node_exporter`. Aucune metrique de SERVICE n'etait collectee — ni PostgreSQL, ni # l'annuaire, ni les boites, ni le cache. Seulement du systeme. # # CE QUI LES REMPLIT DESORMAIS : `roles//meta/metriques.yml`, croise avec les hotes # qui portent ce groupe. Exactement le patron de `client_sante` pour les sondes, et de # `resoudre_flux` pour les pare-feu : LE ROLE DECLARE, LE MOTEUR DERIVE. # # UNE VALEUR DONNEE AU PLAN GAGNE : `| default` laisse un ecosysteme ajouter une cible qui # ne vient d'aucun role — un equipement, un service tiers. La derivation complete, elle ne # remplace pas. - name: Relever les metriques que les roles declarent ansible.builtin.find: paths: "{{ role_path }}/.." patterns: metriques.yml recurse: true depth: 3 delegate_to: localhost become: false run_once: true check_mode: false register: serveur_prometheus_metas - name: Lire chaque declaration de metriques ansible.builtin.slurp: src: "{{ item.path }}" delegate_to: localhost become: false run_once: true check_mode: false loop: "{{ serveur_prometheus_metas.files }}" loop_control: label: "{{ item.path | dirname | dirname | basename }}" register: serveur_prometheus_declarations - name: Deployer la configuration Prometheus ansible.builtin.template: src: prometheus.yml.j2 dest: "{{ serveur_prometheus_config }}" owner: root group: root mode: "0644" notify: Valider et recharger prometheus - name: Definir les arguments du service (retention) ansible.builtin.template: src: default-prometheus.j2 dest: /etc/default/prometheus owner: root group: root mode: "0644" notify: Valider et recharger prometheus - name: Activer et demarrer Prometheus when: not ansible_check_mode ansible.builtin.systemd: name: "{{ serveur_prometheus_service }}" enabled: true state: started # --- Sonde de supervision (docs/supervision-conception.md) -------------------------- # Le role qui possede la verite depose sa propre sonde ; le porteur (`client_sante`) la # fait tourner et pousse le verdict, sans savoir ce qu'elle mesure. - 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 « collecte » ansible.builtin.template: src: sonde-collecte.sh.j2 dest: /usr/local/lib/setops/sondes/collecte.sh owner: root group: root mode: "0750"