|
|
Pré-liminaires :
|
|
|
|
|
|
Le cloud computing ou « informatique en nuage » est un « mode de traitement des données
|
|
|
d’un client, dont l’exploitation s’effectue par l’internet, sous la forme de services... »
|
|
|
JORF n°0129 du 6 juin 2010
|
|
|
Vous utiliserez les services cloud usuels présentés en CM sur OpenStack pour
|
|
|
orchestrer le déploiement d’une solution simple en suivant les bonnes pratiques
|
|
|
pour l’infrastructure et la gestion de configuration.
|
|
|
|
|
|
Configuration de l’environnement
|
|
|
|
|
|
1. Cloner le répertoire https://gitea.master-oivm.fr/UPEC/openstack.git
|
|
|
$ git clone https://gitea.master-oivm.fr/UPEC/openstack.git
|
|
|
2. Copier vos fichiers nom_prenom.yaml et nom_prenom.ovpn du repo git credential à la racine du projet et les
|
|
|
renommer clouds.yaml et lab.ovpn respectivement.
|
|
|
3. Compléter le champ projet_name dans votre fichier clouds.yaml.
|
|
|
4. Créer un environnement virtuel et y installer les dépendances :
|
|
|
sudo nécessaire pour l'installation du client openvpn
|
|
|
$ sudo ./setup-env.sh
|
|
|
active l'environnement virtuel
|
|
|
$ source .venv/bin/activate
|
|
|
|
|
|
5. Connecter le tunnel OVPN pour accéder au lab dans une fenetre independante que vous ne fermerez pas:
|
|
|
(.venv)$ sudo openvpn lab.ovpn
|
|
|
|
|
|
6. Vérifications
|
|
|
Accès via la console web : http://horizon.master-oivm.fr
|
|
|
Test via la CLI :
|
|
|
(.venv)$ openstack project list
|
|
|
|
|
|
|
|
|
#Travaux détaillée de cinq travaux pratiques de 5 heures chacun.
|
|
|
1. 🚀 Découverte de l'IHM Horizon et déploiement IaaS de base (5h)
|
|
|
Objectif : Comprendre l'architecture de base, le concept de Projet/Tenant, et maîtriser le déploiement manuel via l'interface graphique (Horizon).
|
|
|
Pour commencer :
|
|
|
Installer l'environnement :
|
|
|
pour linux : utiliser le script fourni
|
|
|
pour windows : faite vos recherches sur internet pour installer les outils nécessaire.
|
|
|
|
|
|
TP n°1 : 🚀 Découverte de l'IHM Horizon et déploiement IaaS de base
|
|
|
|
|
|
| Durée | Activité | Services principaux |
|
|
|
|---|---|---|
|
|
|
| 1h | Prise en main et Sécurité | Keystone, Horizon, Nova |
|
|
|
| | - Connexion à l'IHM, exploration des tableaux de bord. | |
|
|
|
| | - Gestion des clés SSH et import d'une paire de clés. | |
|
|
|
| | - Création d'un Groupe de Sécurité personnalisé (ports 22/SSH, 80/HTTP, 443/HTTPS, ICMP). | |
|
|
|
| 3h | Déploiement d'une Instance Web | Neutron, Nova, Glance |
|
|
|
| | - Création d'un réseau privé et d'un sous-réseau. | |
|
|
|
| | - Création d'un routeur et connexion au réseau public (Floating IP pool). | |
|
|
|
| | - Lancement d'une instance (VM) : sélection d'une image (Glance) et d'un flavor (Nova). | |
|
|
|
| | - Association d'une IP flottante et connexion SSH. | |
|
|
|
| 1h | Gestion du Stockage Bloc (Cinder) | Cinder |
|
|
|
| | - Création d'un Volume Cinder (ex: 10 Go). | |
|
|
|
| | - Attachement du volume à l'instance. | |
|
|
|
| | - Formatage, montage du volume sur le système d'exploitation de la VM. | |
|
|
|
|
|
|
TP n°2. 💻 Maîtrise de l'OpenStack CLI
|
|
|
Objectif : Répéter les actions du TP 1 exclusivement en ligne de commande avec le client openstack, et préparer le terrain pour l'IaC.
|
|
|
|
|
|
| Durée | Activité | Outils / Services |
|
|
|
|---|---|---|
|
|
|
| 1h | Configuration CLI | openstack client |
|
|
|
| | - Installation et configuration de python-openstackclient. | |
|
|
|
| | - Téléchargement et sourcing du fichier openrc pour l'authentification. | |
|
|
|
| | - Utilisation des commandes openstack help et openstack service list. | |
|
|
|
| 3h | Déploiement en Ligne de Commande | Nova, Neutron, Glance |
|
|
|
| | - Recréer un environnement complet (réseau, groupe de sécurité, clé SSH, routeur) en utilisant les commandes openstack network create, openstack security group create, etc. | |
|
|
|
| | - Lancement d'une instance complète via openstack server create. | |
|
|
|
| | - Gestion de l'état (stop/start/resize) et suppression des ressources par CLI. | |
|
|
|
| 1h | Introduction à Barbican (CLI) | Barbican |
|
|
|
| | - Stockage et récupération d'un secret (ex: un mot de passe) dans Barbican via la CLI. | |
|
|
|
| | - openstack secret store et openstack secret get. | |
|
|
|
|
|
|
TP n°3. 📄 IaC avec Terraform : Architecture 2-Tier
|
|
|
Objectif : Découvrir l'approche déclarative de l'IaC avec Terraform et déployer une architecture multi-composants.
|
|
|
| Durée | Activité | Outils / Services |
|
|
|
|---|---|---|
|
|
|
| 1h | Configuration Terraform | Terraform, OpenStack Provider |
|
|
|
| | - Installation de Terraform et configuration du Provider OpenStack (utilisation du fichier clouds.yaml). | |
|
|
|
| | - Cycle de vie Terraform : init, plan, apply, destroy. | |
|
|
|
| 3h | Architecture 2-Tier (Web + BDD) | Nova, Neutron, Terraform |
|
|
|
| | - Écriture du code Terraform (fichiers .tf) pour : | |
|
|
|
| | - Déployer un réseau privé et deux groupes de sécurité différents. | |
|
|
|
| | - Déployer deux instances : un serveur Web et un serveur BDD. | |
|
|
|
| | - Utilisation des user_data pour installer automatiquement un serveur web (ex: Nginx) sur le serveur Web lors du déploiement. | |
|
|
|
| 1h | Gestion des dépendances et Output | Terraform |
|
|
|
| | - Utilisation des output pour afficher les adresses IP flottantes des serveurs. | |
|
|
|
| | - Test de la connectivité via l'IP flottante du serveur Web. | |
|
|
|
|
|
|
TP n°4. 🌐 IaC Avancé : Intégration DNS et Clés
|
|
|
Objectif : Maîtriser l'intégration de services avancés (Designate et Barbican) directement dans le code Terraform.
|
|
|
| Durée | Activité | Outils / Services |
|
|
|
|---|---|---|
|
|
|
| 2h | Gestion DNS avec Designate | Designate, Terraform |
|
|
|
| | - Introduction à Designate : rôle dans l'écosystème OpenStack. | |
|
|
|
| | - Création d'une Zone DNS privée ou publique (openstack_dns_zone_v2). | |
|
|
|
| | - Création d'un enregistrement A (openstack_dns_recordset_v2) pointant vers l'IP flottante du serveur Web déployé au TP n°3. | |
|
|
|
| | - Vérification de la résolution DNS (ex: dig ou nslookup). | |
|
|
|
| 2h | Utilisation sécurisée avec Barbican | Barbican, Terraform |
|
|
|
| | - Stockage d'une clé privée ou d'un certificat SSL dans Barbican (via Terraform : openstack_keymanager_secret_v1). | |
|
|
|
| | - Modification du template IaC pour récupérer la référence du secret. | |
|
|
|
| | - Démonstration Conceptuelle : Expliquer comment cette référence pourrait être utilisée par un outil d'orchestration (comme Ansible) ou un service (comme Octavia/Load Balancer) pour la gestion sécurisée des identifiants/clés. | |
|
|
|
| 1h | Gestion des Changements | Terraform |
|
|
|
| | - Modifier l'architecture (ex: changer le flavor du serveur BDD ou la taille du volume) et utiliser terraform plan pour visualiser l'impact. | |
|
|
|
| | - Appliquer les changements et vérifier la mise à jour sans interruption du service. | |
|
|
|
|
|
|
TP n°5. 💾 Stockage Objet, Automatisation et Test Final
|
|
|
Objectif : Découvrir le stockage objet (Swift) et consolider les acquis par l'automatisation et le test.
|
|
|
| Durée | Activité | Outils / Services |
|
|
|
|---|---|---|
|
|
|
| 2h | Swift : Le Stockage Objet | Swift, CLI, Horizon |
|
|
|
| | - Introduction au stockage objet (par opposition au stockage bloc). | |
|
|
|
| | - Création d'un Conteneur via l'IHM Horizon. | |
|
|
|
| | - Gestion du conteneur et téléversement/téléchargement d'objets via la CLI (openstack object store). | |
|
|
|
| | - Configuration des ACLs (Access Control Lists) pour rendre un objet public et le rendre accessible via son URL directe. | |
|
|
|
| 2h | Scripting d'Automatisation (Python/Bash) | CLI, Python, openstacksdk |
|
|
|
| | - Création d'un script Bash pour automatiser le déploiement d'une ressource simple (ex: créer un groupe de sécurité et une clé SSH en une commande). | |
|
|
|
| | - Alternative : Écriture d'un script Python utilisant openstacksdk pour lister l'état de l'infrastructure (serveurs, réseaux, conteneurs Swift). | |
|
|
|
| 1h | Travail Pratique Test (1h) | Tous les services |
|
|
|
|