Avec les machines virtuelles, vous pouvez créer plusieurs environnements de développement et de test. Mais installer des instances de VM est loin d’être simple. À moins d’utiliser les bons outils. C'est à cet instant que Vagrant intervient. Découvrez cet outil, son fonctionnement, ses cas d’application et surtout son utilisation.
Qu’est-ce Vagrant ?
Créé en 2010, Vagrant est un outil de virtualisation développé par HashiCorp. Avant son arrivée, la création d'environnements de développement était particulièrement complexe. Notamment du fait d’incohérence entre les environnements de développement, de test et de production. Ce n’est plus le cas avec Vagrant. Il standardise la mise en place des environnements de développement et de test. En plus, l’outil intègre de nouvelles fonctionnalités visant à simplifier le processus de développement. Aujourd’hui, vous pouvez installer et lancer une machine virtuelle en seulement quelques lignes de commandes.
Vagrant améliore ainsi la productivité, la cohérence et l'efficacité du développement logiciel.
Pourquoi utiliser Vagrant ?
Aujourd’hui, Vagrant est l’un des outils privilégiés des ingénieurs DevOps pour créer et gérer des environnements de développement virtuels. La raison de son succès tient à plusieurs éléments :
- La qualité des environnements conçus : ils sont à la fois cohérents, reproductibles et portables. Grâce à la synchronisation des fichiers, chaque environnement virtuel est l’exacte réplique de l’environnement de l’hôte. Les divergences sont éliminées. Ce qui limite les erreurs lors du déploiement du logiciel.
- La flexibilité : notamment au niveau de la gestion des ressources. Du démarrage à l’arrêt des environnements virtuels, en passant par la reconstruction, seules quelques lignes de commande suffisent. Ce qui rend le processus de développement particulièrement agile.
- Une intégration transparente : Vagrant est complémentaire à de nombreux outils de développement. Il fonctionne parfaitement avec Docker, VirtualBox, VMware, Ansible, Puppet ou Chef.
Grâce à tous ces atouts, Vagrant est désormais un outil incontournable dans les cycles de développement modernes.
Comment installer une machine virtuelle avec Vagrant ?
Avant d’installer une machine virtuelle, il convient de comprendre le fonctionnement de Vagrant. Celui-ci repose sur le concept de box. Ces box correspondent à des environnements préconfigurés incluant tous les éléments nécessaires au développement logiciel, comme le système d'exploitation, les logiciels, les paramètres personnalisés, … C’est le point de départ pour créer n’importe quel environnement virtuel.
Installer une virtual machine
Avant de commencer à installer une machine virtuelle avec Vagrant, vous devez d’abord installer :
- Vagrant : disponible sur tous les systèmes d’exploitation (Linux, Windows ou MacOS).
- VirtualBox : il va gérer les machines virtuelles.
À partir de là, vous aurez besoin de trouver la box vagrant qui vous intéresse. Il vous suffit d’écrire quelques lignes de commande :
$: vagrant up
La commande vagrant up vous permet d’installer automatiquement la machine virtuelle. Elle pourra aussi être utilisée a posteriori pour déclencher le téléchargement de la boîte spécifiée et d'exécuter le script de provisionnement défini dans le fichier de configuration Vagrantfile.
Ensuite, vous pouvez la connecter via la commande :
$: vagrant ssh
Configurer la machine virtuelle
Après l’installation de la machine virtuelle avec Vagrant, vous aurez besoin de la configurer. Pour cela, vous aurez besoin de spécifier une box via le fichier Vagrantifle. Ce fichier contient une multitude d’instructions utiles à la configuration des machines virtuelles. Grâce à lui, vous pouvez :
- définir le fournisseur de virtualisation ;
- identifier les ressources allouées à la machine (mémoire vive ou le nombre de cœurs CPU) ;
- définir les scripts de provisionnement.
Concrètement, pour configurer la machine virtuelle, vous aurez besoin de la commande :
config.vm
Ensuite, vous pourrez définir différents paramètres, comme Network, box, Provider, Provision, …
En plus de configurer la VM, il peut aussi lui demander d'exécuter des commandes particulières.
Vous pourrez ainsi utiliser :
- config.ssh : pour indiquer le chemin d’accès de Vagrant à votre machine
- config.vagrant : pour modifier le comportement de Vagrant
- vagrant halt : pour arrêter la machine
- vagrant destroy : pour supprimer la VM ;
- vagrant reload : pour la redémarrer avec de nouveaux paramètres
Bon à savoir : Si vous utilisez le langage de programmation Ruby vous ne serez pas trop perdu puisque le fichier Vagrantfile utilise un langage similaire.
Dans quels cas utiliser Vagrant ?
Vagrant est un outil extrêmement polyvalent qui s’adapte à tous les scénarios. Voici les cas d’usage les plus fréquents :
- Lorsque chaque membre d’une équipe a une configuration de système différente : ici, c’est la capacité de Vagrant à homogénéiser les environnements de développements qui est particulièrement appréciée. Dans ce cas, chaque membre utilise une VM correspondant à une réplique exacte de son environnement de production. Ce qui réduit les problèmes de compatibilité.
- Lorsque les développeurs ne disposent pas de plusieurs machines physiques : avec Vagrant, vous pouvez tester les applications dans différents environnements (par exemple, sur Ubuntu, CentOS ou encore Windows).
- Lors de formation : Vagrant est un excellent outil d’apprentissage, notamment grâce à ses box préconfigurées. Les étudiants peuvent se concentrer sur la gestion des VM, tout en travaillant dans des environnements cohérents et contrôlés.
Créer une machine virtuelle de A à Z avec DevUniversity
Maîtriser Vagrant et les machines virtuelles nécessite une approche théorique, mais aussi et surtout de la pratique. C’est pourquoi, à la DevUniversity, nous combinons les cours théoriques et les exercices pratiques. À l’issue de votre formation, vous saurez installer et gérer une machine virtuelle avec Vagrant.