From 811789b2c15778626e752d7492b5c2fb5306bb6e Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 25 Nov 2025 21:28:13 +0100 Subject: [PATCH] Mise en ligne TPs --- README.md | 118 ++++++++++++++++++++++++++++++++++++++++++ intro-terraform.pdf | Bin 0 -> 100428 bytes setup-env.sh | 107 ++++++++++++++++++++++++++++++++++++++ terraform/main.tf | 4 ++ terraform/versions.tf | 10 ++++ 5 files changed, 239 insertions(+) create mode 100644 README.md create mode 100644 intro-terraform.pdf create mode 100644 setup-env.sh create mode 100644 terraform/main.tf create mode 100644 terraform/versions.tf diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e44628 --- /dev/null +++ b/README.md @@ -0,0 +1,118 @@ +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/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 | + diff --git a/intro-terraform.pdf b/intro-terraform.pdf new file mode 100644 index 0000000000000000000000000000000000000000..906ab0cc4aca938e27b53dac9ced90b652bf121f GIT binary patch literal 100428 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 I(!$990Uh4*V*mgE literal 0 HcmV?d00001 diff --git a/setup-env.sh b/setup-env.sh new file mode 100644 index 0000000..5452d0b --- /dev/null +++ b/setup-env.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +OS_PUBLIC_ENDPOINT_FQDN="horizon.master-oivm.fr" +OS_PUBLIC_ENDPOINT_IPV4="10.10.0.2" + +[ -n "$DEBUG" ] && set -e +#exec 3>&1 &>/dev/null + +VENV="${1:-.venv}" +ACTIVATE="$VENV/bin/activate" +if grep -qEi 'debian|ubuntu|mint' /etc/*release; then + PKGMANAGER="apt" + PKGMANAGER_CACHE="apt update" +elif grep -qEi 'fedora|centos|redhat' /etc/*release; then + PKGMANAGER="yum" + PKGMANAGER_CACHE="yum makecache" +else + echo "OS is not supported." + exit +fi + +enter_venv () { + local VENV=${1:-".venv"} + pkg_install python3 + pkg_install build-essential + pkg_install libssl-dev + pkg_install libffi-dev + pkg_install python3-dev + [ $PKGMANAGER == "apt" ] && pkg_install python3-venv + python3 -m venv "$VENV" || exit + source "$VENV/bin/activate" +} + +pkg_exist () { + $PKGMANAGER list --installed 2>/dev/null | grep -qi "^$1" || command -v "$1" &>/dev/null +} + +pkg_install () { + for pkg in "$@"; do + if ! pkg_exist "$pkg"; then + if [ "$EUID" -ne 0 ]; then + echo "$pkg needs to be installed" + echo "Please run as root" + exit + fi + $PKGMANAGER_CACHE &>/dev/null + $PKGMANAGER -y install "$pkg" &>/dev/null && echo "[OK] $pkg" || echo "[Error] $pkg" + fi + done +} + +install_deps () { + local REQUIREMENTS=$(mktemp) +cat << EOF > "$REQUIREMENTS" +pip +setuptools +wheel +python-openstackclient +EOF + pip install --upgrade -r "$REQUIREMENTS" + rm -f "$REQUIREMENTS" + + local BIN=$(echo ${PATH%%:*}) + mkdir -p "$BIN" + + pkg_install curl unzip wget openvpn + + if ! pkg_exist terraform; then + local TEMPFILE=$(mktemp) + curl -Ls https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_linux_amd64.zip \ + -o "$TEMPFILE" + unzip "$TEMPFILE" -d "$BIN" + chmod +x "$BIN/terraform" + rm -f "$TEMPFILE" + else + echo "[Ok] $(which terraform)" + fi + + +} + +enter_venv "$VENV" +install_deps + +# UPEC extra config for debian +for rc in "export OS_CLOUD=openstack" \ + "export https_proxy=" \ + "export HTTPS_PROXY=" \ + "export HTTP_PROXY=" \ + "export all_proxy=" \ + "export ALL_PROXY=" \ + "export no_proxy=" \ + "export NO_PROXY=" \ + "export http_proxy=" +do + if ! grep -q "$rc" "$VENV/bin/activate"; then + echo "$rc" >> "$VENV/bin/activate" + fi +done + +if ! grep -q "$OS_PUBLIC_ENDPOINT_FQDN" /etc/hosts; then + echo "$OS_PUBLIC_ENDPOINT_IPV4 $OS_PUBLIC_ENDPOINT_FQDN" >> /etc/hosts +fi + +echo "######################################################" +echo "Enter you lab environment with the following command :" +echo "$ source $VENV/bin/activate" diff --git a/terraform/main.tf b/terraform/main.tf new file mode 100644 index 0000000..969086d --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,4 @@ +provider "openstack" { + cloud = "openstack" + use_octavia = true +} \ No newline at end of file diff --git a/terraform/versions.tf b/terraform/versions.tf new file mode 100644 index 0000000..4f9ce28 --- /dev/null +++ b/terraform/versions.tf @@ -0,0 +1,10 @@ +# Define required providers +terraform { +required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "~> 1.53.0" + } + } +}