Sobrescreva as configurações do Vagrant localmente (por-dev)

Eu gostaria que a pergunta fosse respondida em geral, mas para ilustrar isso, aqui está um caso de uso:

Estou usando o Vagrant para um projeto simples de LMAP. Eu uso o Puppet autônomo para provisionamento. Agora, pode haver alguns desenvolvedores que se sentam atrás de um proxy e precisariam de alguma configuração adicional para a VM. Eu tenho coisas trabalhando no lado Puppet: eu posso passar o proxy IP (se houver) como um fato para fantoche noVagrantfile e Puppet reage de acordo se for definido.

O único problema que tenho é: como os desenvolvedores podem especificar / substituir essa configuração para seu ambiente de desenvolvimento sem ter que alterarVagrantfile (que está sob controle de versão e deve permanecer dev-environment-neutral)?

Se seria incrível se as pessoas pudessem substituir algumas configurações do Vagrant em um arquivo chamado, por exemplo,Vagrantfile.local, que eu excluiria via.gitignore.

Como um Vagrantfile é apenas Ruby, tentei o seguinte:

# Also load per-dev custom vagrant config
custom_vagrantfile = 'Vagrantfile.local'
load custom_vagrantfile if File.exist?(custom_vagrantfile)

A inclusão de arquivos basicamente funciona, mas parece que no arquivo incluído, eu não estou mais no mesmo contexto do Vagrant ...

Vagrant::Config.run do |config|
  config.vm.provision :puppet do |puppet|
    puppet.facter = { "proxy" => "proxy.host:80" }
  end
end

... também "redefine" todos os outros valores de configuração de marionetes que eu fiz nos principaisVagrantfile, o que me faz pensar que estou indo na direção errada aqui. Eu deveria notar que eu sou um noob total em Ruby;)

Alguém pode me dar uma dica ou até mesmo uma solução de trabalho para como personalização por-dev poderia ser feito aqui em geral?

questionAnswers(7)

yourAnswerToTheQuestion