Zastąp lokalne ustawienia konfiguracji Vagrant (per-dev)

Chciałbym, aby na ogólne pytanie odpowiedzieć, ale aby to zilustrować, oto przypadek użycia:

Używam Vagrant do prostego projektu LMAP. Używam samodzielnej Marionetki do udostępniania. Teraz może być kilku programistów, którzy siedzą za proxy i potrzebowaliby dodatkowej konfiguracji do maszyny wirtualnej. Mam rzeczy działające po stronie Lalek: mogę przekazać IP serwera proxy (jeśli istnieje) jako fakt, aby się kukiełkowaćVagrantfile i Puppet reaguje odpowiednio, jeśli jest ustawiony.

Jedynym problemem, jaki mam, jest: w jaki sposób programiści mogą określić / nadpisać to ustawienie dla swojego środowiska programistycznego bez konieczności zmianyVagrantfile (który jest pod kontrolą wersji i musi pozostać neutralny dla środowiska)?

Gdyby było wspaniale, gdyby ludzie mogli zastąpić niektóre ustawienia Vagranta w pliku o nazwie np.Vagrantfile.local, które wykluczyłbym za pośrednictwem.gitignore.

Ponieważ plik Vagrant jest po prostu Ruby, próbowałem:

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

Włączenie pliku w zasadzie działa, ale wygląda na to, że zawiera dołączony plik, nie jestem już w tym samym kontekście Vagranta ...

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

... także "resetuje" wszystkie inne wartości konfiguracji lalek, które wykonałem w głównymVagrantfile, co sprawia, że ​​myślę, że zmierzam w złym kierunku. Powinienem zauważyć, że jestem totalnym noobem w Ruby;)

Czy ktoś może dać mi wskazówkę, a nawet działające rozwiązanie, w jaki sposób można w ogóle dostosować personalizację?

questionAnswers(7)

yourAnswerToTheQuestion