2026-07-03 16:57:04 -04:00
|
|
|
; Géré par Set-OPS (rôle serveur_icingaweb2). Ne pas éditer à la main.
|
2026-09-15 10:22:53 -04:00
|
|
|
; 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`.
|
2026-07-03 16:57:04 -04:00
|
|
|
[icingadb]
|
|
|
|
|
type = "db"
|
|
|
|
|
db = "pgsql"
|
2026-09-15 10:22:53 -04:00
|
|
|
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 }}"
|
2026-07-03 16:57:04 -04:00
|
|
|
charset = "UTF8"
|
une console pour le site, et un repli qui ouvrait vers l Internet
Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic
et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak
— ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un
backend qui vise une ressource inexistante fait echouer chaque ouverture de
session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot
que contournee.
Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait
sur NoneType has no len (default sans son second argument ne remplace pas None),
et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne
pouvait entrer. serveur_grafana portait deja la reponse.
LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait
sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise
la console a parler LDAPS a n importe quelle machine du monde, pour joindre un
annuaire qui n existe pas. C est une source vide ouvre le port, cote
destination. Trois regles du meme defaut etaient DEJA posees pour postfix.
La frontiere n est pas ecrite : elle porte la production, et le devis attend un
mot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:11:22 -04:00
|
|
|
{% 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 %}
|
2026-09-15 08:49:32 -04:00
|
|
|
|
2026-10-03 21:04:51 -04:00
|
|
|
; LA BASE DE LA CONSOLE — distincte d'`icingadb`, qui est celle du MOTEUR. Dans tous les
|
|
|
|
|
; modes : comptes en mode `db`, preferences et migrations partout. Meler les deux bases
|
|
|
|
|
; ferait disparaitre les comptes au premier passage des migrations du moteur.
|
2026-09-15 08:49:32 -04:00
|
|
|
[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 %}
|
|
|
|
|
{% if serveur_icingaweb2_auth not in ('db',) %}
|
2026-07-03 16:57:04 -04:00
|
|
|
|
|
|
|
|
[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"
|
une console pour le site, et un repli qui ouvrait vers l Internet
Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic
et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak
— ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un
backend qui vise une ressource inexistante fait echouer chaque ouverture de
session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot
que contournee.
Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait
sur NoneType has no len (default sans son second argument ne remplace pas None),
et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne
pouvait entrer. serveur_grafana portait deja la reponse.
LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait
sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise
la console a parler LDAPS a n importe quelle machine du monde, pour joindre un
annuaire qui n existe pas. C est une source vide ouvre le port, cote
destination. Trois regles du meme defaut etaient DEJA posees pour postfix.
La frontiere n est pas ecrite : elle porte la production, et le devis attend un
mot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:11:22 -04:00
|
|
|
{% endif %}
|