Essa é uma grande questão, então eu vou dividir em três seções.
Vagabundo
O Vagrant é usado para configurar uma ou mais máquinas virtuais:
- Importando imagens pré-criadas (chamadas "caixas")
- Definindo configurações específicas da VM (endereço IP, nomes de host, encaminhamento de porta, memória etc.)
- Executando software de provisionamento como Puppet ou Chef
Observe que ele não instala software ou configura a máquina após carregar a VM e definir as configurações do VirtualBox. Pense nisso como um mecanismo de script para o VirtualBox.
Aqui estão algumas razões que eu vi para usar o Vagrant apenas sobre o VirtualBox.
1. Configure redes Multi-VM com facilidade
A maior parte do conteúdo de usuários avançados do Vagrant que li foi sobre a instalação de várias VMs ao mesmo tempo. O Vagrant fornece um único arquivo de configuração para configurá-los, permitindo que você inicie todos eles com um único comando.
Digamos que você configurou três VMs para se conectarem usando IPs estáticos na sub-rede 192.168.1. *. Você se encontra em um local que já está usando essa sub-rede para distribuir endereços IP e suas VMs agora estão em conflito. Com o Vagrant, você pode simplesmente editar o arquivo Vagrant e recarregar as VMs, enquanto que com o VirtualBox você precisa abrir as configurações de cada VM, se não inicializar cada VM e alterá-las por dentro.
2. Controle de Origem
Ao colocar as configurações em um arquivo de texto, ele permite que a configuração seja colocada sob controle de origem. Fez algumas alterações na semana passada e acidentalmente quebrou a imagem? Basta reverter as alterações e recarregar a VM. Você pode fazer isso com os instantâneos do VirtualBox, mas ocupará muito mais espaço do que apenas um arquivo Vagrant.
3. Várias plataformas
Há um grande número de caixas disponíveis em sites como http://vagrantbox.es . Isso permite que você tente vários sistemas operacionais ou distribuições, aplicando o mesmo provisionamento para configurar ambientes semelhantes. Isso pode ajudar no teste ou na adição de suporte a novas plataformas e consumiria muito tempo usando apenas o VirtualBox.
Existem muitos argumentos para usar o software de provisionamento, bem como usar instantâneos de imagem. Para uma discussão adicional, mostrarei o excelente artigo de Stephen Nelson-Smith, Como construir 100 servidores da Web em um dia .