|
|
1 week ago | |
|---|---|---|
| terraform | 1 week ago | |
| README.md | 1 week ago | |
| intro-terraform.pdf | 1 week ago | |
| setup-env.sh | 1 week ago | |
README.md
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
- Cloner le répertoire https://gitea.master-oivm.fr/UPEC/Cloud_computing.git $ git clone https://gitea.master-oivm.fr/UPEC/Cloud_computing.git
- Copier vos fichiers nom_prenom.yaml et nom_prenom.ovpn à la racine du projet et les renommer clouds.yaml et lab.ovpn respectivement.
- Compléter le champ projet_name dans votre fichier clouds.yaml.
- 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
- Connecter le tunnel OVPN pour accéder au lab dans une fenetre independantes que vous ne fermerez pas: (.venv)$ sudo openvpn lab.ovpn
- 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.
- 🚀 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 |