Переопределить параметры конфигурации 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::Config.run do |config|
config.vm.provision :puppet do |puppet|
puppet.facter = { "proxy" => "proxy.host:80" }
end
end
... также "перезагружается» все остальные значения конфигурации марионеток, которые я сделал в основномVagrantfile
что заставляет меня думать, что ям в неправильном направлении. Я должен отметить, что ям нуб на руби;)
Может ли кто-нибудь дать мне подсказку или даже рабочее решение о том, как индивидуальная настройка может быть выполнена здесь в целом?