diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b8b4ca..876976a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG — Set-OPS +## 2026-06-24 + +### Modifié +- **Consolidation minimale post-diagnostic (ménage documentaire, sans risque).** Suite à une relecture à froid « auteur » de l'état réel du dépôt. (1) **En-tête généré rafraîchi** : `instance/inventories/production/hosts.yml` pointait encore vers l'ancienne source `docs/` ; régénéré via `instancier-appliquer` (diff sémantique **vide** — contenu inchangé, seul l'en-tête a bougé ; commité côté instance `OPS-Chezlepro`). (2) **`docs/catalogue-services.md`** : nouvelle section **« État d'implémentation des rôles »** qui distingue sans ambiguïté les rôles **implémentés** (validés *en tant que code*, **non éprouvés en prod**), les **échafaudages** (playbooks-ancres `debug` sans rôle : `serveur_nextcloud`, `serveur_collabora`, `client_supervision`, `serveur_web_frontal`, `serveur_web_dorsal`) et les **rôles-catégories inertes** (`applications`, `backup`, `database`, `identity`, `monitoring`, `proxmox`, `storage`, `web` — vestiges d'un regroupement par catégorie abandonné, l'architecture réelle étant plate `serveur_*`/`client_*`) ; colonnes « Rôle futur » → « Rôle ». (3) **`docs/vm-lifecycle.md` §8** : flux de déploiement réaligné sur le plan (`instancier-appliquer` puis `deployer`) au lieu de la commande supplantée `hote-ajouter`. Vérifié : `make verifier` (exit 0), `ansible-lint` 0 échec. **Non touché à dessein** : les références `instance/inventories/lab/` des docs de template sont **correctes** (contexte golden template, distinct de `production`) ; le bas du `README.md` (« Premier chantier »/« Principe ») est daté mais **exact** (template = socle), donc laissé tel quel pour éviter le churn. + ## 2026-06-23 ### Corrigé diff --git a/docs/catalogue-services.md b/docs/catalogue-services.md index b7ca3e5..4ee3abd 100644 --- a/docs/catalogue-services.md +++ b/docs/catalogue-services.md @@ -16,9 +16,34 @@ Un service central peut partager un hôte avec d'autres services de la même fon > Modèle à jour : chaque service est une **application** (`instance/plan/applications.yml`). Voir `docs/plan-et-generation.md`. +## État d'implémentation des rôles + +> **Mise à jour (2026-06-24).** La plupart des rôles ci-dessous **existent désormais** — +> écrits et validés *en tant que code*, **pas encore éprouvés sur des VM réelles**. Le rôle +> effectif porte le nom du **groupe** (`serveur_keycloak`, `client_pki`…), pas le nom court +> de la colonne « Rôle » des tables. + +**Implémentés** (`tasks` + `templates` + `handlers`, validés) : `serveur_step_ca`, +`client_pki`, `serveur_powerdns`, `client_dns`, `serveur_openldap`, `client_ldap`, +`serveur_keycloak`, `serveur_postgresql`, `serveur_redis`, `serveur_nginx`, +`serveur_sendmail`, `client_smtp`, `serveur_prometheus`, `client_metrique`, `serveur_loki`, +`client_journal`, `serveur_grafana`, `serveur_icinga`, `serveur_forgejo`. Plus le socle et +le durcissement, appliqués par `serveur_debian` / `serveur_durci`. + +**Échafaudages** (playbook-ancre `debug` « reste à définir », **sans rôle**) : +`serveur_nextcloud`, `serveur_collabora`, `client_supervision`, `serveur_web_frontal`, +`serveur_web_dorsal`. Les capacités *collaboration* et *couche web applicative* sont câblées +par convention mais pas encore implémentées. + +**Rôles-catégories inertes** (dossiers `roles//` réduits à un `README.md`, jamais câblés) : +`applications`, `backup`, `database`, `identity`, `monitoring`, `proxmox`, `storage`, `web`. +L'architecture réelle est **plate** (`serveur_*` / `client_*`) ; ces dossiers sont des +vestiges d'un regroupement par catégorie abandonné — à supprimer ou réactiver lors d'une +consolidation ultérieure. + ## Services centraux -| Service | Groupe | Playbook | Rôle futur | +| Service | Groupe | Playbook | Rôle | | --- | --- | --- | --- | | Keycloak | `serveur_keycloak` | `playbooks/groupes/serveur_keycloak.yml` | `keycloak` | | OpenLDAP | `serveur_openldap` | `playbooks/groupes/serveur_openldap.yml` | `openldap` | @@ -46,7 +71,7 @@ La couche applicative web est distincte de l'edge `serveur_nginx` : Le « web » de ces deux groupes est implicite par leur position derrière `serveur_nginx`. Le jour où un service dorsal n'est pas web (worker batch, file, démon), créer un groupe dédié plutôt que d'élargir `serveur_web_dorsal`. -| Couche | Groupe | Playbook | Rôle futur | +| Couche | Groupe | Playbook | Rôle | | --- | --- | --- | --- | | Présentation web (frontends) | `serveur_web_frontal` | `playbooks/groupes/serveur_web_frontal.yml` | `web_frontaux` | | Application web (backends) | `serveur_web_dorsal` | `playbooks/groupes/serveur_web_dorsal.yml` | `web_dorsaux` | @@ -72,7 +97,7 @@ Dépendance d'intégration prévue : `serveur_web_frontal` devra publier via `se ## Intégrations clientes -| Intégration | Groupe | Playbook | Rôle futur | +| Intégration | Groupe | Playbook | Rôle | | --- | --- | --- | --- | | Résolution DNS interne | `client_dns` | `playbooks/groupes/client_dns.yml` | `client_dns` | | Confiance PKI / ACME | `client_pki` | `playbooks/groupes/client_pki.yml` | `client_pki` | diff --git a/docs/vm-lifecycle.md b/docs/vm-lifecycle.md index a60aac9..caa54de 100644 --- a/docs/vm-lifecycle.md +++ b/docs/vm-lifecycle.md @@ -142,10 +142,9 @@ L'accès SSH par mot de passe est désactivé dès le socle. L'activation de nft ## 8. Déploiement par Makefile -Pour une VM déjà clonée et démarrée : +L'hôte est d'abord déclaré dans le **plan** (`instance/plan/serveurs.yml`) et l'inventaire régénéré (`make instancier-appliquer`) — `hosts.yml` est généré, il ne s'édite plus à la main. Pour une VM déjà clonée et démarrée : ```bash -make hote-ajouter HOTE=web-frontal-01 VMID=95301 ADRESSE_IP=10.1.15.31 GROUPES="serveur_debian serveur_durci" make deployer HOTE=web-frontal-01 ```