C'est une grande question, donc je vais la diviser en trois sections.
Vagrant
Vagrant est utilisé pour configurer une ou plusieurs machines virtuelles en :
- Important des images pré-faites (appelées "boxes")
- Paramétrant des paramètres spécifiques à la machine virtuelle (adresse IP, noms d'hôtes, redirection de ports, mémoire, etc.)
- Exécutant des logiciels de provisionnement comme Puppet ou Chef
Notez que cela n'installe pas de logiciels ni ne configure complètement la machine après le chargement de la machine virtuelle et la configuration de VirtualBox. Pensez-y comme un moteur de script pour VirtualBox.
Voici quelques raisons que j'ai rencontrées pour utiliser Vagrant plutôt que seulement VirtualBox.
1. Configuration facile de réseaux multi-machines virtuelles
La plupart du contenu d'utilisateurs avancés de Vagrant que j'ai lu parlait de la configuration de plusieurs machines virtuelles en même temps. Vagrant vous offre un fichier de configuration unique pour les configurer, vous permettant de lancer toutes ces machines avec une seule commande.
Disons que vous avez configuré trois machines virtuelles pour qu'elles soient en réseau les unes avec les autres en utilisant des adresses IP statiques sur le sous-réseau 192.168.1.*. Vous vous retrouvez dans un endroit qui utilise déjà ce sous-réseau pour distribuer des adresses IP, et vos machines virtuelles entrent en conflit. Avec Vagrant, vous pouvez simplement modifier le fichier Vagrantfile et recharger les machines virtuelles, alors qu'avec VirtualBox, vous devriez ouvrir les paramètres de chaque machine virtuelle, voire démarrer chaque machine virtuelle et les modifier à l'intérieur.
2. Contrôle de source
En mettant les paramètres dans un fichier texte, cela permet de mettre la configuration sous contrôle de source. Vous avez fait des changements la semaine dernière et avez accidentellement cassé l'image ? Il suffit de revenir aux anciens paramètres et de recharger la machine virtuelle. Vous pouvez faire cela avec des snapshots VirtualBox, mais cela prendra beaucoup plus d'espace que simplement un fichier Vagrantfile.
3. Diverses plateformes
Il y a un grand nombre de boxes disponibles sur des sites comme http://vagrantbox.es. Cela vous permet d'essayer différentes OS ou distributions, en appliquant le même provisionnement pour configurer des environnements similaires. Cela peut aider pour les tests ou pour ajouter du support à de nouvelles plateformes, et cela prendrait beaucoup de temps en utilisant seulement VirtualBox.
Il y a beaucoup d'arguments en faveur de l'utilisation de logiciels de provisionnement, ainsi que l'utilisation de snapshots d'image. Pour une discussion supplémentaire, je vous oriente vers l'excellent article de Stephen Nelson-Smith How to Build 100 Web Servers in a Day.
18 votes
Deux ans plus tard, j'utilise maintenant Vagrant tous les jours pour le développement - c'est génial ! Mon équipe l'utilise et cela a résolu nos problèmes d'environnement de développement.
2 votes
Opinionated here : Si vous n'avez jamais eu de problème pour configurer des serveurs PXE, connaissez VBoxManage par cœur, savez comment configurer nfs en moins d'une minute, etc. et aussi aimez gérer directement les chaînes de construction.. il n'y a presque aucun point du tout. La valeur augmente avec chaque partie du puzzle que vous manquez. L'utilisation généralisée ne vient pas de l'intégration de puppet mais parce que les gens pourraient télécharger des images infestées de failles de sécurité directement sur internet. Peu importe ce qu'ils vous disent.
3 votes
J'ai également trouvé Vagrant beaucoup plus utile dans une équipe de plusieurs développeurs, alors qu'auparavant c'était juste moi. J'ai imposé Vagrant à mon équipe et j'ai découvert que c'est là que la valeur réside.
3 votes
3,5 ans plus tard et j'utilise maintenant Docker tous les jours pour le développement. C'est bien, mais c'est une bête différente de Vagrant... Selon vos besoins, je pense que Vagrant reste une meilleure plateforme de développement pour les équipes - c'est juste beaucoup plus facile à utiliser.
11 votes
4 ans plus tard et j'ai découvert que docker est terrible. Vive Vagrant.
7 votes
Vos commentaires rendent cela tellement plus amusant
4 votes
4 ou 5 ans plus tard, j'ai découvert que je devais utiliser Docker car tout le monde le fait. Les nouveautés ne sont pas aussi brillantes en réalité.. Je ne pense pas que les gens aient vraiment maîtrisé les anciennes technologies pour autant.. Cependant, cela a sa place.. Pouvoir mettre en place rapidement un environnement de développement LEMP est plutôt sympa
3 votes
Simplement être capable d'éviter l'énorme espace gaspillé qui sont les instantanés de VirtualBox qui doivent être conservés à l'intérieur du répertoire de la VM.
7 votes
7,5 ans plus tard, en fait Docker va bien - une courbe d'apprentissage raide et le tout a très mal commencé. Maintenant, je dois juste apprendre sur K8S etc.. soupir.
1 votes
~2 ans plus tard, j'ai appris sur k8s.. lol. Je l'adore! Encore une courbe d'apprentissage raide mais tout est assez sensé. Hautement recommandé (si vous en avez besoin.)