Maîtriser le déploiement et la maintenance d'un cluster OpenStack en haute disponibilité pour environnement de production critique (contexte gouvernemental).
Compétences visées
- Déployer OpenStack 2025.2 avec Kolla-Ansible
- Configurer un cluster Ceph intégré (Cinder, Glance, Nova)
- Mettre en place une architecture HA sans SPOF
- Provisionner l'infrastructure avec Terraform et Ansible
- Déployer Kubernetes via Magnum et sur VMs (K3s/RKE2)
- Monitorer avec Prometheus/Grafana
- Appliquer les normes de sécurité (hardening CIS, RBAC, audit)
- Gérer les upgrades SLURP et procédures PRA/PCA
Architecture cible
Niveau 1 - System Context (C4)
graph TB
subgraph Utilisateurs
admin[👤 Admin Infrastructure]
dev[👤 Développeur/DevOps]
user[👤 Utilisateur Final]
end
subgraph OpenStack Cloud
OS[☁️ OpenStack<br/>Nova, Neutron, Cinder, Glance]
end
subgraph Externes
cicd[🔄 GitLab CI/CD]
monitoring[📊 Prometheus/Grafana]
ldap[🔐 LDAP/AD]
end
ceph[(💾 Ceph Cluster)]
admin -->|Administre| OS
dev -->|Push IaC| cicd
cicd -->|Terraform| OS
user -->|Utilise VMs| OS
OS -->|RBD| ceph
OS -->|Métriques| monitoring
OS -->|Auth| ldap
Niveau 2 - Container (C4)
graph TB
subgraph HA["HA Layer"]
VIP[🎯 VIP<br/>10.0.0.10]
HAProxy[⚖️ HAProxy x3]
end
subgraph Control["Control Plane x3"]
Horizon[🖥️ Horizon]
Keystone[🔑 Keystone]
Nova[💻 Nova API]
Neutron[🌐 Neutron]
Glance[📀 Glance]
Cinder[💾 Cinder]
end
subgraph Data["Data Layer x3"]
Galera[(🗄️ MariaDB Galera)]
RabbitMQ[🐰 RabbitMQ]
Memcached[⚡ Memcached]
end
subgraph Compute["Compute x2"]
NovaCompute[💻 Nova Compute]
OVS[🔌 OVS Agent]
end
subgraph Ceph["Ceph Cluster"]
MON[👁️ MON x3]
OSD[(💿 OSD x3)]
MGR[📊 MGR x2]
end
User[👤 User] --> VIP
VIP --> HAProxy
HAProxy --> Keystone
HAProxy --> Nova
HAProxy --> Horizon
Nova --> Galera
Nova --> RabbitMQ
NovaCompute --> OSD
Cinder --> OSD
Glance --> OSD
Niveau 3 - Déploiement physique
graph TB
subgraph Hetzner["Hetzner AX102"]
subgraph Host["Ubuntu 24.04 Host"]
subgraph VMs["VMs KVM"]
C1[controller-1<br/>10.0.0.11]
C2[controller-2<br/>10.0.0.12]
C3[controller-3<br/>10.0.0.13]
CP1[compute-1<br/>10.0.0.21]
CP2[compute-2<br/>10.0.0.22]
Deploy[deploy<br/>10.0.0.5]
end
end
end
subgraph Networks["Réseaux"]
MGMT[Management<br/>10.0.0.0/24]
STORAGE[Storage<br/>10.0.1.0/24]
TENANT[Tenant VXLAN<br/>10.0.2.0/24]
EXT[External<br/>192.168.100.0/24]
end
C1 --- MGMT
C2 --- MGMT
C3 --- MGMT
C1 --- STORAGE
C2 --- STORAGE
C3 --- STORAGE
Diagramme de progression
flowchart TD
subgraph Phase0["Phase 0 - Prérequis"]
P0A[Linux avancé] --> P0B[Virtualisation KVM]
P0B --> P0C[Réseaux Linux]
P0C --> P0D[Conteneurs Docker]
end
subgraph Phase1["Phase 1 - Fondamentaux OpenStack"]
P1A[Architecture] --> P1B[Services Core]
P1B --> P1C[Keystone]
P1C --> P1D[Glance]
P1D --> P1E[Nova]
P1E --> P1F[Neutron]
P1F --> P1G[Cinder]
end
subgraph Phase2["Phase 2 - Lab Setup"]
P2A[Serveur Hetzner] --> P2B[VMs Controllers]
P2B --> P2C[Réseau Lab]
P2C --> P2D[Préparation Kolla]
end
subgraph Phase3["Phase 3 - Kolla-Ansible"]
P3A[Installation Kolla] --> P3B[globals.yml]
P3B --> P3C[Inventaire multinode]
P3C --> P3D[Déploiement]
P3D --> P3E[Validation]
end
subgraph Phase4["Phase 4 - Ceph"]
P4A[Architecture Ceph] --> P4B[Cephadm]
P4B --> P4C[Pools/CRUSHmap]
P4C --> P4D[Cinder]
P4D --> P4E[Glance]
P4E --> P4F[Nova ephemeral]
end
subgraph Phase5["Phase 5 - HA"]
P5A[HAProxy] --> P5B[Keepalived]
P5B --> P5C[MariaDB Galera]
P5C --> P5D[RabbitMQ]
P5D --> P5E[Tests failover]
end
subgraph Phase6["Phase 6 - IaC"]
P6A[Terraform provider] --> P6B[Modules réseau]
P6B --> P6C[Modules compute]
P6C --> P6D[Ansible post-deploy]
P6D --> P6E[CI/CD Pipelines]
end
subgraph Phase7["Phase 7 - Kubernetes"]
P7A[Magnum] --> P7B[Templates COE]
P7B --> P7C[Cluster K8s]
P7C --> P7D[K3s sur VMs]
P7D --> P7E[RKE2]
P7E --> P7F[Cinder CSI]
end
subgraph Phase8["Phase 8 - Monitoring"]
P8A[Prometheus] --> P8B[Exporters]
P8B --> P8C[Grafana]
P8C --> P8D[Alerting]
P8D --> P8E[Logging]
end
subgraph Phase9["Phase 9 - Sécurité"]
P9A[Hardening CIS] --> P9B[RBAC Keystone]
P9B --> P9C[TLS everywhere]
P9C --> P9D[Audit logging]
P9D --> P9E[Security scanning]
end
subgraph Phase10["Phase 10 - Opérations"]
P10A[Backups] --> P10B[Upgrades SLURP]
P10B --> P10C[PRA/PCA]
P10C --> P10D[Troubleshooting]
P10D --> P10E[Runbooks]
end
Phase0 --> Phase1
Phase1 --> Phase2
Phase2 --> Phase3
Phase3 --> Phase4
Phase4 --> Phase5
Phase5 --> Phase6
Phase6 --> Phase7
Phase7 --> Phase8
Phase8 --> Phase9
Phase9 --> Phase10
Ressources
Environnement de lab
| Ressource |
Spécification |
| Serveur |
Hetzner AX102 |
| CPU |
AMD EPYC 9454P (48C/96T) |
| RAM |
256 GB DDR5 ECC |
| Stockage |
2x 1.92TB NVMe |
| OS Host |
Ubuntu 24.04 LTS |
| Virtualisation |
KVM/libvirt |