Etablissement d'enseignement supérieur privé iteam university
Département Technologies de l'Informatique
STAGE DE FIN D’ANNEE
Projet: Mise en place d’une infrastructure Automatisé
Réaliser par :
- Khaled AKROUT
- Oussama HAMMAMI
Année Universitaire 2023-2024
Introduction:
Dans le cadre de notre projet, nous avons entrepris de créer un environnement virtuel à l'aide de plusieurs outils,
notamment Vagrant, VirtualBox et Ansible.
Notre objectif est de mettre en place un environnement de développement et de test qui soit à la fois flexible,
facile à gérer et reproductible.
Pour ce projet, nous avons choisi d'utiliser les outils suivants :
Vagrant :
Vagrant est un outil open-source conçu pour simplifier la gestion des environnements de développement.
Il permet de définir et de configurer des machines virtuelles dans un fichier Vagrantfile,
ce qui facilite la création d'environnements reproductibles et portables.
VirtualBox :
Nous avons choisi VirtualBox comme fournisseur de machines virtuelles pour Vagrant en raison de sa simplicité
d'utilisation et de sa compatibilité avec Vagrant.
VirtualBox est un logiciel de virtualisation gratuit et open-source qui permet de créer et de gérer des machines virtuelles
sur un ordinateur hôte.
Ansible :
Ansible est un outil open-source de gestion de configuration et de déploiement qui permet d'automatiser les tâches
de configuration système. Nous avons choisi Ansible pour sa simplicité d'utilisation et sa flexibilité,
qui nous ont permis de définir des playbooks pour gérer la configuration de nos machines virtuelles.
Réalisation :
L’architecture de notre projet:
Vagrant up Création vm
Ordinateur Host
Node01
Controller Node02
Préparation fichier Vagrant:
Configuration de la boîte (box)
Configuration de la boîte de base à utiliser pour les machines virtuelles.
On utiliser la boîte "bento/ubuntu-22.04", qui est une image Ubuntu 22.04 prête à l'emploi.
Définition des machines
définition des machines virtuelles à créer.On a créer trois machines :
- un contrôleur (Controller) et
- deux nœuds (Node01 et Node02).
Configuration des machines :
Pour chaque machine, la configuration_vm est utilisée pour définir le nom d'hôte,
l'adresse IP et les paramètres de la machine virtuelle (mémoire et processeurs).
Provisionnement Ansible :
On a utiliser ansible pour exécuter un playbook (playbook.yml) sur le contrôleur
Voici notre fichier Vagrant
Création fichier inventory.ini
Pour définir les hôtes et leurs groupes
[controller] : Cette section définit le groupe d'hôtes "controller« , qui contient le hôte appelé "Controller"
avec l'adresse IP 192.168.33.10.
Cet hôte est le contrôleur de système et c'est là que les tâches Ansible seront exécutées.
[node] : Cette section définit le groupe d'hôtes "node". Dans ce groupe, on a deux hôtes appelés
"Node01" et "Node02" avec les adresses IP 192.168.33.11 et 192.168.33.12 respectivement.
Ces hôtes sont les nœuds de notre système.
Apres la préparation de nos fichiers , on a fait l’exécution avec vagrant ini et vagrant up
Connexion en SSH sur la vm Controller
Vérification de la connectivité entre la VM Controller et le Node01 et Node02
Préparation de fichiers playbooks
Sous la VM Controller , on va créer des fichiers playbooks pour installer les outils nécessaires sur les Nodes
Et faire le déploiement
Exemple de fichier playbooks pour installer apache2, copier les fichiers de notre application
et démarrer le server apache
Apres la création des fichiers playbook, il sera possible maintenant de les exécuter avec la commande :
ansible-playbook -i inventory.ini playbook1.yml
deuis le répertoire : /home/ansible$