RAPPORT
Déploiement d'une infrastructure Cloud Computing
OpenStack
Table des matières
1. Introduction
2. Architecture technique
3. Préparation des serveurs
4. Installation de DevStack
5. Vérification des services OpenStack
6. Création des ressources réseau et image
7. Déploiement d'une instance de test
8. Configuration du stockage bloc (Cinder)
9. Gestion des projets, utilisateurs et rôles
10. Sécurisation de l'infrastructure
11. Tests fonctionnels
12. Difficultés rencontrées et solutions
13. Conclusion et recommandations
1. Introduction
Ce rapport décrit l'installation et la configuration complète d'une infrastructure de Cloud Computing basée sur
OpenStack. L'objectif est de déployer une plateforme fonctionnelle avec les services essentiels :
Compute (Nova) — gestion des machines virtuelles
Réseau (Neutron avec OVN) — gestion du réseau virtuel
Stockage bloc (Cinder) — volumes persistants LVM
Image (Glance) — catalogue des images disque
Identité (Keystone) — authentification et autorisation
Tableau de bord Horizon — interface d'administration web
L'environnement cible est Ubuntu 24.04 LTS exécuté sur VMware Workstation 17, avec DevStack 2026.2
comme outil de déploiement. Les étapes suivent la documentation officielle d'OpenStack et incluent les bonnes
pratiques de sécurisation (pare-feu UFW, HTTPS, gestion des rôles Keystone).
2. Architecture technique
2.1 Infrastructure matérielle et logicielle
Composant Spécification
Hyperviseur hôte VMware Workstation 17 sur Windows 11
VM unique (all-in-one) 4 vCPU, 8 Go RAM, 80 Go disque
Système d'exploitation Ubuntu 24.04 LTS (Noble Numbat)
Adresse IP statique [Link]/24
Version DevStack 2026.2 (OpenStack 2026.2)
Services activés Nova, Neutron (OVN), Glance, Keystone, Cinder, Horizon, Placement
Type de virtualisation QEMU (libvirt, sans KVM matériel)
Backend stockage bloc Cinder avec LVM (lvmdriver-1)
2.2 Schéma fonctionnel
L'architecture repose sur un nœud unique « all-in-one » où tous les services OpenStack cohabitent sur la
même machine virtuelle VMware :
Chaque service communique via l'API REST, sécurisée par Keystone. Le réseau de données transite par OVN
(Open Virtual Network).
3. Préparation des serveurs
3.1 Mise à jour du système
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y git curl wget vim net-tools python3-pip
3.2 Configuration de l'adresse IP statique
Le fichier /etc/netplan/[Link] est configuré comme suit :
$ sudo nano /etc/netplan/[Link]
# Contenu du fichier :
network:
ethernets:
ens33:
dhcp4: no
addresses: [[Link]/24]
routes:
- to: default
via: [Link]
nameservers:
addresses: [[Link], [Link]]
$ sudo netplan apply
3.3 Création de l'utilisateur stack
$ sudo useradd -s /bin/bash -d /home/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack
4. Installation de DevStack
4.1 Clonage du dépôt
$ git clone [Link]
cd devstack
4.2 Fichier [Link]
Après plusieurs itérations de débogage (branches incorrectes, conflits OVN/q-agt, driver compute manquant),
la configuration finale retenue est :
$ nano ~/devstack/[Link]
# ── Identifiants ──────────────────────────────────
[[local|localrc]]
HOST_IP=[Link]
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
RECLONE=no
# ── Réseau OVN (mode modern DevStack 2026) ─────────
Q_AGENT=ovn
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovn,logger
Q_ML2_PLUGIN_TYPE_DRIVERS=local,flat,vlan,geneve
Q_ML2_TENANT_NETWORK_TYPE=geneve
# ── Services activés ────────────────────────────────
ENABLED_SERVICES=rabbit,mysql,key
ENABLED_SERVICES+=,n-api,n-cpu,n-cond,n-sch,n-novnc
ENABLED_SERVICES+=,placement-api,g-api
ENABLED_SERVICES+=,neutron,q-svc,q-dhcp,q-l3,q-meta
ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,horizon
ENABLED_SERVICES+=,ovn-northd,ovn-controller,q-ovn-metadata-agent
# ── Désactiver l'ancien agent incompatible OVN ──────
disable_service q-agt
# ── QEMU (sans accélération KVM matérielle) ─────────
LIBVIRT_TYPE=qemu
4.3 Lancement de l'installation
$ ./[Link] 2>&1 | tee ~/stack_output.log
L'installation dure entre 20 et 35 minutes. À la fin, le message suivant confirme le succès :
This is your host IP address: [Link]
Horizon is now available at [Link]
Keystone is serving at [Link]
The default users are: admin and demo | The password: admin
DevStack Version: 2026.2 | OS Version: Ubuntu 24.04 noble
5. Vérification des services OpenStack
$ source ~/devstack/openrc admin admin
5.1 Interface Horizon — Connexion
Le tableau de bord Horizon est accessible depuis le navigateur Windows via l'adresse
[Link] La connexion s'effectue avec les identifiants admin / admin.
📷 Page de connexion Horizon — [Link]
5.2 Vue d'ensemble et quotas
Après connexion, le tableau de bord affiche la synthèse des quotas du projet admin : 1 instance sur 10, 1
vCPU sur 20, 512 Mo de RAM sur 50 Go, et les ressources réseau disponibles.
📷 Tableau de bord Horizon — Vue d'ensemble avec synthèse des quotas Compute, Volume et Réseau
5.3 Vérification via CLI
$ openstack service list
$ openstack endpoint list
$ openstack hypervisor list
$ sudo systemctl list-units "devstack@*" --no-pager
Les services confirmés actifs : keystone, nova, neutron, glance, cinder, placement. L'hyperviseur QEMU est
listé avec l'état up.
6. Création des ressources réseau et image
6.1 Image Cirros disponible (Glance)
DevStack importe automatiquement l'image Cirros 0.6.3 lors de l'installation. Elle est visible dans Horizon sous
Projet → Compute → Images :
📷 Glance — Image cirros-0.6.3-x86_64-disk, format QCOW2, statut Actif, taille 20.69 Mo
6.2 Réseau public
Le réseau public ([Link]/24) est configuré comme réseau externe pour les IP flottantes. Il est visible dans
Projet → Réseau → Réseaux :
📷 Neutron — Réseau public avec sous-réseau public-subnet ([Link]/24) et ipv6-public-subnet, statut Actif
6.3 Création d'une paire de clés SSH
$ openstack keypair create --private-key ~/[Link] mykey
chmod 600 ~/[Link]
7. Déploiement d'une instance de test
7.1 Lancement de la VM
$ NET_ID=$(openstack network list | grep private | awk '{print $2}')
openstack server create --image cirros-0.6.3-x86_64-disk --flavor [Link] --network $NET_ID
--key-name mykey myvm-test
7.2 Instance Active dans Horizon
L'instance test-vm est en statut Active, gabarit [Link], image Cirros, IP interne [Link], en fonctionnement
depuis 37 minutes :
📷 Nova — Instance test-vm en statut Active, gabarit [Link], IP [Link], zone nova
7.3 Statistiques d'utilisation
Le panneau Admin → Vue d'ensemble affiche les métriques de consommation des ressources du projet admin
:
📷 Admin — Vue d'ensemble : 1 instance active, 512 Mo RAM, 0.64 vCPU-Hours, 1 Go disque
7.4 Attribution d'une IP flottante
$ FLOAT_IP=$(openstack floating ip create public -f value -c floating_ip_address)
openstack server add floating ip myvm-test $FLOAT_IP
8. Configuration du stockage bloc (Cinder)
8.1 Volume créé et disponible
Un volume nommé esen-volume de 1 Go est créé avec le backend LVM (lvmdriver-1). Il est visible dans Projet
→ Volumes :
📷 Cinder — Volume esen-volume, 1 Go, statut disponible(s), type lvmdriver-1, zone nova
8.2 Création et attachement via CLI
$ openstack volume create --size 1 --description 'Volume ESEN Demo' esen-volume
openstack volume list
openstack server add volume myvm-test esen-volume
9. Gestion des projets, utilisateurs et rôles
9.1 Création du projet
$ openstack project create --description "Mon projet Cloud ESEN" monprojet
id | a215e97a2d5e42d9a7713dda55d78e1e
name | monprojet
enabled | True
9.2 Création de l'utilisateur
$ openstack user create --project monprojet --password password123 monuser
name | monuser
default_project_id | a215e97a2d5e42d9a7713dda55d78e1e
enabled | True
9.3 Attribution du rôle member
$ openstack role add --project monprojet --user monuser member
$ openstack role assignment list --user monuser --names
Role | User | Project
member | monuser@Default | monprojet@Default
9.4 Récapitulatif
Ressource Nom Détail
Projet monprojet Description : Mon projet Cloud ESEN
Mot de passe : password123, projet par défaut :
Utilisateur monuser
monprojet
Rôle member Affecté à monuser sur monprojet
10. Sécurisation de l'infrastructure
10.1 Pare-feu UFW
$ sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP Horizon'
sudo ufw allow 443/tcp comment 'HTTPS Horizon'
sudo ufw allow 5000/tcp comment 'Keystone'
sudo ufw allow 9696/tcp comment 'Neutron'
sudo ufw enable
sudo ufw status verbose
10.2 Changement du mot de passe administrateur
$ openstack user set --password NouveauMotDePasseSecure admin
10.3 HTTPS pour Horizon
Génération du certificat auto-signé
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/[Link] \
-out /etc/ssl/certs/[Link] \
-subj "/C=TN/ST=Tunis/L=ESEN/O=MyCloud/CN=[Link]"
Activation Apache
$ sudo a2enmod ssl
sudo a2ensite [Link]
sudo a2dissite [Link]
sudo systemctl reload apache2
11. Tests fonctionnels
Test Commande / Action Résultat
Service Identity openstack token issue ✅ Token valide
Liste des images openstack image list ✅ Cirros 0.6.3 actif
Création VM openstack server create ✅ VM ACTIVE
IP flottante openstack floating ip create ✅ IP assignée
Attachement volume openstack server add volume ✅ Volume in-use
Connexion Horizon [Link] ✅ Page login affichée
Login admin Identifiants admin/admin ✅ Dashboard accessible
Login monuser Identifiants monuser/password123 ✅ Projet monprojet visible
Projet créé openstack project list ✅ monprojet présent
Rôle attribué openstack role assignment list ✅ member sur monprojet
12. Difficultés rencontrées et solutions
Problème rencontré Cause Solution appliquée
HTTP 503 – Keystone Services non persistants après
Relancer ./[Link] depuis ~/devstack
indisponible redémarrage VM
database_connection_url_ : Bug avec directives _BRANCH= Supprimer toutes les lignes _BRANCH= du
command not found incorrectes [Link]
fatal: couldn't find remote ref Branche inexistante pour Cinder sur Supprimer _BRANCH= et laisser DevStack
stable/2024.1 GitHub choisir
awk: cannot open Clone Cinder incomplet ou
sudo rm -rf /opt/stack/cinder + RECLONE=yes
/opt/stack/cinder/[Link] corrompu
IncompleteRead: connexion Réexécuter ./[Link] (reprend
Instabilité réseau pendant pip install
interrompue automatiquement)
q-agt must be disabled with Conflit entre ancien agent q-agt et
Q_AGENT=ovn + disable_service q-agt
OVN OVN
[Link] n-cpu absent des services activés Ajouter n-cpu dans ENABLED_SERVICES
Compute driver required, not Démarrage manuel sans
Utiliser [Link] au lieu du démarrage manuel
specified configuration complète
13. Conclusion et recommandations
13.1 Bilan
Le déploiement d'une infrastructure OpenStack complète avec DevStack 2026.2 sur Ubuntu 24.04 LTS a été
réalisé avec succès. Les captures d'écran présentées dans ce rapport attestent du bon fonctionnement de
l'ensemble des services :
Keystone : authentification fonctionnelle, projets et rôles configurés
Glance : image Cirros 0.6.3 active et accessible
Nova : instance test-vm en statut Active sur le gabarit [Link]
Neutron (OVN) : réseau public ([Link]/24) et privé opérationnels
Cinder : volume esen-volume de 1 Go créé avec backend LVM
Horizon : tableau de bord entièrement accessible et en français
13.2 Recommandations
Domaine Recommandation
Remplacer DevStack par Kolla-Ansible ou OpenStack Charms pour un déploiement
Production
multi-nœuds robuste.
Haute disponibilité Prévoir 3 nœuds contrôleurs minimum et un cluster MariaDB Galera.
HTTPS Remplacer le certificat auto-signé par Let's Encrypt en environnement exposé.
Sauvegardes Sauvegarder régulièrement /var/lib/mysql et les fichiers de configuration.
Surveillance Déployer Prometheus + Grafana pour le monitoring en temps réel.
Séparer les réseaux de gestion, données et stockage sur des interfaces physiques
Réseau
distinctes.