Catalogue : modeles prets (socle, forge, identite, observabilite, integral)
Cinq modeles d'ecosystemes prets a deployer, en plus de presence-web, generes par un script pilote par spec : - socle (4 VM) : DNS/PKI/edge/mail ; - forge (6) : socle + Forgejo + PG ; - identite (6) : socle + LDAP + Keycloak + PG ; - observabilite (7) : socle + Prometheus/Loki/Grafana + Icinga ; - integral (11) : tous les services implementes. Chacun valide par generation : ecosysteme distinct, zero fuite Chezlepro, verificateurs OK. collaboration (Nextcloud/Collabora) reste a construire. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
5bbbdae4ed
commit
603d2f18e1
37 changed files with 656 additions and 6 deletions
|
|
@ -14,7 +14,7 @@
|
|||
- **Découpage moteur/instance — Phase 1 : délier les rôles du domaine Chezlepro.** Introduction d'une variable d'identité d'instance **`domaine_interne`** (dans `inventories/*/group_vars/all.yml`). Les 13 rôles qui codaient `chezlepro.internal` en dur (zones DNS, FQDN, relais SMTP, AC, etc.) utilisent désormais `{{ domaine_interne }}` ; le `base_dn` LDAP et le domaine court sont **dérivés** (`dc={{ domaine_interne.split('.') | join(',dc=') }}` → `dc=chezlepro,dc=internal`, ou `dc=acme,dc=local` pour un autre loup). Comportement **identique** pour Chezlepro (qui pose `domaine_interne: chezlepro.internal`), mais le moteur devient générique — première brique pour partager l'outil à la meute (`docs/positionnement.md`). Ajout d'`exemples/instance.exemple.yml`. Non destructif : diff de génération vide, `ansible-lint` 0 échec. *(La marque `chezlepro` sur les noms de fichiers gérés — `99-chezlepro.conf`, `chezlepro_filter` — sera neutralisée en Phase 1b ; sortie du plan en Phase 2 ; deux dépôts en Phase 3.)*
|
||||
|
||||
### Ajouté
|
||||
- **Catalogue de modèles d'écosystèmes prêts à déployer (`exemples/modeles/`).** Un hébergeur copie le modèle qui colle à son offre, le renseigne à ses couleurs (ou celles de son client) et instancie — plus besoin de démonstrateur. Structure **socle + modules + presets** : un socle souverain (DNS interne, AC/PKI, edge TLS, relais courriel) + des modules (web, identité, forge, observabilité, collaboration). Premier modèle livré et validé : **`presence-web`** (socle + web frontal/dorsal + données PostgreSQL/Redis, 7 VM) — la génération produit un écosystème complet et distinct (IPs `10.10.x`, **zéro fuite Chezlepro**). `.ansible-lint` exclut `exemples/`. Remplace l'instance d'essai jetable.
|
||||
- **Catalogue de modèles d'écosystèmes prêts à déployer (`exemples/modeles/`).** Un hébergeur copie le modèle qui colle à son offre, le renseigne à ses couleurs (ou celles de son client) et instancie — plus besoin de démonstrateur. Structure **socle + modules + presets** : un socle souverain (DNS interne, AC/PKI, edge TLS, relais courriel) + des modules (web, identité, forge, observabilité, collaboration). Modèles livrés et validés (chacun génère un écosystème distinct, **zéro fuite Chezlepro**, IPs `10.10.x`) : **`socle`** (4 VM), **`presence-web`** (7), **`forge`** (6), **`identite`** (LDAP+Keycloak, 6), **`observabilite`** (Prometheus/Loki/Grafana+Icinga, 7), **`integral`** (11). **`collaboration`** (Nextcloud/Collabora) reste à construire (rôles non implémentés). `.ansible-lint` exclut `exemples/`. Remplace l'instance d'essai jetable.
|
||||
- **`docs/positionnement.md` — décision de positionnement vs l'existant.** Acte que le cœur de Set-OPS (plan déclaratif → génération d'inventaire) recoupe **NetBox/Nautobot** (+ `nb_inventory`), le GUI d'exécution recoupe **AWX/Semaphore**, le « la définition instancie la flotte » recoupe **NixOS+Colmena / Terraform**, et le modèle application-pivot recoupe **Backstage**. Décision en vigueur : on **garde** le plan de contrôle maison (souverain, bien dimensionné pour ~13 VM) mais on **gèle son périmètre** ; seuils explicites d'adoption de l'outil mûr (RBAC/audit → AWX ; IPAM/source de vérité partagée → NetBox). Règle ancrée dans `AGENTS.md`.
|
||||
- **Documentation — passe complète (le dépôt « dit ce qu'il fait »).** Nouveau guide central **`docs/plan-et-generation.md`** : le modèle (entités + liens), les registres et leurs schémas, la référence des commandes `make`/CLI et des vues GUI, le flux « éditer le plan → `instancier` → appliquer », les garde-fous. `AGENTS.md` gagne la section « Le plan et la génération de l'inventaire » (règle d'or : `hosts.yml` est généré, ne pas l'éditer). `README.md` : section « Le plan : on édite, l'inventaire se génère » + remplacement du flux legacy `hote-planifier`/`ajouter` par le flux par le plan. Rafraîchissement de `docs/architecture-set-ops.md` (entités du plan), `docs/nomenclature-vm.md` et `docs/catalogue-services.md` ; correction de la terminologie **domaine → fonction** dans la prose (collision avec le DNS levée jusque dans la doc).
|
||||
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ courriel) et ajoute des **modules** selon l'offre.
|
|||
|
||||
| Modèle | = socle + | État |
|
||||
| --- | --- | --- |
|
||||
| `socle` | (rien) | à venir |
|
||||
| `socle` | (rien) | ✅ |
|
||||
| **`presence-web`** | web (frontal+dorsal) + données (PostgreSQL/Redis) | ✅ |
|
||||
| `forge` | Forgejo + données | à venir |
|
||||
| `identite` | LDAP + Keycloak (SSO) | à venir |
|
||||
| `observabilite` | Prometheus/Loki/Grafana + Icinga | à venir |
|
||||
| `forge` | Forgejo + données | ✅ |
|
||||
| `identite` | LDAP + Keycloak (SSO) | ✅ |
|
||||
| `observabilite` | Prometheus/Loki/Grafana + Icinga | ✅ |
|
||||
| `collaboration` | Nextcloud + Collabora | rôles à construire |
|
||||
| `integral` | tout | à venir |
|
||||
| `integral` | tout | ✅ |
|
||||
|
|
|
|||
5
exemples/modeles/forge/README.md
Normal file
5
exemples/modeles/forge/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Modele : forge
|
||||
|
||||
Forge Git souveraine : socle + Forgejo + PostgreSQL.
|
||||
|
||||
6 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
24
exemples/modeles/forge/plan/applications.yml
Normal file
24
exemples/modeles/forge/plan/applications.yml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_sendmail
|
||||
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
|
||||
16
exemples/modeles/forge/plan/bases-donnees.yml
Normal file
16
exemples/modeles/forge/plan/bases-donnees.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
bases_donnees:
|
||||
forgejo:
|
||||
serveur: pg-principal
|
||||
base: forgejo
|
||||
proprietaire: forgejo
|
||||
secret: vault_bd_forgejo
|
||||
consommateur: serveur_forgejo
|
||||
portee: groupe
|
||||
usage: principale
|
||||
7
exemples/modeles/forge/plan/domaines.yml
Normal file
7
exemples/modeles/forge/plan/domaines.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
42
exemples/modeles/forge/plan/nomenclature.yml
Normal file
42
exemples/modeles/forge/plan/nomenclature.yml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
cidr_hote: 24
|
||||
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
|
||||
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
|
||||
20
exemples/modeles/forge/plan/serveurs.yml
Normal file
20
exemples/modeles/forge/plan/serveurs.yml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
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
|
||||
5
exemples/modeles/identite/README.md
Normal file
5
exemples/modeles/identite/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Modele : identite
|
||||
|
||||
Identite centralisee : socle + LDAP + Keycloak (SSO) + PostgreSQL.
|
||||
|
||||
6 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
27
exemples/modeles/identite/plan/applications.yml
Normal file
27
exemples/modeles/identite/plan/applications.yml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_sendmail
|
||||
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
|
||||
keycloak:
|
||||
groupe: serveur_keycloak
|
||||
hote: idm-01
|
||||
port: 8080
|
||||
expose:
|
||||
- auth.exemple.ca
|
||||
16
exemples/modeles/identite/plan/bases-donnees.yml
Normal file
16
exemples/modeles/identite/plan/bases-donnees.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
bases_donnees:
|
||||
keycloak:
|
||||
serveur: pg-principal
|
||||
base: keycloak
|
||||
proprietaire: keycloak
|
||||
secret: vault_bd_keycloak
|
||||
consommateur: serveur_keycloak
|
||||
portee: groupe
|
||||
usage: principale
|
||||
7
exemples/modeles/identite/plan/domaines.yml
Normal file
7
exemples/modeles/identite/plan/domaines.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
42
exemples/modeles/identite/plan/nomenclature.yml
Normal file
42
exemples/modeles/identite/plan/nomenclature.yml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
cidr_hote: 24
|
||||
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
|
||||
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
|
||||
20
exemples/modeles/identite/plan/serveurs.yml
Normal file
20
exemples/modeles/identite/plan/serveurs.yml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
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
|
||||
5
exemples/modeles/integral/README.md
Normal file
5
exemples/modeles/integral/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Modele : integral
|
||||
|
||||
Ecosysteme integral (services implementes) : socle + donnees + identite + forge + observabilite + web.
|
||||
|
||||
11 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
57
exemples/modeles/integral/plan/applications.yml
Normal file
57
exemples/modeles/integral/plan/applications.yml
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_sendmail
|
||||
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
|
||||
openldap:
|
||||
groupe: serveur_openldap
|
||||
hote: idm-01
|
||||
keycloak:
|
||||
groupe: serveur_keycloak
|
||||
hote: idm-01
|
||||
port: 8080
|
||||
expose:
|
||||
- auth.exemple.ca
|
||||
forgejo:
|
||||
groupe: serveur_forgejo
|
||||
hote: forge-01
|
||||
port: 3000
|
||||
expose:
|
||||
- forge.exemple.ca
|
||||
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
|
||||
web_frontal:
|
||||
groupe: serveur_web_frontal
|
||||
hote: web-frontal-01
|
||||
web_dorsal:
|
||||
groupe: serveur_web_dorsal
|
||||
hote: web-dorsal-01
|
||||
32
exemples/modeles/integral/plan/bases-donnees.yml
Normal file
32
exemples/modeles/integral/plan/bases-donnees.yml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
bases_donnees:
|
||||
keycloak:
|
||||
serveur: pg-principal
|
||||
base: keycloak
|
||||
proprietaire: keycloak
|
||||
secret: vault_bd_keycloak
|
||||
consommateur: serveur_keycloak
|
||||
portee: groupe
|
||||
usage: principale
|
||||
forgejo:
|
||||
serveur: pg-principal
|
||||
base: forgejo
|
||||
proprietaire: forgejo
|
||||
secret: vault_bd_forgejo
|
||||
consommateur: serveur_forgejo
|
||||
portee: groupe
|
||||
usage: principale
|
||||
icingadb:
|
||||
serveur: pg-principal
|
||||
base: icingadb
|
||||
proprietaire: icingadb
|
||||
secret: vault_bd_icingadb
|
||||
consommateur: serveur_icinga
|
||||
portee: groupe
|
||||
usage: principale
|
||||
7
exemples/modeles/integral/plan/domaines.yml
Normal file
7
exemples/modeles/integral/plan/domaines.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
67
exemples/modeles/integral/plan/nomenclature.yml
Normal file
67
exemples/modeles/integral/plan/nomenclature.yml
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
cidr_hote: 24
|
||||
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
|
||||
4:
|
||||
libelle: Observabilite
|
||||
vlan: 14
|
||||
sous_reseau: 10.10.14.0/24
|
||||
passerelle: 10.10.14.1
|
||||
5:
|
||||
libelle: Applications
|
||||
vlan: 15
|
||||
sous_reseau: 10.10.15.0/24
|
||||
passerelle: 10.10.15.1
|
||||
fonctions:
|
||||
data:
|
||||
categorie: 3
|
||||
service: 1
|
||||
forge:
|
||||
categorie: 5
|
||||
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
|
||||
mon:
|
||||
categorie: 4
|
||||
service: 4
|
||||
obs:
|
||||
categorie: 4
|
||||
service: 1
|
||||
web-dorsal:
|
||||
categorie: 5
|
||||
service: 4
|
||||
web-frontal:
|
||||
categorie: 5
|
||||
service: 3
|
||||
35
exemples/modeles/integral/plan/serveurs.yml
Normal file
35
exemples/modeles/integral/plan/serveurs.yml
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
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
|
||||
forge-01:
|
||||
fonction: forge
|
||||
etat: planifie
|
||||
obs-01:
|
||||
fonction: obs
|
||||
etat: planifie
|
||||
mon-01:
|
||||
fonction: mon
|
||||
etat: planifie
|
||||
web-frontal-01:
|
||||
fonction: web-frontal
|
||||
etat: planifie
|
||||
web-dorsal-01:
|
||||
fonction: web-dorsal
|
||||
etat: planifie
|
||||
5
exemples/modeles/observabilite/README.md
Normal file
5
exemples/modeles/observabilite/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Modele : observabilite
|
||||
|
||||
Observabilite & supervision : socle + Prometheus/Loki/Grafana + Icinga.
|
||||
|
||||
7 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
36
exemples/modeles/observabilite/plan/applications.yml
Normal file
36
exemples/modeles/observabilite/plan/applications.yml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_sendmail
|
||||
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
|
||||
16
exemples/modeles/observabilite/plan/bases-donnees.yml
Normal file
16
exemples/modeles/observabilite/plan/bases-donnees.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
serveurs_bd:
|
||||
pg-principal:
|
||||
type: postgres
|
||||
hote: 10.10.13.11
|
||||
port: 5432
|
||||
groupe: serveur_postgresql
|
||||
bases_donnees:
|
||||
icingadb:
|
||||
serveur: pg-principal
|
||||
base: icingadb
|
||||
proprietaire: icingadb
|
||||
secret: vault_bd_icingadb
|
||||
consommateur: serveur_icinga
|
||||
portee: groupe
|
||||
usage: principale
|
||||
7
exemples/modeles/observabilite/plan/domaines.yml
Normal file
7
exemples/modeles/observabilite/plan/domaines.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
45
exemples/modeles/observabilite/plan/nomenclature.yml
Normal file
45
exemples/modeles/observabilite/plan/nomenclature.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
cidr_hote: 24
|
||||
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
|
||||
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
|
||||
23
exemples/modeles/observabilite/plan/serveurs.yml
Normal file
23
exemples/modeles/observabilite/plan/serveurs.yml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
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
|
||||
5
exemples/modeles/socle/README.md
Normal file
5
exemples/modeles/socle/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Modele : socle
|
||||
|
||||
Socle souverain : DNS interne, AC/PKI, edge TLS, relais courriel.
|
||||
|
||||
4 VM. Renseignez `domaine_interne`, `plan/domaines.yml` et `plan/nomenclature.yml` (supernet), puis generez (voir `exemples/modeles/README.md`).
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
domaine_interne: "exemple.internal" # <- VOTRE domaine DNS interne
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
14
exemples/modeles/socle/plan/applications.yml
Normal file
14
exemples/modeles/socle/plan/applications.yml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
applications:
|
||||
step_ca:
|
||||
groupe: serveur_step_ca
|
||||
hote: infra-pki-01
|
||||
nginx:
|
||||
groupe: serveur_nginx
|
||||
hote: infra-edge-01
|
||||
sendmail:
|
||||
groupe: serveur_sendmail
|
||||
hote: infra-mail-01
|
||||
powerdns:
|
||||
groupe: serveur_powerdns
|
||||
hote: infra-dns-01
|
||||
3
exemples/modeles/socle/plan/bases-donnees.yml
Normal file
3
exemples/modeles/socle/plan/bases-donnees.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
serveurs_bd: {}
|
||||
bases_donnees: {}
|
||||
7
exemples/modeles/socle/plan/domaines.yml
Normal file
7
exemples/modeles/socle/plan/domaines.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
domaines_publics:
|
||||
exemple.ca:
|
||||
autorite: primaire-cache
|
||||
edge: serveur_nginx
|
||||
secondaires: []
|
||||
dnssec: false
|
||||
26
exemples/modeles/socle/plan/nomenclature.yml
Normal file
26
exemples/modeles/socle/plan/nomenclature.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
supernet: 10.10.0.0/16
|
||||
cidr_hote: 24
|
||||
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
|
||||
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
|
||||
14
exemples/modeles/socle/plan/serveurs.yml
Normal file
14
exemples/modeles/socle/plan/serveurs.yml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
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
|
||||
Reference in a new issue