Some checks failed
verifier / verifier (push) Has been cancelled
serveur_artefacts (apt-cacher-ng) + client_artefacts, integration universelle qui s'eteint quand aucun hote ne porte le service et RETIRE la direction posee. Chez patient 0 : colocalise sur forge-01 -- la forge est la source, du code et des binaires. La preuve est le mode hors ligne : paquet en cache servi en 0 o/s, paquet absent refuse par un 503. Tant qu'internet repond, un apt update qui reussit ne dit pas d'ou vient l'octet. Trois lecons : apt fait heriter Acquire::https::Proxy de la valeur HTTP (d'ou 403 CONNECT denied sur les depots tiers, et smallstep injoignable) ; un service ne doit pas dependre de lui-meme pour se reparer (l'apt update du role passait par le cache hors ligne) ; et rediriger 2>/dev/null, c'est choisir de ne pas voir. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
128 lines
5.8 KiB
YAML
128 lines
5.8 KiB
YAML
---
|
|
groupes:
|
|
client_pki:
|
|
requiert_groupes_actifs:
|
|
- serveur_step_ca
|
|
raison: "La confiance CA et ACME client dependent de l'autorite interne."
|
|
surveillance: "Verifier validite CA, emission ACME et expiration des certificats."
|
|
|
|
client_metrique:
|
|
requiert_groupes_actifs:
|
|
- serveur_prometheus
|
|
raison: "Les exporters clients doivent etre collectes par Prometheus."
|
|
surveillance: "Verifier targets Prometheus, scrape duration et erreurs de collecte."
|
|
|
|
client_journal:
|
|
requiert_groupes_actifs:
|
|
- serveur_loki
|
|
raison: "L'expedition des journaux depend du collecteur central Loki."
|
|
surveillance: "Verifier ingestion Loki, retard et volume de journaux."
|
|
|
|
client_smtp:
|
|
requiert_groupes_actifs:
|
|
- serveur_postfix
|
|
raison: "Les notifications locales doivent relayer vers un MTA actif (Postfix)."
|
|
surveillance: "Verifier file d'attente, relais SMTP et echecs de livraison."
|
|
|
|
serveur_postfix:
|
|
requiert_groupes_actifs:
|
|
- serveur_dovecot
|
|
raison: "Postfix remet le courrier local via LMTP a Dovecot (mailstore) ; la remise exige Dovecot actif."
|
|
surveillance: "Verifier file d'attente, remise LMTP (status=sent) et rejets."
|
|
|
|
serveur_keycloak:
|
|
requiert_groupes_actifs:
|
|
- serveur_postgresql
|
|
- serveur_openldap
|
|
raison: "Keycloak persiste dans PostgreSQL et federe l'annuaire OpenLDAP (resoudre_annuaire_uri)."
|
|
surveillance: "Verifier connexion base, federation LDAP, etat realm et disponibilite OIDC."
|
|
|
|
serveur_dovecot:
|
|
requiert_groupes_actifs:
|
|
- serveur_openldap
|
|
raison: "Dovecot resout ses utilisateurs (userdb/passdb) sur l'annuaire OpenLDAP (resoudre_annuaire_*)."
|
|
surveillance: "Verifier bind LDAP, authentification IMAP et remise LMTP."
|
|
|
|
serveur_grafana:
|
|
requiert_groupes_actifs:
|
|
- serveur_prometheus
|
|
- serveur_loki
|
|
raison: "Grafana est utile comme interface aux metriques et journaux centraux."
|
|
surveillance: "Verifier datasources Prometheus/Loki et authentification."
|
|
|
|
serveur_icinga:
|
|
requiert_groupes_actifs:
|
|
- serveur_postgresql
|
|
raison: "La plateforme Icinga Web/BPM depend d'une base relationnelle."
|
|
surveillance: "Verifier moteur Icinga, base, interface web et notifications."
|
|
|
|
serveur_icingaweb2:
|
|
requiert_groupes_actifs:
|
|
- serveur_icinga
|
|
- serveur_postgresql
|
|
- serveur_openldap
|
|
raison: "Frontal web d'Icinga : lit IcingaDB (base), affiche le moteur Icinga et authentifie sur l'annuaire OpenLDAP (resoudre_annuaire)."
|
|
surveillance: "Verifier acces IcingaDB, connexion Icinga et authentification LDAP."
|
|
|
|
serveur_forgejo:
|
|
requiert_groupes_actifs:
|
|
- serveur_postgresql
|
|
- serveur_nginx
|
|
# UNE EXIGENCE PEUT ETRE CONDITIONNELLE (2026-08-22). Depuis que le role sait tenir sa
|
|
# base dans un fichier, exiger un serveur PostgreSQL est faux pour qui a choisi SQLite
|
|
# — et bloquait le deploiement d'un ecosysteme parfaitement coherent.
|
|
sauf_si:
|
|
serveur_postgresql: { variable: serveur_forgejo_bd, vaut: sqlite }
|
|
# UTILISE SI PRESENT : Forgejo envoie des notifications quand un MTA existe, et s'en
|
|
# passe sinon. Ce n'etait pas une EXIGENCE — le confondre avec une exigence obligeait
|
|
# une forge a deployer une pile courriel pour exister.
|
|
utilise_si_present:
|
|
- serveur_postfix
|
|
raison: "Forgejo depend d'une base (serveur ou fichier) et d'une publication HTTP(S) ; le courriel est un agrement."
|
|
surveillance: "Verifier HTTP(S), base, files Git et envoi courriel."
|
|
|
|
serveur_ops:
|
|
requiert_groupes_actifs:
|
|
- serveur_forgejo
|
|
# LE POSTE LIT LE GENOME SUR LA FORGE DE SON PROPRE ECOSYSTEME — c'est ce qui le rend
|
|
# autonome : il ne redemande rien a son parent. Sans forge, il n'a aucune source.
|
|
#
|
|
# Une forge EXTERNE reste possible (un ecosysteme peut lire le genome ailleurs) : il
|
|
# suffit de surcharger `serveur_ops_forge_url`. L'exigence tombe alors, comme pour
|
|
# toute exigence conditionnelle du registre.
|
|
sauf_si:
|
|
serveur_forgejo: { variable: serveur_ops_forge_externe, vaut: true }
|
|
# UTILISE SI PRESENT : sans confiance PKI, `git clone` refuse le certificat de la
|
|
# forge — et il a raison de refuser. Ce n'est pas une exigence du groupe : une forge
|
|
# a certificat public se cloner sans client_pki.
|
|
utilise_si_present:
|
|
- serveur_step_ca
|
|
raison: "Le poste d'exploitation clone le genome depuis la forge de l'ecosysteme ; sans elle, il n'a pas de source."
|
|
surveillance: "Verifier que les depots clones suivent leur amont et qu'ansible repond dans le venv."
|
|
|
|
client_artefacts:
|
|
requiert_groupes_actifs:
|
|
- serveur_artefacts
|
|
# L'INTEGRATION SUIT L'EXISTENCE DU SERVICE. Un ecosysteme sans source d'artefacts
|
|
# prend ses paquets a l'amont : c'est un choix valide, pas une panne. Le role se
|
|
# desactive alors seul (`client_artefacts_actif` derive de l'inventaire) et RETIRE la
|
|
# direction posee auparavant -- sans quoi les hotes resteraient braques sur une
|
|
# machine disparue.
|
|
sauf_si:
|
|
serveur_artefacts: { variable: client_artefacts_actif, vaut: false }
|
|
raison: "Un hote ne peut prendre ses paquets chez lui que si l'ecosysteme heberge une source."
|
|
surveillance: "Verifier que le cache repond sur 3142 et que les hotes le designent bien."
|
|
|
|
serveur_artefacts:
|
|
requiert_groupes_actifs: []
|
|
raison: "Un cache apt ne depend d'aucun service de l'ecosysteme : il ne fait que relayer et retenir."
|
|
surveillance: "Verifier l'ecoute sur 3142, le taux de service depuis le journal, et l'espace du cache."
|
|
|
|
serveur_nextcloud:
|
|
requiert_groupes_actifs:
|
|
- serveur_postgresql
|
|
- serveur_keycloak
|
|
- serveur_collabora
|
|
raison: "Nextcloud persiste dans PostgreSQL (verify-full), federe l'identite par OIDC (Keycloak) et valide WOPI contre Collabora (edition en ligne)."
|
|
surveillance: "Verifier base, decouverte OIDC, autodetection WOPI et acces web."
|
|
|