From a8319d43673bf60db49ecf4f02eeff4ec9af0bdc Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Wed, 1 Jul 2026 23:26:43 -0400 Subject: [PATCH] serveur_nginx : corriger server_tokens en double (Debian 13) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Debian 13 livre « server_tokens off; » actif dans nginx.conf ; notre drop-in 99-setops.conf le redéclarait → nginx -t « directive is duplicate » → déploiement planté au handler de validation. Le rôle neutralise maintenant la ligne distro (replace idempotent) ; le drop-in reste l'unique source. Trouvé en déployant nginx pour de vrai. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 6 ++++++ roles/serveur_nginx/tasks/main.yml | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f3184f..6a9b834 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,12 @@ - **Compteur « vivantes »** dans l'en-tête (depuis la sonde), à côté de actifs/planifiés. ### Corrigé +- **nginx ne validait pas sur Debian 13 (`server_tokens` en double).** Debian 13 livre + `server_tokens off;` **actif** dans `/etc/nginx/nginx.conf` (avant : commenté). Le + drop-in `conf.d/99-setops.conf` du rôle le redéclarait → `nginx -t` échouait + (« directive is duplicate ») et le déploiement plantait au handler de validation. Le + rôle `serveur_nginx` neutralise désormais la ligne distro (le drop-in reste l'unique + source). Trouvé en déployant nginx pour de vrai sur un hôte edge. - **Une voûte chiffrée cassait `instancier` / « Appliquer le plan ».** `ansible-inventory --list` (utilisé pour la comparaison sémantique du plan) tente de déchiffrer `group_vars/all/vault.yml` et échoue sans mot de passe (`exit 4`) — alors que diff --git a/roles/serveur_nginx/tasks/main.yml b/roles/serveur_nginx/tasks/main.yml index e79c7b5..7bf7218 100644 --- a/roles/serveur_nginx/tasks/main.yml +++ b/roles/serveur_nginx/tasks/main.yml @@ -6,6 +6,16 @@ update_cache: true cache_valid_time: 3600 +# 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 + - name: Deployer le durcissement de base nginx ansible.builtin.template: src: 99-setops.conf.j2