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?