0% ont trouvé ce document utile (0 vote)
2 vues22 pages

OpenStack Avec DevStack

Transféré par

kefi27533
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues22 pages

OpenStack Avec DevStack

Transféré par

kefi27533
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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.

Vous aimerez peut-être aussi