Vagrant-Konfigurationseinstellungen lokal überschreiben (pro Gerät)

Ich möchte, dass die Frage allgemein beantwortet wird, aber um sie zu veranschaulichen, hier ein Anwendungsfall:

Ich benutze Vagrant für ein einfaches LMAP-Projekt. Ich benutze Standalone Puppet für die Bereitstellung. Jetzt gibt es möglicherweise einige Entwickler, die sich hinter einen Proxy setzen und eine zusätzliche Konfiguration für die VM benötigen. Ich habe Dinge, die auf der Marionettenseite arbeiten: Ich kann die Proxy - IP (falls vorhanden) als eine Tatsache an die Marionette im Internet weitergebenVagrantfile und Puppet reagiert entsprechend, wenn es gesetzt ist.

Das einzige Problem, das ich habe, ist: Wie können Entwickler diese Einstellung für ihre Entwicklungsumgebung angeben / überschreiben, ohne die Einstellung ändern zu müssen?Vagrantfile (Was ist unter Versionskontrolle und muss dev-umgebungsneutral bleiben)?

Es wäre fantastisch, wenn die Benutzer einige Vagrant-Einstellungen in einer Datei mit dem Namen z.Vagrantfile.local, die ich über ausschließen würde.gitignore.

Da ein Vagrantfile nur Ruby ist, habe ich Folgendes versucht:

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

Die Dateieinbeziehung funktioniert grundsätzlich, aber es sieht so aus, als ob ich in der enthaltenen Datei nicht mehr im selben Vagrant-Kontext bin ...

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

... setzt auch alle anderen Marionettenkonfigurationswerte zurück, die ich in der Hauptsache gemacht habeVagrantfileDas lässt mich denken, dass ich hier in die falsche Richtung gehe. Ich sollte beachten, dass ich total noob bei Ruby bin;)

Kann mir jemand einen Hinweis oder sogar eine funktionierende Lösung geben, wie die Anpassung pro Entwickler hier im Allgemeinen durchgeführt werden könnte?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage