Essa é a versão 1 do Vagrantfile:
Vagrant::Config.run do |config|
config.vm.box = "precise64"
config.vm.host_name = "blog"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.share_folder("blog", "/var/www/blog", "..", :extra => 'dmode=777,fmode=777')
config.vm.forward_port 80, 8099
config.vm.forward_port 443, 44399
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "manifests"
puppet.manifest_file = "blog.pp"
puppet.module_path = "modules"
end
end
E essa é a versão 2:
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.host_name = "blog"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.synced_folder("..", "/var/www/blog", :mount_options => ['dmode=777','fmode=777'])
config.vm.network "forwarded_port", guest: 80, host: 8099
config.vm.network "forwarded_port", guest: 443, host: 44399
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "manifests"
puppet.manifest_file = "blog.pp"
puppet.module_path = "modules"
end
end
Notem que os dois arquivos são bem simples e, não a quase nenhuma customização. Mas, vamos ao que interessa: as mudanças!
- A primeira mudança vem logo na primeira linha dos arquivos: <pre>
Vagrant::Config.run do |config|
</pre> vira <pre>Vagrant.configure("2") do |config|
</pre> onde, o número 2 significa a versão do Vagrantfile que você quer usar. Estão disponíveis as versões 1 e 2. Algumas configurações podem ser mantidas se a versão informada for a 1. Nesses arquivos, por exemplo, basta substituir o <pre>extra
</pre> por <pre>mount_options
</pre> e passar os parâmetros através de um <pre>array
</pre> ao invés de uma <pre>string
</pre> separada por vírgulas; - A diretiva <pre>
config.vm.share_folder
</pre> dá lugar à <pre>config.vm.synced_folder
</pre>. Notem que o número de parâmetros é menor na versão 2 e que também a ordem é invertida. O primeiro parâmetro é a pasta no host e o segundo parâmetro é o caminho na máquina virtual (se a pasta não existir será criada e, recursivamente se necessário). A diretiva <pre>:extra
</pre> dá lugar à <pre>:mount_options
</pre>, como dito no primeiro item; - A última mudança notável é a nova maneira de declarar forwarded ports. A diretiva <pre>
config.vm.forward_port
</pre> dá lugar à <pre>config.vm.network
</pre> e port forwarding torna-se um parâmetro da mesmo. Tornando-se muito mais intelegível, na minha opinião.
As mudanças não param nesses pequenos detalhes, claro. Mas, com essas pequenas alterações é possível manter-se atualizado com as novas versões do Vagrantfile.
Eu mantenho um esqueleto do vagrant nesse repositório e uso ele em alguns projetos pra facilitar a vida.