Skip to content

Instantly share code, notes, and snippets.

@nelsonsar
Created October 2, 2013 04:10
Show Gist options
  • Save nelsonsar/6789053 to your computer and use it in GitHub Desktop.
Save nelsonsar/6789053 to your computer and use it in GitHub Desktop.
Mudanças no Vagrantfile na versão 2

Essa é a versão 1 do Vagrantfile:

Vagrant::Config.run do |config|

  config.vm.box = "precise64"
  config.vm.host_name = "cecap"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.share_folder("cecap", "/var/www/cecap", "..", :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 = "cecap.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: Vagrant::Config.run do |config| vira Vagrant.configure("2") do |config| 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 extra por mount_options e passar os parâmetros através de um array ao invés de uma string separada por vírgulas;
  • A diretiva config.vm.share_folder dá lugar à config.vm.synced_folder. 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 :extra dá lugar à :mount_options, como dito no primeiro item;
  • A última mudança notável é a nova maneira de declarar forwarded ports. A diretiva config.vm.forward_port dá lugar à config.vm.network 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.

@lpirola
Copy link

lpirola commented Oct 2, 2013

Nelson, essas mudanças deram um pouco de trabalho por aqui. Não estava muito familiarizado com o vagrant ainda e na hora de configurar me confundiu muito, essas mudanças. Você usa o puppet para subir o LAMP, acabei fazendo bash, porque achei muito confuso o puppet :S

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment