dragonflow/vagrant/Vagrantfile

82 lines
3.4 KiB
Ruby

# -*- 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