# -*- mode: ruby -*- # vi: set ft=ruby : # Install vagrant-env plugin: vagrant plugin install vagrant-env # Start the machines one by one, so we can have the controller up # before the compute nodes start ENV['VAGRANT_NO_PARALLEL'] = 'yes' # libvirt boxes: https://app.vagrantup.com/boxes/search?provider=libvirt&q=ubuntu # VirtualBox boxes: https://app.vagrantup.com/boxes/search?provider=virtualbox&q=ubuntu require 'yaml' vagrant_config = YAML.load_file("provisioning/dragonflow.conf.yml") Vagrant.configure(2) do |config| config.vm.box = vagrant_config['box'] if Vagrant.has_plugin?("vagrant-cachier") # Configure cached packages to be shared between instances of the same base box. # More info on http://fgrehm.viewdocs.io/vagrant-cachier/usage config.cache.scope = :box end config.vm.synced_folder '..', '/dragonflow' config.vm.provider 'parallels' do |vb, override| vb.customize ['set', :id, '--nested-virt', 'on'] override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'box-cutter/ubuntu1604') end config.vm.provider 'libvirt' do |vb, override| vb.nested = true override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'generic/ubuntu1604') end # Bring up the Devstack controller node on the hypervisor config.vm.define "devstack_controller" do |devstack_controller| devstack_controller.vm.host_name = vagrant_config['devstack_controller']['host_name'] devstack_controller.vm.network "private_network", ip: vagrant_config['devstack_controller']['ip'] devstack_controller.vm.provision "shell", path: "provisioning/setup-base.sh", privileged: false devstack_controller.vm.provision "shell", path: "provisioning/setup-controller.sh", privileged: false config.vm.provider "virtualbox" do |vb| vb.memory = vagrant_config['devstack_controller']['memory'] vb.cpus = vagrant_config['devstack_controller']['cpus'] end config.vm.provider 'parallels' do |vb| vb.memory = vagrant_config['devstack_controller']['memory'] vb.cpus = vagrant_config['devstack_controller']['cpus'] end config.vm.provider 'libvirt' do |vb| vb.memory = vagrant_config['devstack_controller']['memory'] vb.cpus = vagrant_config['devstack_controller']['cpus'] end end # Bring up the Devstack compute nodes on the hypervisor (1..2).each do |i| config.vm.define "devstack_compute#{i}" do |devstack_compute| devstack_compute.vm.host_name = vagrant_config["devstack_compute#{i}"]['host_name'] devstack_compute.vm.network "private_network", ip: vagrant_config["devstack_compute#{i}"]['ip'] devstack_compute.vm.provision "shell", path: "provisioning/setup-base.sh", privileged: false devstack_compute.vm.provision "shell", path: "provisioning/setup-compute.sh", privileged: false, :args => "#{vagrant_config['devstack_controller']['ip']}" config.vm.provider "virtualbox" do |vb| vb.memory = vagrant_config["devstack_compute#{i}"]['memory'] vb.cpus = vagrant_config["devstack_compute#{i}"]['cpus'] end config.vm.provider 'parallels' do |vb| vb.memory = vagrant_config["devstack_compute#{i}"]['memory'] vb.cpus = vagrant_config["devstack_compute#{i}"]['cpus'] end config.vm.provider 'libvirt' do |vb| vb.memory = vagrant_config["devstack_compute#{i}"]['memory'] vb.cpus = vagrant_config["devstack_compute#{i}"]['cpus'] end end end end