En tant qu'étudiant en BTS SIO, je suis souvent confronté à la mise en place de nombreuses solutions informatiques, que ce soit pour du développement ou la configuration de services réseau. Dans ma quête de méthodes rapides pour réaliser mes TP, j'ai découvert Vagrant. Cet outil permet de déployer rapidement des machines virtuelles, que ce soit avec Ubuntu, Debian, ou d'autres systèmes d'exploitation Linux. Commençons par les bases.
Vagrant est un outil open-source conçu pour créer et gérer des environnements de développement virtuels. Il simplifie la création, la configuration et le déploiement d'environnements de développement dans des machines virtuelles. Compatible avec divers fournisseurs de machines virtuelles tels que VirtualBox, VMware, Hyper-V et Docker, Vagrant utilise des fichiers de configuration pour décrire les caractéristiques des machines virtuelles, telles que le système d'exploitation, les packages installés, les paramètres réseau, etc.
Pour commencer, téléchargez la dernière version de Vagrant depuis le site officiel. Une fois téléchargé, exécutez le fichier d'installation et suivez les instructions à l'écran.
Une fois Vagrant installé, suivez ces étapes simples :
- Créez un nouveau dossier pour votre projet et ouvrez-le dans votre terminal.
- Initialisez un nouveau projet Vagrant :
vagrant init
- Ouvrez le fichier
Vagrantfile
avec votre éditeur de texte préféré et modifiez la configuration selon vos besoins.config.vm.box = "ubuntu/focal64"
- Lancez la machine virtuelle :
vagrant up
- Connectez-vous à la machine virtuelle en utilisant SSH :
vagrant ssh
Utilisez les commandes suivantes pour gérer vos machines virtuelles :
vagrant up
: démarrer la machine virtuelle.vagrant halt
: arrêter la machine virtuelle.vagrant reload
: redémarrer la machine virtuelle.vagrant destroy
: supprimer la machine virtuelle.vagrant status
: afficher l'état de la machine virtuelle.vagrant ssh
: se connecter à la machine virtuelle en utilisant SSH.vagrant provision
: exécuter à nouveau les scripts de provisionnement.
Maintenant que vous savez créer des machines virtuelles avec Vagrant (Ubuntu), passons à des utilisations plus avancées.
Pour automatiser des machines virtuelles, voici un exemple de script Ruby pour la mise en place d'un serveur web PHP avec Ubuntu.
Organisez vos scripts VagrantFile dans un dossier unique par projet :
|- All_VM
|- Vagrant_VM_Nom_du-projet
|- Vagrant_Folder_Nom_du-projet
Configurer les propriétés de la machine virtuelle, l'hyperviseur, l'adresse IP, les ressources de la VM, et la synchronisation avec le dossier Vagrant_Folder.
config.vm.box = "ubuntu/focal64"
config.vm.box_url = "https://vagrantcloud.com/ubuntu/focal64"
config.vm.network :private_network, ip: "192.168.56.156"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "2048"
end
config.vm.synced_folder "../Vagrant_Folder", "/var/www/html"
config.vm.provision "shell", inline: <<-SHELL
# Code Bash Premier Démarrage
SHELL
config.vm.provision "shell", run: "always", inline: <<-SHELL
# Code Bash Tous Démarrage
SHELL
Personnalisez les configurations en fonction de vos besoins. Utilisez ce modèle pour créer des machines virtuelles automatisées avec Vagrant.
Une "box" Vagrant est une archive compressée qui contient une image de machine virtuelle prête à être utilisée. Les boxes Vagrant fournissent un moyen efficace de distribuer et de partager des environnements de développement.
-
Ajouter une Box : Pour utiliser une box existante, ajoutez-la à votre projet avec la commande :
vagrant box add nom-de-la-box chemin/vers/la-box-file
-
Configurer Votre Projet avec la Nouvelle Box : Modifiez le fichier
Vagrantfile
dans votre projet pour utiliser la nouvelle box :config.vm.box = "nom-de-la-box"
-
Lancer la Machine Virtuelle :
vagrant up
-
Préparer la VM :
- Assurez-vous que la VM est configurée comme vous le souhaitez.
- Supprimez les données sensibles ou inutiles de la VM.
-
Arrêter la VM :
vagrant halt
-
Packager la VM en tant que Box :
vagrant package --output nom-de-la-box.box
Cette commande crée une box à partir de la VM actuelle et la stocke dans le fichier
nom-de-la-box.box
. -
Ajouter la Nouvelle Box à Vagrant :
vagrant box add nom-de-la-box nom-de-la-box.box
-
Configurer Votre Projet avec la Nouvelle Box : Modifiez le fichier
Vagrantfile
dans votre projet pour utiliser la nouvelle box :config.vm.box = "nom-de-la-box"
-
Lancer la Machine Virtuelle :
vagrant up
-
Lister les Boxes Installées :
vagrant box list
-
Supprimer une Box :
vagrant box remove nom-de-la-box
- Créez des boxes légères en supprimant les données inutiles avant de les empaqueter.
- Documentez votre box en spécifiant les configurations et les prérequis dans le
README
.
-
Configurer les Ressources de la VM : Ajoutez ces lignes dans le
Vagrantfile
pour spécifier la mémoire et le nombre de CPU :config.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.cpus = 2 end
-
Ajouter des Scripts de Provisionnement : Utilisez des scripts pour installer des logiciels, configurer des services, etc. :
config.vm.provision "shell", path: "script.sh"
-
Créer un Compte Vagrant Cloud : Vagrant Cloud est une plateforme pour partager des boxes Vagrant.
-
Se Connecter avec Votre Compte Vagrant Cloud :
vagrant login
-
Publier la Box sur Vagrant Cloud :
vagrant cloud publish utilisateur/nom-de-la-box version \ virtualbox --force --release
-
Mettre à Jour la VM et Arrêter :
vagrant up vagrant halt
-
Repackager la VM Mise à Jour :
vagrant package --output nom-de-la-box-v2.box
-
Mettre à Jour la Box :
vagrant box add nom-de-la-box-v2 nom-de-la-box-v2.box --force
- Limitez les autorisations pour les boxes sensibles.
- Utilisez HTTPS lors de l'hébergement de vos boxes.