You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Thierry 0317a3ff77 change typo 1 week ago
terraform Mise en ligne TPs 1 week ago
README.md change typo 1 week ago
intro-terraform.pdf Mise en ligne TPs 1 week ago
setup-env.sh Add swift & barbican 1 week ago

README.md

Pré-liminaires :

Le cloud computing ou « informatique en nuage » est un « mode de traitement des données dun client, dont lexploitation seffectue par linternet, 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 dune solution simple en suivant les bonnes pratiques pour linfrastructure et la gestion de configuration. Configuration de lenvironnement

  1. Cloner le répertoire https://gitea.master-oivm.fr/UPEC/Cloud_computing.git $ git clone https://gitea.master-oivm.fr/UPEC/Cloud_computing.git
  2. Copier vos fichiers nom_prenom.yaml et nom_prenom.ovpn à 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 independantes 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