Phase D — Vault HA & Consul¶
La phase D est le socle de NEBULA. Elle pose les fondations pour le secret management, le service discovery et le pipeline CI/CD.
Prerequis
Upgrade RAM 64 Go → 128 Go requis avant de demarrer cette phase.
D0 — VLAN 15 (Ops)¶
VLAN dedie et isole pour Jenkins. Surface d'attaque reduite : Jenkins ne voit que les ports necessaires des autres VLANs.
D1 — Vault HA (Raft 3 noeuds)¶
graph LR
V1[vault-01<br/>Leader + Transit] <--> V2[vault-02<br/>Follower + Consul]
V1 <--> V3[vault-03<br/>Follower + Consul]
V2 <--> V3
| Composant | Detail |
|---|---|
| Stockage | Raft integre (3 noeuds, quorum 2/3) |
| Unseal | vault-01 : Shamir (3/5 cles). vault-02/03 : Transit auto via vault-01 |
| PKI | CA root 10 ans + Intermediate 3 ans + certificats services 90 jours |
| SSH Engine | Certificats ephemeres 2-5 min (Phase L3) |
| Failover | Automatique — election Raft < 10 secondes |
D2 — Consul HA¶
Service mesh et DNS interne. Chaque service enregistre dans Consul et devient accessible via service.service.nebula.
- 3 noeuds serveur (nebula-consul + vault-02 + vault-03)
- Health checks automatiques (interval 10s)
- Pi-hole forwarde
.service.nebulavers Consul DNS
D3 — Minio + Terraform¶
- Minio : stockage objet pour Terraform state, SBOM, logs, traces
- Terraform : import des 13 VMs existantes, module proxmox-vm reutilisable
- Objectif :
terraform plan= zero diff apres import
D4 — Jenkins¶
Pipeline CI/CD en 11 stages :
graph LR
A[Checkout] --> B[Trivy scan]
B --> C[Sentinel check]
C --> D[Snapshot PVE]
D --> E[Terraform plan]
E --> F[Approval]
F --> G[Terraform apply]
G --> H[Ansible config]
H --> I[Cosign + SBOM]
I --> J[Smoke tests]
J --> K{OK ?}
K -->|Oui| L[Deploy OK + ntfy]
K -->|Non| M[Rollback auto + IRIS]