Set-OPS-Public/roles/serveur_icingaweb2/templates/resources.ini.j2
Daniel Allaire 504840f378 console : deux bases confondues, et un etat sans domicile
serveur_icingaweb2 appelle resoudre_base deux fois — moteur puis comptes — et le
second appel ecrase les faits du premier. Les gabarits lisaient donc la seconde
base partout : la console cherchait icingadb_schema dans la base des comptes et
rendait une trace PHP a chaque page, pendant que les 66 tables du moteur etaient
intactes a cote. Celui qui appelle un role partage deux fois doit NOMMER ses
resultats avant de le rappeler.

Et le cadre de migration veut une instance de base quoi qu il arrive :
config_backend db + config_resource icingaweb_db. L erreur des preferences
n apparaissait qu A LA CONNEXION — un journal muet ne prouvait rien tant que
personne n avait ouvert de session, d ou un controle qui en ouvre une vraie.

J ai attribue a tort la fin des erreurs a un rechargement manuel : les horloges
disent que le handler du role avait deja redemarre php-fpm sept minutes plus
tot. Mes fenetres de mesure enjambaient le correctif.

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

51 lines
2.1 KiB
Django/Jinja

; Géré par Set-OPS (rôle serveur_icingaweb2). Ne pas éditer à la main.
; LA BASE DU MOTEUR — nommee par des variables PROPRES a ce role, jamais par les faits
; partages de `resoudre_base` : ce role l'appelle deux fois, et le second appel ecrase
; les faits du premier. Voir `tasks/main.yml`.
[icingadb]
type = "db"
db = "pgsql"
host = "{{ serveur_icingaweb2_moteur_host }}"
port = "{{ serveur_icingaweb2_moteur_port }}"
dbname = "{{ serveur_icingaweb2_moteur_base }}"
username = "{{ serveur_icingaweb2_moteur_utilisateur }}"
password = "{{ serveur_icingaweb2_moteur_motdepasse }}"
charset = "UTF8"
{% if serveur_icingaweb2_db_sslmode | default('') %}
; LE SERVEUR IMPOSE `hostssl` : sans ces deux lignes, PostgreSQL refuse la connexion et
; l'erreur parle de `pg_hba`, pas de chiffrement. Derive de ce que sert le serveur — voir
; `resoudre_base` et P78.
ssl_mode = "{{ serveur_icingaweb2_db_sslmode }}"
ssl_ca = "{{ serveur_icingaweb2_db_sslrootcert }}"
{% endif %}
{% if serveur_icingaweb2_auth == 'db' %}
; LA BASE DES COMPTES DE LA CONSOLE — distincte d'`icingadb`, qui est celle du MOTEUR.
; Meler les deux ferait disparaitre les comptes au premier passage des migrations du
; moteur, sans que personne n'ait touche aux comptes.
[icingaweb_db]
type = "db"
db = "pgsql"
host = "{{ serveur_icingaweb2_db_host }}"
port = "{{ serveur_icingaweb2_db_port }}"
dbname = "{{ serveur_icingaweb2_db_base }}"
username = "{{ serveur_icingaweb2_db_utilisateur }}"
password = "{{ serveur_icingaweb2_db_motdepasse }}"
charset = "UTF8"
{% if serveur_icingaweb2_db_sslmode | default('') %}
ssl_mode = "{{ serveur_icingaweb2_db_sslmode }}"
ssl_ca = "{{ serveur_icingaweb2_db_sslrootcert }}"
{% endif %}
{% endif %}
{% if serveur_icingaweb2_auth not in ('db',) %}
[icingaweb_ldap]
type = "ldap"
hostname = "{{ serveur_icingaweb2_ldap_url | regex_replace('^ldaps?://', '') }}"
port = "{{ serveur_icingaweb2_ldap_port }}"
encryption = "ldaps"
root_dn = "{{ serveur_icingaweb2_ldap_base }}"
bind_dn = "{{ serveur_icingaweb2_ldap_bind_dn }}"
bind_pw = "{{ serveur_icingaweb2_ldap_bind_password }}"
timeout = "5"
{% endif %}