cue/contrib/vagrant/Vagrantfile

97 lines
2.6 KiB
Ruby

# -*- mode: ruby -*-
# # vi: set ft=ruby :
require 'fileutils'
Vagrant.require_version ">= 1.6.0"
CONFIG = File.join(File.dirname(__FILE__), "vagrant_config.rb")
UBUNTU_COMMON = File.join(File.dirname(__FILE__), "lib/ubuntu.rb")
FEDORA_COMMON = File.join(File.dirname(__FILE__), "lib/fedora.rb")
DEVSTACK_SCRIPT = File.join(File.dirname(__FILE__), "lib/devstack_script.rb")
RALLY_SCRIPT = File.join(File.dirname(__FILE__), "lib/rally_script.rb")
GITCONFIG = `cat $HOME/.gitconfig`
VAGRANTFILE_API_VERSION = "2"
# Defaults for config options
$hostname = File.basename(File.dirname(__FILE__))
$forwarded_port = {}
$install_devstack = false
$install_build_deps = true
$install_tmate = false
$install_rally = true
$ubuntu_box = "sputnik13/trusty64"
$vm_memory = 6144
$vm_cpus = 2
if File.exist?(CONFIG)
require CONFIG
end
require UBUNTU_COMMON
require FEDORA_COMMON
require DEVSTACK_SCRIPT
require RALLY_SCRIPT
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
$forwarded_port.each do |guest_port, host_port|
config.vm.network "forwarded_port", guest: guest_port, host: host_port
end
config.vm.provider "virtualbox" do |v|
v.memory = $vm_memory
v.cpus = $vm_cpus
end
config.vm.provider "vmware_fusion" do |v, override|
v.vmx["memsize"] = $vm_memory
v.vmx["numvcpus"] = $vm_cpus
v.vmx["vhv.enable"] = TRUE
v.vmx["ethernet0.virtualdev"] = "vmxnet3"
end
config.vm.synced_folder "../..", "/home/vagrant/cue"
if File.directory?("../../../python-cueclient")
config.vm.synced_folder "../../../python-cueclient", "/home/vagrant/python-cueclient"
end
if File.directory?("../../../cue-dashboard")
config.vm.synced_folder "../../../cue-dashboard", "/home/vagrant/cue-dashboard"
end
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
config.ssh.forward_agent = true
config.vm.define "ubuntu" do |ubuntu|
ubuntu.vm.hostname = "cuedev-ubuntu"
ubuntu_common(ubuntu)
end
config.vm.define "fedora" do |fedora|
fedora.vm.hostname = "cuedev-fedora"
fedora_common(fedora)
end
# Common provisioning steps
config.vm.provision :shell, :privileged => true,
:inline => "test -d /opt/stack || mkdir -p /opt/stack"
config.vm.provision :shell, :privileged => true,
:inline => "chown vagrant /opt/stack"
config.vm.provision :shell, :privileged => false,
:inline => $devstack_script
if $install_rally
config.vm.provision :shell, :privileged => false,
:inline => $rally_script
end
if $install_devstack
config.vm.provision :shell, :privileged => false,
:inline => "pushd $HOME/devstack; ./stack.sh"
end
end