J'aimerais répondre à la question, en général, mais pour l'illustrer, voici un cas d'utilisation:
Je suis l'aide de l'Errance pour un simple LMAP projet. J'ai une utilisation autonome de la Marionnette pour l'approvisionnement. Maintenant, il pourrait y avoir quelques développeurs qui sont assis derrière un proxy et qu'ils auraient besoin d'une configuration supplémentaire pour être fait à la machine virtuelle. J'ai des choses à travailler sur la Marionnette côté: je peux passer le proxy IP (le cas échéant) comme un fait de la marionnette dans l' Vagrantfile
poupées et réagit en conséquence s'il est défini.
Le seul problème que j'ai est la suivante: comment les développeurs peuvent-ils préciser/modifier ce paramètre pour leur environnement de développement sans avoir à changer l' Vagrantfile
(ce qui est sous contrôle de version, et doit demeurer, dev-environnement-neutre)?
Si serait génial si les gens pouvaient remplacer certains Vagrant paramètres dans un fichier appelé par exemple, Vagrantfile.local
, ce qui est je exclure .gitignore
.
Depuis un Vagrantfile est juste Ruby, j'ai essayé le suivant:
# Also load per-dev custom vagrant config
custom_vagrantfile = 'Vagrantfile.local'
load custom_vagrantfile if File.exist?(custom_vagrantfile)
L'inclusion de fichier fonctionne, mais il semble que dans le fichier inclus, je ne suis pas dans le même Vagrant contexte plus...
Vagrant::Config.run do |config|
config.vm.provision :puppet do |puppet|
puppet.facter = { "proxy" => "proxy.host:80" }
end
end
... aussi "réinitialise" tous les autres marionnettes config valeurs que j'ai fait dans le principal Vagrantfile
, ce qui me fait penser que je me dirige dans la mauvaise direction ici. Je dois souligner que je suis un noob total en Ruby ;)
Quelqu'un peut-il me donner un indice ou même une solution de travail pour comment par-dev personnalisation pourrait être fait ici en général?