Переопределить параметры конфигурации Vagrant локально (per-dev)

Я бы хотел, чтобы на вопрос был дан общий ответ, но для иллюстрации приведу пример использования:

Я использую Vagrant для простого проекта LMAP. Я использую автономную Puppet для обеспечения. Теперь, возможно, есть некоторые разработчики, которые сидят за прокси-сервером, и им потребуется дополнительная настройка для виртуальной машины. У меня есть вещи, работающие на стороне Puppet: я могу передать IP прокси (если есть) как факт в Puppet вVagrantfile и кукольный реагирует соответственно, если он установлен.

Единственная проблема, с которой я столкнулся: как разработчики могут указать / переопределить этот параметр для своей среды разработки, не меняяVagrantfile (который находится под контролем версии и должен оставаться нейтральным к среде разработки)?

Было бы здорово, если бы люди могли переопределить некоторые настройки Vagrant в файле с именем, например.Vagrantfile.localкоторый я бы исключил через.gitignore.

Поскольку Vagrantfile - это просто Ruby, я попробовал следующее:

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

Включение файла в принципе работает, но похоже, что во включенном файле я больше не в том же контексте Vagrant ...

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

... также "сбрасывает" все другие значения конфигурации марионеток, которые я сделал в основномVagrantfileчто заставляет меня думать, что я иду в неправильном направлении здесь. Я должен отметить, что я абсолютный нуб в Ruby;)

Может ли кто-нибудь дать мне подсказку или даже рабочее решение о том, как индивидуальная настройка может быть выполнена здесь в целом?

Ответы на вопрос(7)

Ваш ответ на вопрос