Les 33 roles serveur_* declarent maintenant une sonde. Les huit qui manquaient
sont ceux dont la verite ne ressemble pas a « ce service repond-il ».
Quatre marqueurs du site : ce que tasks/main.yml verifie UNE FOIS au deploiement
cesse d etre vrai sans que rien ne tombe. La racine du cache se retrouve chainee,
la forge du genome repond en n ayant plus rien dedans, un locataire n est plus
admis a resoudre, l isolation d un depot glisse.
serveur_ops_site ne sert rien : il detient un pouvoir. La sonde verifie que la
carte est la, que la voute du site est chiffree et que sa cle est en 0600 — sans
lire le contenu d aucun des trois.
serveur_icingaweb2 surveille la vitrine de la supervision elle-meme : si la
console meurt, tout reste vert et l exploitant est aveugle.
DEFAUT 1 — quatre gabarits qu Ansible aurait refuse de rendre. Jinja lit le
{# de ${#tableau[@]} comme un debut de commentaire. Le depot connaissait le
remede et l appliquait la ou quelqu un s etait fait prendre, nulle part ailleurs.
P76 rend desormais chaque gabarit de role, avec les delimiteurs qu Ansible en
tirerait — pas une recherche de motif.
DEFAUT 2 — la doctrine promettait 54 greffons et citait check_pgsql. La flotte a
monitoring-plugins-basic : 53, sans check_pgsql ni check_dns ni check_ldap. Le
paquet qui les porte traine samba et snmp sur chaque machine. Un greffon absent
sort en 127, qui n est pas un code Nagios.
21 controles negatifs sur les machines reelles du site. ansible-lint production
0/91, harnais 75 OK.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
91 lines
5.3 KiB
Markdown
91 lines
5.3 KiB
Markdown
# Les rôles, un par un
|
|
|
|
> **Généré** par `make fiches`. Ne pas éditer à la main : corriger la déclaration du rôle, puis régénérer.
|
|
|
|
> **Pour qui :** celui qui doit agir sur un rôle et veut savoir, avant de toucher quoi que ce soit, qui lui parle, ce qu'il rend et ce qu'il coûte.
|
|
|
|
Chaque fiche est construite depuis ce que le rôle **déclare lui-même** — `meta/flux.yml`, `meta/supervision.yml`, `meta/metriques.yml`, `meta/empreinte.yml`, `meta/authentification.yml`. Aucune n'est écrite à la main : soixante-huit pages rédigées seraient périmées avant la fin du mois.
|
|
|
|
**Une colonne vide est une information**, pas un trou dans la fiche. C'est la carte de ce qui reste à déclarer, tenue à jour toute seule.
|
|
|
|
| rôle | flux entrants | sonde | métriques |
|
|
|---|---|---|---|
|
|
| [`amorcage_acces`](Rôle-amorcage_acces) | — | — | — |
|
|
| [`apparmor`](Rôle-apparmor) | — | — | — |
|
|
| [`auditd`](Rôle-auditd) | — | — | — |
|
|
| [`chrony`](Rôle-chrony) | — | — | — |
|
|
| [`client_artefacts`](Rôle-client_artefacts) | — | — | — |
|
|
| [`client_backup`](Rôle-client_backup) | — | — | — |
|
|
| [`client_journal`](Rôle-client_journal) | 1 | 1 | — |
|
|
| [`client_metrique`](Rôle-client_metrique) | 1 | 1 | — |
|
|
| [`client_pki`](Rôle-client_pki) | — | 1 | — |
|
|
| [`client_resolveur`](Rôle-client_resolveur) | — | — | — |
|
|
| [`client_sante`](Rôle-client_sante) | — | — | — |
|
|
| [`client_smtp`](Rôle-client_smtp) | — | — | — |
|
|
| [`cloud_init`](Rôle-cloud_init) | — | — | — |
|
|
| [`cloud_init_retrait`](Rôle-cloud_init_retrait) | — | — | — |
|
|
| [`common_packages`](Rôle-common_packages) | — | — | — |
|
|
| [`core_dumps`](Rôle-core_dumps) | — | — | — |
|
|
| [`fail2ban_ssh`](Rôle-fail2ban_ssh) | — | — | — |
|
|
| [`hardening_packages`](Rôle-hardening_packages) | — | — | — |
|
|
| [`hosts_statiques`](Rôle-hosts_statiques) | — | — | — |
|
|
| [`journald`](Rôle-journald) | — | — | — |
|
|
| [`motd`](Rôle-motd) | — | — | — |
|
|
| [`nftables_baseline`](Rôle-nftables_baseline) | — | — | — |
|
|
| [`paquets_tiers`](Rôle-paquets_tiers) | — | — | — |
|
|
| [`qemu_guest_agent`](Rôle-qemu_guest_agent) | — | — | — |
|
|
| [`resoudre_annuaire`](Rôle-resoudre_annuaire) | — | — | — |
|
|
| [`resoudre_base`](Rôle-resoudre_base) | — | — | — |
|
|
| [`resoudre_idp`](Rôle-resoudre_idp) | — | — | — |
|
|
| [`resoudre_politique_mdp`](Rôle-resoudre_politique_mdp) | — | — | — |
|
|
| [`serveur_artefacts`](Rôle-serveur_artefacts) | 1 | 2 | — |
|
|
| [`serveur_backup`](Rôle-serveur_backup) | 1 | 1 | — |
|
|
| [`serveur_backup_site`](Rôle-serveur_backup_site) | 1 | 1 | — |
|
|
| [`serveur_cache_site`](Rôle-serveur_cache_site) | 1 | 1 | — |
|
|
| [`serveur_collabora`](Rôle-serveur_collabora) | 2 | 1 | — |
|
|
| [`serveur_debian`](Rôle-serveur_debian) | 3 | 2 | — |
|
|
| [`serveur_dovecot`](Rôle-serveur_dovecot) | 3 | 1 | — |
|
|
| [`serveur_durci`](Rôle-serveur_durci) | — | 1 | — |
|
|
| [`serveur_forge_site`](Rôle-serveur_forge_site) | 1 | 1 | — |
|
|
| [`serveur_forgejo`](Rôle-serveur_forgejo) | 2 | 1 | — |
|
|
| [`serveur_grafana`](Rôle-serveur_grafana) | 1 | 1 | — |
|
|
| [`serveur_icinga`](Rôle-serveur_icinga) | 4 | 1 | — |
|
|
| [`serveur_icingaweb2`](Rôle-serveur_icingaweb2) | 1 | 1 | — |
|
|
| [`serveur_keycloak`](Rôle-serveur_keycloak) | 1 | 1 | — |
|
|
| [`serveur_loki`](Rôle-serveur_loki) | 4 | 2 | — |
|
|
| [`serveur_nextcloud`](Rôle-serveur_nextcloud) | 1 | 1 | — |
|
|
| [`serveur_nginx`](Rôle-serveur_nginx) | 4 | 1 | — |
|
|
| [`serveur_oauth2_proxy`](Rôle-serveur_oauth2_proxy) | 1 | 1 | — |
|
|
| [`serveur_openldap`](Rôle-serveur_openldap) | 2 | 1 | — |
|
|
| [`serveur_ops`](Rôle-serveur_ops) | — | 1 | — |
|
|
| [`serveur_ops_site`](Rôle-serveur_ops_site) | — | 1 | — |
|
|
| [`serveur_ops_tenant`](Rôle-serveur_ops_tenant) | 1 | 1 | — |
|
|
| [`serveur_postfix`](Rôle-serveur_postfix) | 2 | 1 | — |
|
|
| [`serveur_postgresql`](Rôle-serveur_postgresql) | 2 | 1 | oui |
|
|
| [`serveur_powerdns`](Rôle-serveur_powerdns) | 2 | 1 | — |
|
|
| [`serveur_prometheus`](Rôle-serveur_prometheus) | 1 | 1 | — |
|
|
| [`serveur_redis`](Rôle-serveur_redis) | 1 | 1 | — |
|
|
| [`serveur_resolveur`](Rôle-serveur_resolveur) | 2 | 1 | — |
|
|
| [`serveur_resolveur_site`](Rôle-serveur_resolveur_site) | 2 | 1 | — |
|
|
| [`serveur_rspamd`](Rôle-serveur_rspamd) | 2 | 1 | — |
|
|
| [`serveur_step_ca`](Rôle-serveur_step_ca) | 1 | 1 | — |
|
|
| [`serveur_web_dorsal`](Rôle-serveur_web_dorsal) | 1 | 1 | — |
|
|
| [`serveur_web_frontal`](Rôle-serveur_web_frontal) | 1 | 1 | — |
|
|
| [`ssh_baseline`](Rôle-ssh_baseline) | — | — | — |
|
|
| [`ssh_hardening`](Rôle-ssh_hardening) | — | — | — |
|
|
| [`sudo_ansible`](Rôle-sudo_ansible) | — | — | — |
|
|
| [`sysctl_hardening`](Rôle-sysctl_hardening) | — | — | — |
|
|
| [`systemd_ssh_auto`](Rôle-systemd_ssh_auto) | — | — | — |
|
|
| [`template_cleanup`](Rôle-template_cleanup) | — | — | — |
|
|
| [`unattended_upgrades`](Rôle-unattended_upgrades) | — | — | — |
|
|
|
|
## Ce qui reste à déclarer
|
|
|
|
Sur **68** rôles :
|
|
|
|
- **36** ne déclarent aucun flux entrant
|
|
- **32** ne déclarent aucune sonde
|
|
- **67** ne déclarent aucune métrique
|
|
|
|
Ces nombres ne sont pas tous des dettes : un rôle de durcissement n'a rien à exposer, et beaucoup de `client_*` n'ont aucun verdict à rendre. Mais un service qui porte de l'état et ne déclare rien mérite qu'on se demande pourquoi.
|
|
|