Hello there,
got it, on the host.
for the multiple running thing, which if found also, I did a dirty trick.
Icreated a variable:
#variable used to provide information only once
give_info ||=true
then inside the provider :virtualbox block i did
unless give_info==false
puts "on first boot shared disks will be created, this will
take some time"
give_info=false
to execute that only once every time the Vagrant file is readed.
As for the provision, I am not sure how check how to know if we are in a
provision call or no..
We may want to look at the provisioner code.. what ever you find, please
report back!
Alvaro.
On Sun, Mar 30, 2014 at 8:14 PM, <[email protected]> wrote:
> Hello, Alvaro,
>
> Thanks for your response, but both options don't work for me:
>
> 1. Even if you call a ruby function/command inside the provider-specific
> block, the function/command is executed (and multiple times) for any
> provider.
>
> # VirtualBox provider-specific configuration
> server.vm.provider :virtualbox do |vb|
> vb.landrush.enable
> puts "Hello: my provider is VirtualBox"
> end
> In the example below, the message "Hello: my provider is VirtualBox" is
> printed a few times even if I start vagrant with the following command:
> *vagrant up --provider softlayer*
>
> 2. Here, I want to run the ruby script (or ruby function) on the local
> machine and *NOT* on the guest machine, thus your idea does not work for
> me.
>
> Actually, I want to run a ruby script which prepares a dynamic file in the
> sync directory for the provision script. Thus, I want to run the script
> locally just before the provisioning.
>
>
>
> Regards,
>
> -- Idan
>
>
> On Friday, March 28, 2014 1:53:41 AM UTC+2, Alvaro Miranda Aguilera wrote:
>
>> hello,
>>
>> for q1, I have seen things like this:
>>
>> config.vm.provider :vmware_fusion do |vb, override|
>> override.vm.box_url =
>> "http://storage.core-os.net/coreos/amd64-usr/alpha/coreos_production_vagrant_vmware_fusion.box"
>> end
>>
>> perhaps you can test inside a data block like that?
>>
>> for 2, you mean ruby script as script.rb? if yes, then the shell inline
>> will be executed only when the machine is provisioned
>>
>> you can copy the script into the guest, and execute it like:
>>
>> config.vm.provision :file, :source => "/path/myawesomescript",
>> :destination => "/myawesomescript"
>>
>> config.vm.provision :shell, :inline => "ruby /myawesomescript"
>>
>> Alvaro.
>>
>>
>>
>> On Fri, Mar 28, 2014 at 12:28 AM, <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> I've a single Vagrantfile that is used for multiple providers (e.g.,
>>> VirtualBox, Softlayer, etc).
>>>
>>> 1. I would like to call a different ruby script (or ruby function) for
>>> each profvider from the Vagrantfile. How I can check the provider in the
>>> Vagrantfile ?
>>>
>>> 2. In addition, I would like to run the ruby script if and only if the
>>> provision flag is set. That is, if vagrant is NOT executed with the
>>> --no-provision flag. How I can check the provision flag in the Vagrantfile ?
>>>
>>> Thanks In Advance,
>>>
>>> -- Idan Zach
>>>
>>> --
>>> 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.
>>>
>>
>> --
> 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.
>
--
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.