Anular localmente los ajustes de configuración de Vagrant (por dev)

Me gustaría que la pregunta fuera respondida en general, pero para ilustrarla, aquí hay un caso de uso:

Estoy usando Vagrant para un proyecto LMAP simple. Yo uso Puppet independiente para aprovisionamiento. Ahora, podría haber algunos desarrolladores que se sientan detrás de un proxy y necesitarían una configuración adicional para la VM. Tengo cosas trabajando en el lado Títere: puedo pasar el IP de proxy (si existe) como un hecho a títere en elVagrantfile y Puppet reacciona en consecuencia si está establecido.

El único problema que tengo es: ¿cómo pueden los desarrolladores especificar / anular esta configuración para su entorno de desarrollo sin tener que cambiar la configuración?Vagrantfile (¿Qué está bajo el control de versiones y debe permanecer sin cambios en el entorno)?

Sería increíble si las personas pudieran anular algunas configuraciones de Vagrant en un archivo llamado por ejemplo.Vagrantfile.local, que excluiría a través de.gitignore.

Ya que un Vagrantfile es solo Ruby, probé lo siguiente:

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

La inclusión de archivos básicamente funciona, pero parece que en el archivo incluido, ya no estoy en el mismo contexto Vagrant ...

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

... también "restablece" todos los demás valores de configuración de títeres que hice en el mainVagrantfile, lo que me hace pensar que estoy yendo en la dirección equivocada aquí. Debo señalar que soy un noob total en Ruby;)

¿Alguien puede darme una sugerencia o incluso una solución de trabajo sobre cómo se puede hacer la personalización per-dev aquí en general?

Respuestas a la pregunta(7)

Su respuesta a la pregunta