Vagrant, pour de meilleurs environnements de développements

Vagrant, pour de meilleurs environnements de développements

07 Jan 2014 |  Linux

Cet article fait suite aux présentations que j’ai eu la chance de donner sur le sujet. J’utilise Vagrant depuis plus d’un an maintenant pour travailler sur mes différents projets. Je ne parlerai pas de comment installer Vagrant, car la documentation officielle est suffisamment bien écrite pour ça, mais plutôt de ses points forts et pourquoi l’utiliser.

Vagrant, qu’est-ce que c’est ?

Pour ceux qui n’ont jamais entendu parler de Vagrant, sachez avant tout qu’il s’agit d’un outil fantastique pour gérer, administrer et déployer des machines virtuelles depuis une interface en ligne de commande. C’est écrit en Ruby et extensible par le biais de plugins ou gems.

Pour faire simple, Vagrant peut être considéré comme une surcouche pour gérer des machines virtuelles avec Virtual Box ou VM Ware. Grâce à de simples commandes, vous avez la possibilité de créer, de détruire ou encore de paramétrer de nouveaux environnements. Vagrant fonctionne aussi bien sous Linux, Mac OS X, ou Windows et permet de faire tourner tout un tas de systèmes d’exploitations voir même des containers Linux.

Le but de Vagrant n’est pas de gérer la configuration des VM’s, c’est pourquoi cette partie est assurée par des systèmes de gestion de provisionnement tels que Puppet, Chef ou Ansible. Ces outils sont standards et bien connus des administrateurs systèmes pour gérer leurs parcs de machines et de serveurs. Puisque c’est connu, cela permet ainsi de trouver pas mal de scripts ou de ressources sur le net.

Vagrant, qu’est ce qu’on y trouve ?

Rien de tel que de voir ce qu’il y a sous le capot, pour mieux comprendre de quoi il s’agit.

Accès SSH natif entre la machine hôte et la machine virtuelle Pas besoin de se prendre la tête avec ça, l’accès ssh entre les deux systèmes est activé. Ainsi vous n’avez qu’a exécuter une commande pour vous connecter sur la VM.

Compatible avec VirtualBox ou VmWare Ces deux gestionnaires de machines virtuelles sont compatibles avec Vagrant. Toutefois, si vous décidez d’utiliser VmWare vous devrez payer une licence pour l’utiliser.

Configuration du réseau Vous avez la possibilité de laisser votre VM utiliser un DHCP afin de lui attribuer une adresse IP ou vous pouvez la définir vous même. Ce qui est bien pratique lorsque vous avez plusieurs VMs demarrées en même temps.

Vagrantfile

config.vm.network :private_network, ip: "192.168.1.25"

Répertoires partagés Combien de temps vous avez dépensé à configurer le partage de répertoire sur votre ancienne VM, certainement trop, n’est-ce pas ? Ca ne pourrait pas être plus simple qu’avec Vagrant, tout ce que vous avez à faire c’est définir un chemin sur la machine hôte et un chemin sur la machine virtuelle. C’est simple et pratique pour partager des fichiers entre vos deux machines.

Vagrantfile

bashconfig.vm.synced_folder "src/", "/src/website", nfs: true

Le premier paramètre est le chemin sur la machine hôte et le deuxième celui sur la VM. Le troisième paramètre quand à lui permet d’activer le NFS sur le partage.

Port forwarding Vous pouvez transférer des ports entre vos deux machines nativement. Par exemple, vous voulez accéder au port 80 de votre serveur web de votre VM sur le port 8090 de votre machine hôte, une ligne de configuration et hop !

Vagrantfile

config.vm.network :forwarded_port, guest: 80, host: 8090

Il vous suffira alors d’accèder à l’url : http://localhost:8090 pour voir le contenu de votre server

Provisionnement automatisé Je ne rentrerai pas dans les détails de ce point ici, mais un système de gestion de configuration peut être utilisé pour administrer votre VM. Cela vous permettra ainsi d’automatiser l’installation de vos serveurs et fichiers de configuration. Pour cela vous aurez le choix entre plusieurs outils tel que Puppet, Chef or Ansible… Grace à ça, vous aurez une VM qui sera toujours conforme à votre besoin. Cela devient aussi utile lorsque l’on travaille à plusieurs.

Vagrant, c’est tout ce dont vous avez besoin

Comme vous pouvez le constater, Vagrant regorge de chouettes fonctionnalités toutes plus utiles les unes que les autres. Il s’avère être un véritable outil pour construire des environnement de développement simplement. La configuration est vraiment simple et tout se passe dans un seul fichier nommé Vagrantfile… Mais pour en savoir plus, il faudra attendre la suite.

Julien Dubreuil

Vous avez une idée, un projet web à réaliser ?

Ensemble, mettons en oeuvre sa réussite. Je vous accompagne dans vos projets, depuis l'élaboration du cahier des charges jusqu'à la mise en production. Pour plus d'information n'hésitez pas à me contacter.

Contactez-moi