Skip to content

Formation OpenStack 2025.2 - Infrastructure HA

Objectif de la formation

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

Phases de formation

Phase Titre Durée estimée
0 Prérequis et préparation 1 semaine
1 Fondamentaux OpenStack 1 semaine
2 Lab Setup Hetzner 3-4 jours
3 Kolla-Ansible Deployment 1 semaine
4 Stockage Ceph 1 semaine
5 Haute Disponibilité 4-5 jours
6 Infrastructure as Code 1 semaine
7 Kubernetes Integration 1 semaine
8 Monitoring & Logging 4-5 jours
9 Sécurité & Compliance 4-5 jours
10 Opérations & Maintenance 1 semaine

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