Set-OPS-Public/exemples/modeles/integral/README.md
Daniel Allaire 4037eafb63 Modèle integral rafraîchi : 6 zones, fonctions éprouvées, VMID ip-miroir, nouveaux intrants
Régénéré depuis le cas prouvé (Technolibre/lab), rendu générique (exemple.internal,
index à remplacer). 12 VM en 6 zones de sécurité, vmid_schema: ip-miroir, intrants
fuseau_horaire/organisation/identite_realm. Prouvé (dérivation + valider_serveurs).
README réécrit (tableau des zones, procédure d'instanciation).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 01:04:29 -04:00

27 lines
1.6 KiB
Markdown

# Modèle : integral
Écosystème souverain **complet et éprouvé** — le socle de référence pour un nouveau tenant.
**12 VM** réparties en **6 zones de sécurité** (un /24 + VLAN chacune) :
| Zone | VLAN | Fonctions |
|---|---|---|
| Frontière | 16 | infra-edge (nginx), edge-mta (Postfix/rspamd) |
| Identité | 17 | id-ldap (OpenLDAP), id-sso (Keycloak) |
| Données | 18 | data-sql (PostgreSQL/Redis), sauvegarde (restic) |
| Services-infra | 19 | infra-dns (PowerDNS), infra-pki (step-ca), infra-mail (Dovecot) |
| Observabilité | 20 | obs (Prometheus/Loki/Grafana), sup (Icinga + BPM) |
| Applications | 21 | forge (Forgejo) |
## Pour instancier un tenant
1. Copier ce dépôt-modèle vers `OPS-<votre-tenant>` (dépôt d'instance autonome).
2. Adapter :
- `plan/nomenclature.yml` : **`index`** (identifiant unique du tenant → préfixe VMID + supernet `10.(10+index).0.0/16`) et les `sous_reseau`/`passerelle` des 6 zones.
- `inventories/production/group_vars/all.yml` : `domaine_interne`, `fuseau_horaire`, `organisation`, `identite_realm`.
- `plan/domaines.yml` et les FQDN d'`expose` dans `plan/applications.yml`.
3. Pointer le sélecteur (`instance → OPS-<tenant>`) puis `make instancier`.
## Dérivations automatiques
Le nom d'un serveur (`data-sql-01`) + la nomenclature suffisent : **VMID, IP, VLAN, passerelle** sont dérivés — rien à saisir. Le VMID suit le schéma **`ip-miroir`** (9 chiffres `I·VVV·HHH·NN` = index·VLAN·octet-hôte·séquence : il *contient* l'IP + le tenant).
Voir `exemples/modeles/README.md` pour le mécanisme général.