Modèles partiels rafraîchis (socle/identite/observabilite/forge) + presence-web flaggé
Réalignés sur le moule integral : 6 zones (numéros/VLAN cohérents), vmid_schema ip-miroir, fonctions éprouvées (data→data-sql, idm→id-ldap+id-sso, mon→sup), nouveaux intrants (fuseau_horaire/organisation/identite_realm). Prouvés (dérivation 9 chiffres + valider_serveurs). presence-web : marqué ASPIRATIONNEL (fonctions web-frontal/dorsal sans rôle réel) — honnêteté plutôt que faux-prêt. README général corrigé (état + intrants). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
4037eafb63
commit
6eb178598f
30 changed files with 184 additions and 361 deletions
|
|
@ -6,7 +6,8 @@ offre, le renseigne à ses couleurs (ou celles de son client), et instancie.
|
|||
## Utilisation
|
||||
```bash
|
||||
cp -r exemples/modeles/<modele> ../mon-instance
|
||||
# éditer mon-instance : domaine_interne, domaines publics, dimensionnement
|
||||
# éditer mon-instance : intrants (domaine_interne, fuseau_horaire, organisation,
|
||||
# identite_realm), plan/nomenclature.yml (index de fédération + zones), domaines
|
||||
cd <moteur Set-OPS>
|
||||
ln -s ../mon-instance instance # ou export SETOPS_INSTANCE=../mon-instance
|
||||
make instancier-appliquer FORCE=1 # première génération de l'inventaire
|
||||
|
|
@ -19,7 +20,7 @@ courriel) et ajoute des **modules** selon l'offre.
|
|||
| Modèle | = socle + | État |
|
||||
| --- | --- | --- |
|
||||
| `socle` | (rien) | ✅ |
|
||||
| **`presence-web`** | web (frontal+dorsal) + données (PostgreSQL/Redis) | ✅ |
|
||||
| `presence-web` | web (frontal+dorsal) + données | ⚠️ rôles web à construire |
|
||||
| `forge` | Forgejo + données | ✅ |
|
||||
| `identite` | LDAP + Keycloak (SSO) | ✅ |
|
||||
| `observabilite` | Prometheus/Loki/Grafana + Icinga | ✅ |
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# Modele : forge
|
||||
# Modèle : forge
|
||||
|
||||
Forge Git souveraine : socle + Forgejo + PostgreSQL.
|
||||
Base + données + **forge git** — **6 VM** : socle infra + PostgreSQL/Redis +
|
||||
Forgejo (dépôts git, exposé via l'edge).
|
||||
|
||||
6 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
Zones : Frontière (16) · Données (18) · Services-infra (19) · Applications (21).
|
||||
SSO non inclus — ajouter le modèle `identite` pour « Se connecter avec ... ».
|
||||
VMID `ip-miroir`. Copier vers `OPS-<tenant>`, adapter `index`/domaine/intrants.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
domaine_interne: "exemple.internal"
|
||||
fuseau_horaire: "America/Toronto"
|
||||
organisation: "Exemple"
|
||||
identite_realm: "exemple"
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
|
|
|
|||
|
|
@ -1,24 +1,9 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_postfix
|
||||
hote: infra-mail-01
|
||||
powerdns:
|
||||
groupe: serveur_powerdns
|
||||
hote: infra-dns-01
|
||||
postgresql:
|
||||
groupe: serveur_postgresql
|
||||
hote: data-01
|
||||
port: 5432
|
||||
forgejo:
|
||||
groupe: serveur_forgejo
|
||||
hote: forge-01
|
||||
port: 3000
|
||||
expose:
|
||||
- forge.exemple.ca
|
||||
step_ca: { groupe: serveur_step_ca, hote: infra-pki-01 }
|
||||
nginx: { groupe: serveur_nginx, hote: infra-edge-01 }
|
||||
powerdns: { groupe: serveur_powerdns, hote: infra-dns-01 }
|
||||
dovecot: { groupe: serveur_dovecot, hote: infra-mail-01 }
|
||||
postgresql: { groupe: serveur_postgresql, hote: data-sql-01 }
|
||||
redis: { groupe: serveur_redis, hote: data-sql-01 }
|
||||
forgejo: { groupe: serveur_forgejo, hote: forge-01, port: 3000, expose: [forge.exemple.internal] }
|
||||
|
|
|
|||
|
|
@ -1,13 +1,9 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
sql-01: { type: postgres, hote: data-sql-01, port: 5432, groupe: serveur_postgresql }
|
||||
bases_donnees:
|
||||
forgejo:
|
||||
serveur: pg-principal
|
||||
serveur: sql-01
|
||||
base: forgejo
|
||||
proprietaire: forgejo
|
||||
secret: vault_bd_forgejo
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
exemple.ca: { autorite: primaire-cache, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
exemple.internal: { autorite: interne, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
|
|
|
|||
|
|
@ -1,42 +1,20 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
# MODÈLE « forge » — base + données + forge git (6 VM) : Forgejo.
|
||||
# index : ⚠️ REMPLACER par l'index unique du tenant.
|
||||
index: 1
|
||||
supernet: 10.11.0.0/16
|
||||
vmid_schema: ip-miroir
|
||||
cidr_hote: 24
|
||||
reservations:
|
||||
passerelle: 1
|
||||
reserve_min: 2
|
||||
reserve_max: 9
|
||||
reservations: { passerelle: 1, reserve_min: 2, reserve_max: 9 }
|
||||
categories:
|
||||
1:
|
||||
libelle: Fondations
|
||||
vlan: 11
|
||||
sous_reseau: 10.10.11.0/24
|
||||
passerelle: 10.10.11.1
|
||||
3:
|
||||
libelle: Donnees
|
||||
vlan: 13
|
||||
sous_reseau: 10.10.13.0/24
|
||||
passerelle: 10.10.13.1
|
||||
5:
|
||||
libelle: Applications
|
||||
vlan: 15
|
||||
sous_reseau: 10.10.15.0/24
|
||||
passerelle: 10.10.15.1
|
||||
1: { libelle: Frontiere, vlan: 16, sous_reseau: 10.11.16.0/24, passerelle: 10.11.16.1 }
|
||||
3: { libelle: Donnees, vlan: 18, sous_reseau: 10.11.18.0/24, passerelle: 10.11.18.1 }
|
||||
4: { libelle: Services-infra, vlan: 19, sous_reseau: 10.11.19.0/24, passerelle: 10.11.19.1 }
|
||||
6: { libelle: Applications, vlan: 21, sous_reseau: 10.11.21.0/24, passerelle: 10.11.21.1 }
|
||||
fonctions:
|
||||
data:
|
||||
categorie: 3
|
||||
service: 1
|
||||
forge:
|
||||
categorie: 5
|
||||
service: 1
|
||||
infra-dns:
|
||||
categorie: 1
|
||||
service: 4
|
||||
infra-edge:
|
||||
categorie: 1
|
||||
service: 2
|
||||
infra-mail:
|
||||
categorie: 1
|
||||
service: 3
|
||||
infra-pki:
|
||||
categorie: 1
|
||||
service: 1
|
||||
infra-edge: { categorie: 1, service: 1 }
|
||||
data-sql: { categorie: 3, service: 1 }
|
||||
infra-dns: { categorie: 4, service: 1 }
|
||||
infra-pki: { categorie: 4, service: 2 }
|
||||
infra-mail: { categorie: 4, service: 3 }
|
||||
forge: { categorie: 6, service: 1 }
|
||||
|
|
|
|||
|
|
@ -1,20 +1,8 @@
|
|||
---
|
||||
serveurs:
|
||||
infra-pki-01:
|
||||
fonction: infra-pki
|
||||
etat: planifie
|
||||
infra-edge-01:
|
||||
fonction: infra-edge
|
||||
etat: planifie
|
||||
infra-mail-01:
|
||||
fonction: infra-mail
|
||||
etat: planifie
|
||||
infra-dns-01:
|
||||
fonction: infra-dns
|
||||
etat: planifie
|
||||
data-01:
|
||||
fonction: data
|
||||
etat: planifie
|
||||
forge-01:
|
||||
fonction: forge
|
||||
etat: planifie
|
||||
infra-pki-01: { fonction: infra-pki, etat: planifie, disque: 32G, integrations: [client_backup] }
|
||||
infra-edge-01: { fonction: infra-edge, etat: planifie, integrations: [client_pki] }
|
||||
infra-mail-01: { fonction: infra-mail, etat: planifie, integrations: [client_pki, client_backup] }
|
||||
infra-dns-01: { fonction: infra-dns, etat: planifie, disque: 40G, integrations: [client_pki] }
|
||||
data-sql-01: { fonction: data-sql, etat: planifie, integrations: [client_pki, client_unbound, client_backup, client_metrique, client_journal, client_smtp] }
|
||||
forge-01: { fonction: forge, etat: planifie, integrations: [client_pki, client_backup, client_metrique, client_journal, client_smtp] }
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
# Modele : identite
|
||||
# Modèle : identite
|
||||
|
||||
Identite centralisee : socle + LDAP + Keycloak (SSO) + PostgreSQL.
|
||||
Base + données + **identité** — **7 VM** : socle infra + PostgreSQL/Redis +
|
||||
OpenLDAP (annuaire, source de vérité) + Keycloak (SSO/OIDC, exposé via l'edge).
|
||||
|
||||
6 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
Zones : Frontière (16) · Identité (17) · Données (18) · Services-infra (19).
|
||||
VMID `ip-miroir`. Copier vers `OPS-<tenant>`, adapter `index`/domaine/intrants.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
domaine_interne: "exemple.internal"
|
||||
fuseau_horaire: "America/Toronto"
|
||||
organisation: "Exemple"
|
||||
identite_realm: "exemple"
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
|
|
|
|||
|
|
@ -1,27 +1,14 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_postfix
|
||||
hote: infra-mail-01
|
||||
powerdns:
|
||||
groupe: serveur_powerdns
|
||||
hote: infra-dns-01
|
||||
postgresql:
|
||||
groupe: serveur_postgresql
|
||||
hote: data-01
|
||||
port: 5432
|
||||
openldap:
|
||||
groupe: serveur_openldap
|
||||
hote: idm-01
|
||||
step_ca: { groupe: serveur_step_ca, hote: infra-pki-01 }
|
||||
nginx: { groupe: serveur_nginx, hote: infra-edge-01 }
|
||||
powerdns: { groupe: serveur_powerdns, hote: infra-dns-01 }
|
||||
dovecot: { groupe: serveur_dovecot, hote: infra-mail-01 }
|
||||
openldap: { groupe: serveur_openldap, hote: id-ldap-01 }
|
||||
postgresql: { groupe: serveur_postgresql, hote: data-sql-01 }
|
||||
redis: { groupe: serveur_redis, hote: data-sql-01 }
|
||||
keycloak:
|
||||
groupe: serveur_keycloak
|
||||
hote: idm-01
|
||||
hote: id-sso-01
|
||||
port: 8080
|
||||
expose:
|
||||
- auth.exemple.ca
|
||||
expose: [keycloak.exemple.internal]
|
||||
|
|
|
|||
|
|
@ -1,13 +1,9 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
sql-01: { type: postgres, hote: data-sql-01, port: 5432, groupe: serveur_postgresql }
|
||||
bases_donnees:
|
||||
keycloak:
|
||||
serveur: pg-principal
|
||||
serveur: sql-01
|
||||
base: keycloak
|
||||
proprietaire: keycloak
|
||||
secret: vault_bd_keycloak
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
exemple.ca: { autorite: primaire-cache, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
exemple.internal: { autorite: interne, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
|
|
|
|||
|
|
@ -1,42 +1,21 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
# MODÈLE « identite » — base + données + identité (7 VM) : OpenLDAP + Keycloak.
|
||||
# index : ⚠️ REMPLACER par l'index unique du tenant.
|
||||
index: 1
|
||||
supernet: 10.11.0.0/16
|
||||
vmid_schema: ip-miroir
|
||||
cidr_hote: 24
|
||||
reservations:
|
||||
passerelle: 1
|
||||
reserve_min: 2
|
||||
reserve_max: 9
|
||||
reservations: { passerelle: 1, reserve_min: 2, reserve_max: 9 }
|
||||
categories:
|
||||
1:
|
||||
libelle: Fondations
|
||||
vlan: 11
|
||||
sous_reseau: 10.10.11.0/24
|
||||
passerelle: 10.10.11.1
|
||||
2:
|
||||
libelle: Identite
|
||||
vlan: 12
|
||||
sous_reseau: 10.10.12.0/24
|
||||
passerelle: 10.10.12.1
|
||||
3:
|
||||
libelle: Donnees
|
||||
vlan: 13
|
||||
sous_reseau: 10.10.13.0/24
|
||||
passerelle: 10.10.13.1
|
||||
1: { libelle: Frontiere, vlan: 16, sous_reseau: 10.11.16.0/24, passerelle: 10.11.16.1 }
|
||||
2: { libelle: Identite, vlan: 17, sous_reseau: 10.11.17.0/24, passerelle: 10.11.17.1 }
|
||||
3: { libelle: Donnees, vlan: 18, sous_reseau: 10.11.18.0/24, passerelle: 10.11.18.1 }
|
||||
4: { libelle: Services-infra, vlan: 19, sous_reseau: 10.11.19.0/24, passerelle: 10.11.19.1 }
|
||||
fonctions:
|
||||
data:
|
||||
categorie: 3
|
||||
service: 1
|
||||
idm:
|
||||
categorie: 2
|
||||
service: 1
|
||||
infra-dns:
|
||||
categorie: 1
|
||||
service: 4
|
||||
infra-edge:
|
||||
categorie: 1
|
||||
service: 2
|
||||
infra-mail:
|
||||
categorie: 1
|
||||
service: 3
|
||||
infra-pki:
|
||||
categorie: 1
|
||||
service: 1
|
||||
infra-edge: { categorie: 1, service: 1 }
|
||||
id-ldap: { categorie: 2, service: 1 }
|
||||
id-sso: { categorie: 2, service: 2 }
|
||||
data-sql: { categorie: 3, service: 1 }
|
||||
infra-dns: { categorie: 4, service: 1 }
|
||||
infra-pki: { categorie: 4, service: 2 }
|
||||
infra-mail: { categorie: 4, service: 3 }
|
||||
|
|
|
|||
|
|
@ -1,20 +1,9 @@
|
|||
---
|
||||
serveurs:
|
||||
infra-pki-01:
|
||||
fonction: infra-pki
|
||||
etat: planifie
|
||||
infra-edge-01:
|
||||
fonction: infra-edge
|
||||
etat: planifie
|
||||
infra-mail-01:
|
||||
fonction: infra-mail
|
||||
etat: planifie
|
||||
infra-dns-01:
|
||||
fonction: infra-dns
|
||||
etat: planifie
|
||||
data-01:
|
||||
fonction: data
|
||||
etat: planifie
|
||||
idm-01:
|
||||
fonction: idm
|
||||
etat: planifie
|
||||
infra-pki-01: { fonction: infra-pki, etat: planifie, disque: 32G, integrations: [client_backup] }
|
||||
infra-edge-01: { fonction: infra-edge, etat: planifie, integrations: [client_pki] }
|
||||
infra-mail-01: { fonction: infra-mail, etat: planifie, integrations: [client_pki, client_backup] }
|
||||
infra-dns-01: { fonction: infra-dns, etat: planifie, disque: 40G, integrations: [client_pki] }
|
||||
id-ldap-01: { fonction: id-ldap, etat: planifie, integrations: [client_pki, client_backup, client_metrique, client_journal, client_smtp] }
|
||||
id-sso-01: { fonction: id-sso, etat: planifie, integrations: [client_pki] }
|
||||
data-sql-01: { fonction: data-sql, etat: planifie, integrations: [client_pki, client_unbound, client_backup, client_metrique, client_journal, client_smtp] }
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# Modele : observabilite
|
||||
# Modèle : observabilite
|
||||
|
||||
Observabilite & supervision : socle + Prometheus/Loki/Grafana + Icinga.
|
||||
Base + données + **observabilité/supervision** — **7 VM** : socle infra + PostgreSQL/
|
||||
Redis + Prometheus/Loki/Grafana (métriques & logs) + Icinga/BPM (supervision stratégique).
|
||||
|
||||
7 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
Zones : Frontière (16) · Données (18) · Services-infra (19) · Observabilité (20).
|
||||
SSO non inclus (auth locale) — ajouter le modèle `identite` pour fédérer.
|
||||
VMID `ip-miroir`. Copier vers `OPS-<tenant>`, adapter `index`/domaine/intrants.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
domaine_interne: "exemple.internal"
|
||||
fuseau_horaire: "America/Toronto"
|
||||
organisation: "Exemple"
|
||||
identite_realm: "exemple"
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
|
|
|
|||
|
|
@ -1,36 +1,13 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_postfix
|
||||
hote: infra-mail-01
|
||||
powerdns:
|
||||
groupe: serveur_powerdns
|
||||
hote: infra-dns-01
|
||||
postgresql:
|
||||
groupe: serveur_postgresql
|
||||
hote: data-01
|
||||
port: 5432
|
||||
redis:
|
||||
groupe: serveur_redis
|
||||
hote: data-01
|
||||
prometheus:
|
||||
groupe: serveur_prometheus
|
||||
hote: obs-01
|
||||
loki:
|
||||
groupe: serveur_loki
|
||||
hote: obs-01
|
||||
grafana:
|
||||
groupe: serveur_grafana
|
||||
hote: obs-01
|
||||
port: 3000
|
||||
expose:
|
||||
- grafana.exemple.ca
|
||||
icinga:
|
||||
groupe: serveur_icinga
|
||||
hote: mon-01
|
||||
step_ca: { groupe: serveur_step_ca, hote: infra-pki-01 }
|
||||
nginx: { groupe: serveur_nginx, hote: infra-edge-01 }
|
||||
powerdns: { groupe: serveur_powerdns, hote: infra-dns-01 }
|
||||
dovecot: { groupe: serveur_dovecot, hote: infra-mail-01 }
|
||||
postgresql: { groupe: serveur_postgresql, hote: data-sql-01 }
|
||||
redis: { groupe: serveur_redis, hote: data-sql-01 }
|
||||
loki: { groupe: serveur_loki, hote: obs-01 }
|
||||
prometheus: { groupe: serveur_prometheus, hote: obs-01 }
|
||||
grafana: { groupe: serveur_grafana, hote: obs-01, port: 3000, expose: [grafana.exemple.internal] }
|
||||
icinga: { groupe: serveur_icinga, hote: sup-01 }
|
||||
icingaweb2: { groupe: serveur_icingaweb2, hote: sup-01, port: 8080, expose: [icinga.exemple.internal] }
|
||||
|
|
|
|||
|
|
@ -1,13 +1,9 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
sql-01: { type: postgres, hote: data-sql-01, port: 5432, groupe: serveur_postgresql }
|
||||
bases_donnees:
|
||||
icingadb:
|
||||
serveur: pg-principal
|
||||
serveur: sql-01
|
||||
base: icingadb
|
||||
proprietaire: icingadb
|
||||
secret: vault_bd_icingadb
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
exemple.ca: { autorite: primaire-cache, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
exemple.internal: { autorite: interne, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
|
|
|
|||
|
|
@ -1,45 +1,21 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
# MODÈLE « observabilite » — base + données + observabilité/supervision (7 VM).
|
||||
# index : ⚠️ REMPLACER par l'index unique du tenant.
|
||||
index: 1
|
||||
supernet: 10.11.0.0/16
|
||||
vmid_schema: ip-miroir
|
||||
cidr_hote: 24
|
||||
reservations:
|
||||
passerelle: 1
|
||||
reserve_min: 2
|
||||
reserve_max: 9
|
||||
reservations: { passerelle: 1, reserve_min: 2, reserve_max: 9 }
|
||||
categories:
|
||||
1:
|
||||
libelle: Fondations
|
||||
vlan: 11
|
||||
sous_reseau: 10.10.11.0/24
|
||||
passerelle: 10.10.11.1
|
||||
3:
|
||||
libelle: Donnees
|
||||
vlan: 13
|
||||
sous_reseau: 10.10.13.0/24
|
||||
passerelle: 10.10.13.1
|
||||
4:
|
||||
libelle: Observabilite
|
||||
vlan: 14
|
||||
sous_reseau: 10.10.14.0/24
|
||||
passerelle: 10.10.14.1
|
||||
1: { libelle: Frontiere, vlan: 16, sous_reseau: 10.11.16.0/24, passerelle: 10.11.16.1 }
|
||||
3: { libelle: Donnees, vlan: 18, sous_reseau: 10.11.18.0/24, passerelle: 10.11.18.1 }
|
||||
4: { libelle: Services-infra, vlan: 19, sous_reseau: 10.11.19.0/24, passerelle: 10.11.19.1 }
|
||||
5: { libelle: Observabilite, vlan: 20, sous_reseau: 10.11.20.0/24, passerelle: 10.11.20.1 }
|
||||
fonctions:
|
||||
data:
|
||||
categorie: 3
|
||||
service: 1
|
||||
infra-dns:
|
||||
categorie: 1
|
||||
service: 4
|
||||
infra-edge:
|
||||
categorie: 1
|
||||
service: 2
|
||||
infra-mail:
|
||||
categorie: 1
|
||||
service: 3
|
||||
infra-pki:
|
||||
categorie: 1
|
||||
service: 1
|
||||
mon:
|
||||
categorie: 4
|
||||
service: 4
|
||||
obs:
|
||||
categorie: 4
|
||||
service: 1
|
||||
infra-edge: { categorie: 1, service: 1 }
|
||||
data-sql: { categorie: 3, service: 1 }
|
||||
infra-dns: { categorie: 4, service: 1 }
|
||||
infra-pki: { categorie: 4, service: 2 }
|
||||
infra-mail: { categorie: 4, service: 3 }
|
||||
obs: { categorie: 5, service: 1 }
|
||||
sup: { categorie: 5, service: 2 }
|
||||
|
|
|
|||
|
|
@ -1,23 +1,9 @@
|
|||
---
|
||||
serveurs:
|
||||
infra-pki-01:
|
||||
fonction: infra-pki
|
||||
etat: planifie
|
||||
infra-edge-01:
|
||||
fonction: infra-edge
|
||||
etat: planifie
|
||||
infra-mail-01:
|
||||
fonction: infra-mail
|
||||
etat: planifie
|
||||
infra-dns-01:
|
||||
fonction: infra-dns
|
||||
etat: planifie
|
||||
data-01:
|
||||
fonction: data
|
||||
etat: planifie
|
||||
obs-01:
|
||||
fonction: obs
|
||||
etat: planifie
|
||||
mon-01:
|
||||
fonction: mon
|
||||
etat: planifie
|
||||
infra-pki-01: { fonction: infra-pki, etat: planifie, disque: 32G, integrations: [client_backup] }
|
||||
infra-edge-01: { fonction: infra-edge, etat: planifie, integrations: [client_pki] }
|
||||
infra-mail-01: { fonction: infra-mail, etat: planifie, integrations: [client_pki, client_backup] }
|
||||
infra-dns-01: { fonction: infra-dns, etat: planifie, disque: 40G, integrations: [client_pki] }
|
||||
data-sql-01: { fonction: data-sql, etat: planifie, integrations: [client_pki, client_unbound, client_backup, client_metrique, client_journal, client_smtp] }
|
||||
obs-01: { fonction: obs, etat: planifie, integrations: [client_pki, client_metrique, client_journal, client_smtp] }
|
||||
sup-01: { fonction: sup, etat: planifie, integrations: [client_pki] }
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
# Modèle : Présence Web
|
||||
# Modèle : Présence Web ⚠️ ASPIRATIONNEL
|
||||
|
||||
Écosystème pour héberger **sites et applications web** : socle souverain (DNS,
|
||||
PKI, edge TLS, relais courriel) + couche web (frontal + dorsal) + données
|
||||
(PostgreSQL + Redis). 7 VM.
|
||||
> **Ce modèle n'est pas prêt à déployer.** Il repose sur des fonctions
|
||||
> `web-frontal` / `web-dorsal` qui **n'ont pas encore de rôle Set-OPS implémenté**
|
||||
> (seulement des empreintes de dimensionnement par défaut). À finaliser une fois
|
||||
> ces rôles construits — voir `docs/multi-instances.md`.
|
||||
|
||||
Renseignez : `inventories/production/group_vars/all.yml` (`domaine_interne`),
|
||||
`plan/domaines.yml` (votre domaine public), `plan/nomenclature.yml` (supernet),
|
||||
puis générez l'inventaire (voir `exemples/modeles/README.md`).
|
||||
Objectif visé : héberger **sites et applications web** — socle souverain (DNS, PKI,
|
||||
edge TLS, relais courriel) + couche web (frontal + dorsal) + données (PostgreSQL/Redis).
|
||||
|
||||
En attendant, pour un écosystème complet **prouvé**, utiliser le modèle **`integral`**.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# Modele : socle
|
||||
# Modèle : socle
|
||||
|
||||
Socle souverain : DNS interne, AC/PKI, edge TLS, relais courriel.
|
||||
Infrastructure de base souveraine — **4 VM** : edge (nginx), DNS (PowerDNS),
|
||||
PKI (step-ca), magasin courriel (Dovecot). Le point de départ minimal, extensible
|
||||
vers un écosystème complet (voir modèle `integral`).
|
||||
|
||||
4 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
Zones : Frontière (VLAN 16) · Services-infra (VLAN 19). VMID `ip-miroir` 9 chiffres.
|
||||
Copier vers `OPS-<tenant>`, adapter `index`/domaine/intrants, puis `make instancier`.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
domaine_interne: "exemple.internal"
|
||||
fuseau_horaire: "America/Toronto"
|
||||
organisation: "Exemple"
|
||||
identite_realm: "exemple"
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
|
|
|
|||
|
|
@ -1,14 +1,6 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_postfix
|
||||
hote: infra-mail-01
|
||||
powerdns:
|
||||
groupe: serveur_powerdns
|
||||
hote: infra-dns-01
|
||||
step_ca: { groupe: serveur_step_ca, hote: infra-pki-01 }
|
||||
nginx: { groupe: serveur_nginx, hote: infra-edge-01 }
|
||||
powerdns: { groupe: serveur_powerdns, hote: infra-dns-01 }
|
||||
dovecot: { groupe: serveur_dovecot, hote: infra-mail-01 }
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
---
|
||||
# socle : aucune base de données.
|
||||
serveurs_bd: {}
|
||||
bases_donnees: {}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
exemple.ca: { autorite: primaire-cache, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
exemple.internal: { autorite: interne, edge: serveur_nginx, secondaires: [], dnssec: false }
|
||||
|
|
|
|||
|
|
@ -1,26 +1,17 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
# MODÈLE « socle » — infrastructure de base (4 VM) : edge, DNS, PKI, magasin mail.
|
||||
# Zones/VLAN alignés sur integral (un socle peut grandir vers un écosystème complet).
|
||||
# index : ⚠️ REMPLACER par l'index unique du tenant (préfixe VMID + supernet 10.(10+index)).
|
||||
index: 1
|
||||
supernet: 10.11.0.0/16
|
||||
vmid_schema: ip-miroir
|
||||
cidr_hote: 24
|
||||
reservations:
|
||||
passerelle: 1
|
||||
reserve_min: 2
|
||||
reserve_max: 9
|
||||
reservations: { passerelle: 1, reserve_min: 2, reserve_max: 9 }
|
||||
categories:
|
||||
1:
|
||||
libelle: Fondations
|
||||
vlan: 11
|
||||
sous_reseau: 10.10.11.0/24
|
||||
passerelle: 10.10.11.1
|
||||
1: { libelle: Frontiere, vlan: 16, sous_reseau: 10.11.16.0/24, passerelle: 10.11.16.1 }
|
||||
4: { libelle: Services-infra, vlan: 19, sous_reseau: 10.11.19.0/24, passerelle: 10.11.19.1 }
|
||||
fonctions:
|
||||
infra-dns:
|
||||
categorie: 1
|
||||
service: 4
|
||||
infra-edge:
|
||||
categorie: 1
|
||||
service: 2
|
||||
infra-mail:
|
||||
categorie: 1
|
||||
service: 3
|
||||
infra-pki:
|
||||
categorie: 1
|
||||
service: 1
|
||||
infra-edge: { categorie: 1, service: 1 }
|
||||
infra-dns: { categorie: 4, service: 1 }
|
||||
infra-pki: { categorie: 4, service: 2 }
|
||||
infra-mail: { categorie: 4, service: 3 }
|
||||
|
|
|
|||
|
|
@ -1,14 +1,6 @@
|
|||
---
|
||||
serveurs:
|
||||
infra-pki-01:
|
||||
fonction: infra-pki
|
||||
etat: planifie
|
||||
infra-edge-01:
|
||||
fonction: infra-edge
|
||||
etat: planifie
|
||||
infra-mail-01:
|
||||
fonction: infra-mail
|
||||
etat: planifie
|
||||
infra-dns-01:
|
||||
fonction: infra-dns
|
||||
etat: planifie
|
||||
infra-pki-01: { fonction: infra-pki, etat: planifie, disque: 32G, integrations: [client_backup] }
|
||||
infra-edge-01: { fonction: infra-edge, etat: planifie, integrations: [client_pki] }
|
||||
infra-mail-01: { fonction: infra-mail, etat: planifie, integrations: [client_pki, client_backup] }
|
||||
infra-dns-01: { fonction: infra-dns, etat: planifie, disque: 40G, integrations: [client_pki] }
|
||||
|
|
|
|||
Loading…
Reference in a new issue