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ę?