2026-06-24 20:17:46 -04:00
|
|
|
---
|
|
|
|
|
- name: Installer nginx
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
name: "{{ serveur_nginx_packages }}"
|
|
|
|
|
state: present
|
|
|
|
|
update_cache: true
|
|
|
|
|
cache_valid_time: 3600
|
|
|
|
|
|
2026-07-01 23:26:43 -04:00
|
|
|
# Debian 13 fournit « server_tokens off; » actif dans nginx.conf. Notre drop-in
|
|
|
|
|
# 99-setops.conf le redeclare -> nginx -t echoue (« directive is duplicate »).
|
|
|
|
|
# On neutralise la ligne distro pour que 99-setops.conf soit l'unique source.
|
|
|
|
|
- name: Neutraliser le server_tokens par defaut de Debian
|
|
|
|
|
ansible.builtin.replace:
|
|
|
|
|
path: /etc/nginx/nginx.conf
|
|
|
|
|
regexp: '^(\s*)server_tokens\s+\S+;'
|
|
|
|
|
replace: '\1# server_tokens gere par Set-OPS (conf.d/99-setops.conf)'
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
2026-06-24 20:17:46 -04:00
|
|
|
- name: Deployer le durcissement de base nginx
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: 99-setops.conf.j2
|
|
|
|
|
dest: /etc/nginx/conf.d/99-setops.conf
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0644"
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
|
|
|
|
- name: Desactiver le site Debian par defaut
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: /etc/nginx/sites-enabled/default
|
|
|
|
|
state: absent
|
|
|
|
|
when: serveur_nginx_desactiver_defaut | bool
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
|
|
|
|
- name: Deployer les sites reverse proxy declares a la main
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: site.conf.j2
|
|
|
|
|
dest: "/etc/nginx/sites-available/{{ item.nom }}.conf"
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0644"
|
|
|
|
|
loop: "{{ serveur_nginx_sites }}"
|
|
|
|
|
loop_control:
|
|
|
|
|
label: "{{ item.nom }}"
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
|
|
|
|
- name: Activer les sites reverse proxy declares a la main
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
src: "/etc/nginx/sites-available/{{ item.nom }}.conf"
|
|
|
|
|
dest: "/etc/nginx/sites-enabled/{{ item.nom }}.conf"
|
|
|
|
|
state: link
|
|
|
|
|
loop: "{{ serveur_nginx_sites }}"
|
|
|
|
|
loop_control:
|
|
|
|
|
label: "{{ item.nom }}"
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
|
|
|
|
# --- Vhosts derives des applications (champ expose) + domaines (edge) ---
|
|
|
|
|
- name: Charger les registres applications et domaines
|
|
|
|
|
ansible.builtin.include_vars:
|
|
|
|
|
file: "{{ item }}"
|
|
|
|
|
loop:
|
|
|
|
|
- "{{ setops_plan_dir }}/applications.yml"
|
|
|
|
|
- "{{ setops_plan_dir }}/domaines.yml"
|
|
|
|
|
when: serveur_nginx_publier_expositions | bool
|
|
|
|
|
|
|
|
|
|
- name: Lister les expositions destinees a cet edge
|
|
|
|
|
ansible.builtin.set_fact:
|
|
|
|
|
serveur_nginx_expositions: >-
|
|
|
|
|
{{ {'applications': applications | default({})}
|
|
|
|
|
| expositions_des_applications({'domaines_publics': domaines_publics | default({})}, serveur_nginx_groupe) }}
|
|
|
|
|
when: serveur_nginx_publier_expositions | bool
|
|
|
|
|
|
|
|
|
|
- name: Deployer les vhosts derives des expositions web
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: expositions.conf.j2
|
|
|
|
|
dest: /etc/nginx/sites-available/expositions.conf
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0644"
|
|
|
|
|
when: serveur_nginx_publier_expositions | bool
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
|
|
|
|
- name: Activer les vhosts derives des expositions web
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
src: /etc/nginx/sites-available/expositions.conf
|
|
|
|
|
dest: /etc/nginx/sites-enabled/expositions.conf
|
|
|
|
|
state: link
|
|
|
|
|
when: serveur_nginx_publier_expositions | bool
|
|
|
|
|
notify: Valider et recharger nginx
|
|
|
|
|
|
|
|
|
|
- name: Activer et demarrer nginx
|
2026-07-01 21:01:53 -04:00
|
|
|
when: not ansible_check_mode
|
2026-06-24 20:17:46 -04:00
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: "{{ serveur_nginx_service_name }}"
|
|
|
|
|
enabled: true
|
|
|
|
|
state: started
|
sondes : les cinq qui manquaient le plus (autorite, base, annuaire, zones, edge)
CORRECTION DE COMPTE D ABORD. J avais annonce cinq groupes sans sonde. La
mesure en donne VINGT-SEPT : j avais compte ceux que j avais en tete, pas
ceux que le depot contient. Il en reste vingt-deux.
LES CINQ, PAR ORDRE DE DEGAT SILENCIEUX.
autorite (step_ca) — la plus urgente : nos certificats vivent 24 h, une AC
muette ne casse rien aujourd hui et casse TOUT demain, d un coup, sur les
21 machines. Elle surveille aussi l expiration de la RACINE, que personne
ne regarde parce qu elle vit des annees (relevee a 3642 jours).
base (postgresql) — une VRAIE requete, pas pg_isready : celui-ci dit que
le port repond, pas que la base sert. Plus le compte des connexions : a
saturation, chaque application tombe sans que la base ait l air morte.
annuaire (openldap) — elle COMPTE les entrees. Un annuaire vide repond
success a tout : le mensonge des sauvegardes vides, vert et sans contenu.
zones (powerdns) — un autoritatif sans zone repond NXDOMAIN a tout, ce qui
se lit comme « ce nom n existe pas ».
edge (nginx) — elle valide la configuration SUR DISQUE : nginx sert la
derniere valide, et une configuration cassee ne se voit qu au prochain
demarrage, souvent des mois plus tard.
Les cinq eprouvees vertes sur le sain puis rouges PAR PARAMETRE, sans
toucher a un service.
Etat : 20 sondes sur 19 roles, 23 services distincts, 70 instances, 67 au
vert. Les trois autres sont connues : deux sauvegardes sans donnee a
emporter, et Loki en delai de stabilisation apres redeploiement.
make prouver : CONFORME, 64 OK, 0 echec, 0 saute.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-10 03:47:03 -04:00
|
|
|
|
|
|
|
|
# --- 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 « edge »
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: sonde-edge.sh.j2
|
|
|
|
|
dest: /usr/local/lib/setops/sondes/edge.sh
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0750"
|