Hello

I dont think this is posible.

If you create a vagrant file

and add these 3 lines

config.vm.define "box1"
config.vm.define "box2"
config.vm.define "box3"

on the local vagrantfile, the next time you run vagrant status it will show
3 box

but if you move those same 3 lines and a config block to the Vagrantfile of
the box
~/.vagrant.d/boxes/<etc>

it wont work

So you could create a github issue with the feature request and see if
development would give hints how to implement this

Thanks
Alvaro


On Sun, Mar 28, 2021 at 12:43 PM Frits Hoogland <frits.hoogl...@gmail.com>
wrote:

> Hi Alvaro! Thank you for taking the time and effort to look into this.
> I got a 'box' here:
> https://app.vagrantup.com/FritsHoogland/boxes/centos8-yb-rf3
> This box is meant to start up 3 virtual machines using vagrant.
>
> The Vagrantfile that is created as part of init in the user current
> working directory essentially just points to the vagrant box, I don't
> believe there is a way to add content to that Vagrantfile automatically.
> The embedded Vagrantfile is attached.
> The essence of the embedded Vagrantfile is to set variables, which can be
> modified by setting environment variables, after which there is a loop
> based on the variable replication_factor, which I put below:
>
> Vagrant.configure("2") do |config|
>
>   # all the nodes use an identical image.
>   config.vm.box = "FritsHoogland/centos8-yb-rf3"
>
>   # we use the same number of nodes as the replication factor.
>   # for RF=3, we need 3 yb-master processes, for which we create a VM each.
>   # each VM runs a yb-tserver process too, for which the number can be
> higher.
>   (1..replication_factor.to_i).each do |vm_nr|
>     config.vm.define "centos83-yb-#{vm_nr}" do |subconfig|
>       subconfig.vm.hostname = "centos83-yb-#{vm_nr}.local"
>       if ip_address[vm_nr] != 'no'
>         subconfig.vm.network :private_network, ip: ip_address[vm_nr]
>       end
>       subconfig.vm.provider :virtualbox do |vb|
>         vb.memory = memory_size
>         vb.cpus = nr_cpus
>         if add_disk == 'yes'
>           data1_disk = "data1_vm#{vm_nr}.vdi"
>           if !File.exist?(data1_disk)
>             vb.customize [ 'createhd', '--filename', data1_disk, '--size',
> disk_size ]
>           end
>           vb.customize [ 'storageattach', :id, '--storagectl', 'SATA
> Controller', '--port', 2, '--device', 0, '--type', 'hdd', '--medium',
> data1_disk ]
>         end
>       end
>       if replication_factor == "3"
>         subconfig.vm.provision "master.conf:master_addresses", type:
> "shell", privileged: true, inline: "sed -i 's/\\(--master_addresses=\\)
> 127.0.0.1:7100/\\1centos83-yb-1.local:7100,centos83-yb-2.local:7100,centos83-yb-3.local:7100/
> <http://127.0.0.1:7100/%5C%5C1centos83-yb-1.local:7100,centos83-yb-2.local:7100,centos83-yb-3.local:7100/>'
> /home/yb/master.conf"
>         subconfig.vm.provision "master.conf:replication_factor", type:
> "shell", privileged: true, inline: "sed -i
> 's/\\(--replication_factor=\\)1/\\13/' /home/yb/master.conf"
>         subconfig.vm.provision "tserver.conf:tserver_master_addrs", type:
> "shell", privileged: true, inline: "sed -i 's/\\(--tserver_master_addrs=\\)
> 127.0.0.1:7100/\\1centos83-yb-1.local:7100,centos83-yb-2.local:7100,centos83-yb-3.local:7100/
> <http://127.0.0.1:7100/%5C%5C1centos83-yb-1.local:7100,centos83-yb-2.local:7100,centos83-yb-3.local:7100/>'
> /home/yb/tserver.conf"
>         subconfig.vm.provision "etc_hosts", type: "shell", privileged:
> true, inline: add_hostnames_to_etc_hosts
>       end
>       # provisioning
>       # if we find a blockdevice /dev/sdb, a disk is attached.
>       subconfig.vm.provision "setup /dev/sdb", type: "shell", privileged:
> true, inline: partition_and_format
>       if start_services == 'yes'
>         subconfig.vm.provision "enable yb-master service", type: "shell",
> privileged: true, inline: "systemctl enable yb-master"
>         subconfig.vm.provision "start yb-master service", type: "shell",
> privileged: true, inline: "systemctl start yb-master"
>         subconfig.vm.provision "enable yb-tserver service", type: "shell",
> privileged: true, inline: "systemctl enable yb-tserver"
>         subconfig.vm.provision "start yb-tserver service", type: "shell",
> privileged: true, inline: "systemctl start yb-tserver"
>       end
>     end
>   end
> end
>
> This loop seems to be totally ignored when it's in the embedded
> Vagrantfile.
> Currently, I am letting the users of this box copy the embedded
> Vagrantfile over the 'user vagrant file', after which it does get executed,
> and creates 3 nodes (the default value of replication_factor).
> However, it would be great if I can do the heavy lifting like above in the
> embedded Vagrantfile, so the user is not bothered by all these details, and
> can just init a simple Vagrantfile and start it.
>
> So the question is how to make constructions like above actually be
> executed in the embedded Vagrantfile?
>
> Thank you,
>
> Frits
>
> --
> This mailing list is governed under the HashiCorp Community Guidelines -
> https://www.hashicorp.com/community-guidelines.html. Behavior in
> violation of those guidelines may result in your removal from this mailing
> list.
>
> GitHub Issues: https://github.com/hashicorp/vagrant/issues
> Discuss: https://discuss.hashicorp.com/c/vagrant/24
> ---
> 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 vagrant-up+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/vagrant-up/9762DE44-6052-4A9F-82D0-7DAFF5FD203D%40gmail.com
> <https://groups.google.com/d/msgid/vagrant-up/9762DE44-6052-4A9F-82D0-7DAFF5FD203D%40gmail.com?utm_medium=email&utm_source=footer>
> .
>
> Op 27 mrt. 2021, om 18:44 heeft Alvaro Miranda Aguilera <kiki...@gmail.com>
> het volgende geschreven:
>
> Hello
>
> Can you share a zip file with code and instructions ?
>
> Thanks
> Alvaro
>
> On Wed, Mar 24, 2021 at 12:03 PM Frits Hoogland <frits.hoogl...@gmail.com>
> wrote:
>
>> I am trying to create a vagrant box that launches a cluster of 3 VMs. The
>> Vagrantfile to accomplish this works when this definition is in the
>> Vagrantfile in the CWD. However, when I move this multi-machine definition
>> to the embedded Vagrantfile, vagrant ignores it and creates a default VM,
>> ignoring the named machine definitions.
>>
>> I read the documentation, which doesn’t say anything concrete about this,
>> only that multiple Vagrantfiles are merged before starting a vagrant box,
>> and that some definitions in the Vagrantfile are added, and some do
>> overwrite, which is not very descriptive.
>>
>> My first question is if this is intended behaviour.
>> My second question is if there’s way to make vagrant execute a
>> multi-machine setup with the definition in the embedded Vagrantfile, so
>> that a user can use a simple default generated Vagrantfile.
>>
>> --
>> This mailing list is governed under the HashiCorp Community Guidelines -
>> https://www.hashicorp.com/community-guidelines.html. Behavior in
>> violation of those guidelines may result in your removal from this mailing
>> list.
>>
>> GitHub Issues: https://github.com/hashicorp/vagrant/issues
>> Discuss: https://discuss.hashicorp.com/c/vagrant/24
>> ---
>> 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 vagrant-up+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/vagrant-up/2f2ecef8-a895-4b80-80a1-65aa6dc29f23n%40googlegroups.com
>> <https://groups.google.com/d/msgid/vagrant-up/2f2ecef8-a895-4b80-80a1-65aa6dc29f23n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> --
> Alvaro
>
>
> --
> This mailing list is governed under the HashiCorp Community Guidelines -
> https://www.hashicorp.com/community-guidelines.html. Behavior in
> violation of those guidelines may result in your removal from this mailing
> list.
>
> GitHub Issues: https://github.com/hashicorp/vagrant/issues
> Discuss: https://discuss.hashicorp.com/c/vagrant/24
> ---
> 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 vagrant-up+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/vagrant-up/CAHqq0ewm%2BNdY43yfGov2rj1FpHCXLk-4kJ2F_uUJ76LBFHf2Uw%40mail.gmail.com
> <https://groups.google.com/d/msgid/vagrant-up/CAHqq0ewm%2BNdY43yfGov2rj1FpHCXLk-4kJ2F_uUJ76LBFHf2Uw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> This mailing list is governed under the HashiCorp Community Guidelines -
> https://www.hashicorp.com/community-guidelines.html. Behavior in
> violation of those guidelines may result in your removal from this mailing
> list.
>
> GitHub Issues: https://github.com/hashicorp/vagrant/issues
> Discuss: https://discuss.hashicorp.com/c/vagrant/24
> ---
> 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 vagrant-up+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/vagrant-up/9762DE44-6052-4A9F-82D0-7DAFF5FD203D%40gmail.com
> <https://groups.google.com/d/msgid/vagrant-up/9762DE44-6052-4A9F-82D0-7DAFF5FD203D%40gmail.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Alvaro

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/hashicorp/vagrant/issues
Discuss: https://discuss.hashicorp.com/c/vagrant/24
--- 
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 vagrant-up+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vagrant-up/CAHqq0ez1DHC2ja8LcEd_pxsdDXjogKyM0XipHoJeMa8__b0Saw%40mail.gmail.com.

Reply via email to