Hello Alvaro, thank you very much for your answer.

I'll start by linking the GH repo where you can see what I'm trying to do: 
https://github.com/dkarlovi/vagrant-playground

Now, to me more concrete:

   1. my custom box is called dkarlovi/centos-6.6
   2. it gets embedded with a custom Vagrantfile, 
   https://github.com/dkarlovi/vagrant-playground/blob/master/box/_Vagrantfile
   3. when installed, that Vagrantfile ends up in 
   
*/home/dkarlovi/.vagrant.d/boxes/dkarlovi-VAGRANTSLASH-centos-6.6/1.0.0/virtualbox/include/_Vagrantfile*
   4. I create a new Vagrant project in */home/dkarlovi/Vagrant/project1*, 
vagrant 
   init dkarlovi/centos-6.6 --minimal
   5. when running, I can see that the 
   */home/dkarlovi/Vagrant/project1/Vagrantfile* gets evaluated *before* 
   
*/home/dkarlovi/.vagrant.d/boxes/dkarlovi-VAGRANTSLASH-centos-6.6/1.0.0/virtualbox/include/_Vagrantfile*
 
   so I should, in theory, be able to figure out where's the Vagrantfile that 
   started it all
   6. I'm currently simulating this, see line 11 
   
<https://github.com/dkarlovi/vagrant-playground/blob/master/box/_Vagrantfile#L11>
 
   but this does not work if I run vagrant from say 
   */home/dkarlovi/Vagrant/project1/src*

I'm doing all of this to be able to check for existence of certain files 
(Puppet related) and turn provisioning on/off so I'd be able to have a full 
Puppet stack (if files present) or nothing (if not present), my box becomes 
more versatile and usable (for my usages).

I've been going through Vagrant source and found that 
Vagrant::Config::Loader is the place where the path is available, but I 
don't see where and how I should fetch it.

Dana subota, 25. travnja 2015. u 19:15:00 UTC+2, korisnik Alvaro Miranda 
Aguilera napisao je:
>
> Hello Dalibor, 
>
> Are 2 things to take into consideration. 
>
> This is the overall simple answer, so apologies in advance if all this 
> is known and doesn't answer your question. 
>
> One is, Vagrant will load all the Vagrantfiles and follow this rule: 
>
> https://docs.vagrantup.com/v2/vagrantfile/index.html 
>
> <QUOTE> 
> Vagrant actually loads a series of Vagrantfiles, merging the settings 
> as it goes. This allows Vagrantfiles of varying level of specificity 
> to override prior settings. Vagrantfiles are loaded in the order shown 
> below. Note that if a Vagrantfile is not found at any step, Vagrant 
> continues with the next step. 
>
> Vagrantfile packaged with the box that is to be used for a given machine. 
> Vagrantfile in your Vagrant home directory (defaults to ~/.vagrant.d). 
> This lets you specify some defaults for your system user. 
> Vagrantfile from the project directory. This is the Vagrantfile that 
> you'll be modifying most of the time. 
> Multi-machine overrides if any. 
> Provider-specific overrides, if any. 
>
> At each level, settings set will be merged with previous values. What 
> this exactly means depends on the setting. For most settings, this 
> means that the newer setting overrides the older one. 
>
> </QUOTE> 
>
> So by default it should read and merge all the Vagrantfiles. 
>
> If your base box include other files, you can reference them like this: 
>
> include_vagrantfile = File.expand_path("../include/_Vagrantfile", 
> __FILE__) 
> load include_vagrantfile if File.exist?(include_vagrantfile) 
> config.ssh.private_key_path = File.expand_path("../vagrant_rsa", __FILE__) 
>
> This came from this thread as example: 
> http://comments.gmane.org/gmane.comp.tools.vagrant/4813 
>
> Alvaro. 
>
> On Sun, Apr 26, 2015 at 3:48 AM, Dalibor Karlović <[email protected] 
> <javascript:>> wrote: 
> > Hello, 
> > 
> > I have a custom box which contains a embedded Vagrantfile (let's call it 
> > VF1). This file contains a lot of box-specific config / functionality 
> and 
> > the target is I should be (and am) able to generate the project 
> Vagrantfile 
> > (VF2) just with: 
> > 
> > Vagrant.configure(2) do |config| 
> >   config.vm.box = "my/box" 
> > end 
> > 
> > and still get all the functionality (Puppet integration, VirtualBox 
> tweaks, 
> > YAML config support, etc). The problem is that I'd like to read files 
> > relative to VF2 from VF1. The way I see it, VF2 gets loaded before VF1 
> and 
> > thus, Vagrant should be able to figure out where VF2 is before loading 
> > loading VF1. So, how do I access this information? 
> > 
> > Thanks in advance. 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "Vagrant" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to [email protected] <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to