Переопределить параметры конфигурации 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;)
Может ли кто-нибудь дать мне подсказку или даже рабочее решение о том, как индивидуальная настройка может быть выполнена здесь в целом?