Le dépôt fait / explique / prouve ce qu'il affirme, vérifiable en une commande. - Phase 1 : docs/audit/affirmations.md — 54 affirmations publiques tracées vers une commande de preuve et un statut (✅/🟡/❌/⚪). - Phase 2 : CLAUDE.md réduit à un pointeur mince ; contradiction SSH levée (le code applique déjà PasswordAuthentication no + AuthenticationMethods publickey, conforme à AGENTS.md) ; section AGENTS « Codex » → « agents IA ». - Phase 3 : parcours démarrage réparé (QUICKSTART renvoyait à un modèle absent, chemins de voûte faux, commandes make périmées) ; make verifier vert (ansible-lint 33 → 0 : site.yml généré nommé, pipefail, name[template]) ; voûte Proxmox unifiée lue par le clonage (all/vault.yml). - Phase 4 : make prouver → docs/audit/preuve-<date>.md, harnais rejouable qui rappelle l'outillage existant (aucune validation réimplémentée). - Phase 5 : parcours QUICKSTART prouvé hors-ligne sur le socle ; modèle socle rendu valide (autorite interne → auto-heberge) ; split-brain d'inventaire corrigé (repli sur le répertoire existant, pas principal/). make prouver : 15 OK, 0 échec, 1 sautée (voûte). ansible-lint : 0 failure. Écarts découverts en cours de traitement (AFF-097..100) : tous résolus. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
3.5 KiB
Markdown
52 lines
3.5 KiB
Markdown
# Preuve de conformite — Set-OPS — 2026-07-20
|
|
|
|
> Genere par `make prouver` (`scripts/prouver.py`). **Rejouable** : relancer
|
|
> reproduit ce rapport. Chaque preuve rejoue l'outillage existant du depot ;
|
|
> aucune validation n'est reimplementee ici. Voir le mode d'emploi :
|
|
> [`docs/audit/README.md`](README.md), et le registre trace :
|
|
> [`docs/audit/affirmations.md`](affirmations.md).
|
|
|
|
- **Instance** : `instance` — inventaire `instance/inventories/principal/hosts.yml`
|
|
- **Verdict** : ✅ CONFORME (15 OK · 0 echec · 1 saute)
|
|
|
|
## Preuves
|
|
|
|
| # | Preuve | Affirmations | Statut | Detail |
|
|
|---|---|---|---|---|
|
|
| P01 | Lint (ansible-lint) | AFF-006 | ✅ OK | |
|
|
| P02 | Tests unitaires (inventory_host) | — | ✅ OK | 4 tests passes. |
|
|
| P03 | Diff-vide du plan (inventaire genere) | AFF-001, AFF-004, AFF-030, AFF-031, AFF-032 | ✅ OK | DIFF VIDE : le plan reproduit exactement l'inventaire actuel. Bascule possible. |
|
|
| P04 | Groupes <-> playbooks homonymes | AFF-008 | ✅ OK | |
|
|
| P05 | Dependances causales de groupes | AFF-009, AFF-084 | ✅ OK | |
|
|
| P06 | Validateurs de registres (serveurs/apps/bases/domaines) | AFF-003 | ✅ OK | Registre des domaines valide. |
|
|
| P07 | GUI (node --check) | AFF-033 | ✅ OK | JS du GUI : syntaxe valide (node --check). |
|
|
| P08 | Orchestration (couches + graphe) | AFF-070 | ✅ OK | Orchestration coherente : 30 groupes classes, aucun cycle, aucune arete en arriere. |
|
|
| P09 | Flux reseau (schema + matrice) | AFF-071 | ✅ OK | Flux coherents : 29 rôles, 63 flux, schéma + matrice OK. |
|
|
| P10 | Handlers <-> notify | AFF-034, AFF-035 | ✅ OK | Tout notify pointe vers un handler du meme role (49 roles). |
|
|
| P11 | Syntaxe des playbooks (--syntax-check) | AFF-083 | ✅ OK | playbook: playbooks/proxmox/cloner_vm_debian.yml |
|
|
| P12 | Existence des runbooks cites | AFF-010, AFF-011, AFF-012, AFF-083 | ✅ OK | 17/17 runbooks/registres cites presents. |
|
|
| P13 | Invariants structurels/doctrinaux | AFF-015, AFF-022, AFF-037, AFF-038, AFF-062 | ✅ OK | LICENSE, socle dossier, pas de couches paralleles, SSH clef-only, nftables off : OK. |
|
|
| P14 | Pas de chemin lab/ code en dur | AFF-097 | ✅ OK | Aucun chemin instance/inventories/lab/group_vars code en dur. |
|
|
| P15 | Modele public socle valide | AFF-022, AFF-099 | ✅ OK | Modele public socle : domaines/serveurs/applications/bases valides. |
|
|
| P16 | Inventaire Ansible complet (--list) | AFF-030 | ⚪ SAUTE | Voute chiffree sans ANSIBLE_VAULT_PASSWORD_FILE (prerequis AFF-026). |
|
|
|
|
## Couverture des affirmations ✅ du registre
|
|
|
|
Chaque affirmation ✅ automatisable est couverte par la preuve indiquee ci-dessus.
|
|
Les ✅ **structurelles/doctrinales** non rejouables par une commande (ex. AFF-005
|
|
`make`=aide, AFF-014 ciblage groupe, AFF-024 `instancier-appliquer`, AFF-051 autorite
|
|
d'AGENTS.md, AFF-073/075 gardes `make`, AFF-090 wiki) ont ete verifiees a l'audit ;
|
|
elles restent hors du harnais recurrent (rien d'executable a rejouer).
|
|
|
|
## Declarations d'intention (⚪ invérifiables localement — assumees)
|
|
|
|
Ces affirmations ne sont pas rejouables hors production ; elles sont **assumees**
|
|
comme declarations d'intention, non comme preuves :
|
|
|
|
- **AFF-036** — « testables avec `--check` autant que possible » : verifiable seulement
|
|
contre une flotte vivante.
|
|
- **AFF-091** — contenu pedagogique du wiki : affirmations conceptuelles.
|
|
- **AFF-096** — « GUI 100 % francais » : revue exhaustive des libelles rendus, non automatisee.
|
|
- **AFF-007** — hote d'exemple `web-frontal-01` : placeholder assume.
|
|
|
|
_Rapport genere le 2026-07-20._
|